HomeShopify & E-commerceShopify high-value customer Slack alert with…

Shopify high-value customer Slack alert with n8n (VIP order detection)










TL;DR: This guide builds a Shopify high-value customer Slack alert with n8n. A Shopify trigger watches every new order, a Code node checks the order total and the customer’s history, and Slack gets a clean message the moment a VIP or big spender checks out. Your team sees the order in seconds and can add a handwritten note, upgrade the shipping, or follow up before the box ever ships.

Most stores treat a $40 order and a $900 order exactly the same. Both drop into the same admin list, both get the same packing slip, and nobody on the team notices the difference until the day is over. That is a missed chance. A repeat buyer who just spent more than usual, or a brand new customer placing a large first order, is the exact person worth a personal touch. The trouble is that nobody can sit and refresh the Shopify orders page all day.

Prefer to skip the setup? Grab the ready-made template and be running in under 10 minutes.

What it does

The workflow listens to your store through Shopify’s order webhook. Every time a customer completes checkout, Shopify sends the full order to n8n. A short script then scores the order against rules you choose, such as a high order total, a high lifetime spend, or a loyal repeat buyer. If the order clears any of those rules, n8n posts a tidy alert into a Slack channel like #vip-orders. Ordinary orders are ignored, so the channel stays quiet and useful.

Here is what a finished alert looks like in Slack:

🟢 High-value order: #1042
Emily Rodriguez (emily.rodriguez@gmail.com)
Order total: $640.00 USD
Why it qualified: Large order ($640.00), Loyal customer (7 orders)
Lifetime spend: $3,180.00

Why it beats the default

Shopify can email you on every new order, but that is the wrong tool for this job. An inbox flooded with one message per sale trains you to ignore all of them, and email gives you no way to say “only ping me when the order matters.” Shopify Flow can tag orders, yet on most plans it cannot reason about a customer’s full history the way a few lines of code can, and it keeps you inside Shopify instead of where your team already talks.

Running this in n8n hands you the logic. You set the dollar thresholds, you decide whether a repeat buyer counts, and you choose the channel. Because the alert lands in Slack, the person who packs orders, the founder, and the support lead all see it at once and can act before the order leaves the warehouse. This guide is one piece of our wider n8n Shopify automation playbook, which covers order alerts, reviews, inventory, and more.

What you need

  • An n8n instance, either n8n Cloud or a self-hosted setup on your own server.
  • A Shopify store with admin access so you can create a custom app and grant API scopes.
  • A Slack workspace where you can install an app and pick a channel for alerts.
  • About 30 to 45 minutes if you build from scratch, or under 10 minutes with the template.

How it works, the big picture

┌───────────────────────────────────────────────────────────────┐
│  SHOPIFY HIGH-VALUE CUSTOMER SLACK ALERT                       │
│                                                               │
│  [Shopify Trigger] → [Code: score order] → [IF: high value?]  │
│                                                  │            │
│                                         true ────┘  └──── false│
│                                          ↓               ↓     │
│                                    [Slack: post]      (ignore) │
└───────────────────────────────────────────────────────────────┘
  

Node-by-node list

Node Type Job
Shopify Trigger shopifyTrigger Fires on every new order via the orders/create webhook
Score order code Checks total, lifetime spend, and order count, then flags high value
High value? if Stops ordinary orders and lets VIP orders pass through
Post to Slack slack Sends the formatted alert to your chosen channel

Step-by-step build

1 Add the Shopify trigger

Create a new workflow and add a Shopify Trigger node. Set the event to Order created (the underlying webhook topic is orders/create). To connect it, create a custom app in your Shopify admin under Settings → Apps and sales channels → Develop apps, give it the read_orders and read_customers scopes, install it, and paste the admin API access token into the Shopify credential in n8n. Once the node is active, every checkout sends a full order object to your workflow.

A trimmed version of what arrives looks like this:

{
  "name": "#1042",
  "total_price": "640.00",
  "currency": "USD",
  "email": "emily.rodriguez@gmail.com",
  "customer": {
    "first_name": "Emily",
    "last_name": "Rodriguez",
    "orders_count": 7,
    "total_spent": "3180.00"
  }
}
💡

Tip: Use the “Listen for test event” button in the node, then place a real test order in your store. n8n captures the live payload so you can map fields against your own data instead of guessing.

2 Score the order with a Code node

Add a Code node named Score order. This is where you turn raw order data into a yes or no decision. The script below flags an order if it crosses any of three rules, then builds a clean reason string you can drop straight into Slack. Adjust the numbers to fit your store’s average order value.

const o = $json;
const total = parseFloat(o.total_price || 0);
const cust = o.customer || {};
const ordersCount = cust.orders_count || 0;
const lifetime = parseFloat(cust.total_spent || 0);

const reasons = [];
if (total >= 250) reasons.push(`Large order ($${total.toFixed(2)})`);
if (lifetime >= 1000) reasons.push(`High lifetime spend ($${lifetime.toFixed(2)})`);
if (ordersCount >= 5) reasons.push(`Loyal customer (${ordersCount} orders)`);

return [{
  json: {
    isHighValue: reasons.length > 0,
    reasons: reasons.join(', '),
    orderName: o.name,
    total: total.toFixed(2),
    currency: o.currency,
    customerName: `${cust.first_name || ''} ${cust.last_name || ''}`.trim(),
    email: cust.email || o.email,
    lifetime: lifetime.toFixed(2)
  }
}];

After this node the data is small and ready to use:

{
  "isHighValue": true,
  "reasons": "Large order ($640.00), Loyal customer (7 orders)",
  "orderName": "#1042",
  "total": "640.00",
  "currency": "USD",
  "customerName": "Emily Rodriguez",
  "email": "emily.rodriguez@gmail.com",
  "lifetime": "3180.00"
}
📌

Pick thresholds that match your store, not round numbers from a blog. If your average order is $80, a $250 trigger makes sense. If you sell furniture with a $600 average, set the bar higher so the channel only lights up for orders that truly stand out.

3 Filter with an IF node

Add an IF node named High value?. Set one condition: the boolean value {{ $json.isHighValue }} equals true. Connect the Code node into it. Wire the true output to the Slack node you build next, and leave the false output empty so ordinary orders quietly stop here. This single gate is what keeps your channel signal-rich instead of noisy.

4 Post the alert to Slack

Add a Slack node, set the operation to Send a message, and connect it to the true branch of the IF node. To authorize it, create a Slack app at api.slack.com, give it the chat:write scope, install it to your workspace, and use the OAuth token in the n8n Slack credential. Choose your channel, such as #vip-orders, and paste this into the message text field:

🟢 High-value order: {{ $json.orderName }}
{{ $json.customerName }} ({{ $json.email }})
Order total: ${{ $json.total }} {{ $json.currency }}
Why it qualified: {{ $json.reasons }}
Lifetime spend: ${{ $json.lifetime }}

Save the workflow and switch it on. From now on, the only orders that reach Slack are the ones worth your attention.

💡

Tip: Add the order’s admin link so a teammate can open it in one tap. Drop https://admin.shopify.com/store/YOUR-STORE/orders into the message, or extend the Code node to build a direct order URL from the order id.

Common mistakes

The first trap is setting the threshold too low. If your bar sits under the average order value, every sale qualifies and the channel becomes the same noise you were trying to escape. Start a little high and lower it once you see the volume.

The second is forgetting the read_customers scope. Without it, Shopify still sends the order, but the customer object can come through thin, so lifetime spend and order count read as zero and your loyalty rule never fires. Grant both scopes when you create the custom app.

The third is testing with a brand new customer and expecting the loyalty rule to trigger. A first-time buyer has an order count of one and no spend history, which is correct behavior. Test the loyalty path with an account that already has past orders, or temporarily lower the order count rule to confirm the logic.

Cost at realistic volume

This workflow is light. A store doing 1,000 orders a month fires 1,000 executions, and only the high-value share ever reaches the Slack step. Shopify charges nothing for webhooks. Slack is free for the message volume any single store will produce. The only line item is n8n itself.

Setup Monthly cost Notes
Self-hosted n8n $0 plus server Runs on a small VPS you may already own; executions are unlimited
n8n Cloud starter From about $20 Covers thousands of executions, well above a typical store’s order count
Shopify webhook $0 Included on every Shopify plan
Slack $0 Free tier handles the alert volume comfortably

🚀 Get the high-value customer Slack alert template

Download the ready-to-import n8n workflow with the scoring Code node, the IF gate, and the Slack message already wired. Import it, add your credentials, set your thresholds, and go live in minutes.

Get the template →

Instant download · Works on n8n Cloud and self-hosted · Want it built for you? See our done-for-you n8n setup service.

Frequently asked questions

What counts as a high-value Shopify customer?

You decide. This workflow flags an order when it crosses any rule you set: a single order above a dollar threshold, a customer whose lifetime spend is high, or a shopper with several past orders. You can use one rule or combine all three.

Do I need a paid Shopify plan to use the order trigger?

No. The orders/create webhook is available on every Shopify plan, including Basic. You only need an admin account that can create a custom app, which gives n8n the API access it needs to subscribe to the event and read order data.

Will this slow down my checkout?

No. Shopify sends the webhook after the order is created, so the shopper never waits on n8n. The whole flow runs in the background and the alert usually lands in Slack a few seconds after the checkout completes successfully.

Can I send the alert to Telegram instead of Slack?

Yes. Swap the Slack node for a Telegram node and point it at your chat or group. The Code node and IF logic stay the same, so only the final delivery step changes. Plenty of stores run both Slack and Telegram at once.

What happens during a flash sale with hundreds of orders?

Each order fires its own webhook, so n8n handles them one by one. If you worry about noise, raise your thresholds before a big sale, or route alerts to a dedicated channel so the team can scan them after the rush settles.

Related guides

n8n
Shopify
Slack
automation