How to Send Slack Alerts for New E-commerce Orders
Get instant Slack notifications when customers place orders.
What This Integration Does
Order notifications in Slack keep operations, fulfillment, and leadership in sync without anyone refreshing the store admin. Big orders, first-time customer orders, or orders for specific SKUs deserve a heads-up. This workflow listens for new orders, formats a clean message with the items, customer, and total, and posts it to the channel that should know.
The run model is per-order. A webhook from your store fires the workflow, the workflow optionally re-fetches the order for full detail, formats a Slack-friendly message, and posts it. There is no persisted state - each order produces one Slack message, and the execution log keeps the per-order audit trail.
Prerequisites
- A shopify connection (or your e-commerce platform's connector) with read access to orders.
- A slack connection with permission to post in the target channel.
- The Slack channel ID for new-order alerts.
Step 1: Webhook Trigger
Drop a Trigger node and set its type to Webhook. Wire the store's orders/create webhook to the URL Spojit shows. The inbound payload typically gives you id, order_number, total_price, customer, and line_items - map those into named variables.
Step 2: Enrich the Order (Optional)
If the webhook payload is incomplete or you want full product detail, add a Connector node pointing at the shopify connector and pick the get-order tool. Pass the orderId from the trigger. This returns the canonical record with images, variants, and tax breakdowns - useful when the Slack post should include product titles or SKU codes.
Step 3: Condition - Filter Which Orders Alert
Add a Condition node to suppress noise. Common filters:
total_price >= 500- only alert on big orders- First-time customer (customer's
orders_countequals 1) - Order contains a specific SKU or tag (limited drop, VIP-only product)
If everything should alert, you can skip this step, but most teams find they want quieter channels within a week of launching.
Step 4: Transform - Build the Slack Message
Add a Transform node that turns the order into a Slack mrkdwn payload. Include the customer, total, item count, and a deep link to the order admin:
{
"channel": "C0123ABCD",
"text": ":shopping_trolley: *New order #{{ order.order_number }}* - ${{ order.total_price }}\n*Customer:* {{ order.customer.first_name }} {{ order.customer.last_name }}\n*Items:* {{ order.line_items | length }} ({{ order.line_items.0.title }}{{ '...' if order.line_items | length > 1 else '' }})\n<https://admin.shopify.com/store/yourstore/orders/{{ order.id }}|Open order>"
}
Step 5: Post to Slack
Add a Connector node pointing at the slack connector and pick the send-message tool. Pass through channel and text. For very large orders, chain a follow-up slack step with add-reaction using moneybag on the returned message timestamp to make it stand out in the channel.
Step 6: Optional - Pin VIP Orders
For truly noteworthy orders (highest-value customers, anniversary orders, etc.) chain a slack pin-message call so the message stays at the top of the channel until someone unpins it. This is useful for sales channels where everyone should see the milestone.
Tips
- Use Slack mrkdwn (asterisks for bold, angle-bracket links) - rich blocks are great but slower to maintain.
- Pre-format currency in the Transform.
{{ order.total_price }}often comes through as a string in cents or a raw number; format it once. - Use the channel ID, not the channel name. IDs are stable across renames.
Common Pitfalls
- Webhook retries - if your store retries the same order create event, the workflow will post twice. Either dedupe on order ID or accept the duplicate and move on.
- Test orders flooding the channel during development. Add a Condition that filters out orders with a
testtag or specific email domain while you iterate. - Posting full PII (full address, phone number) into a wide channel. Keep the Slack message to non-sensitive fields and link out to the admin for the rest.
Testing
Place a small test order in a dev or staging store. Confirm the webhook fires the workflow, the Slack message lands in a private test channel within seconds, and the deep link opens the right order. Then switch the channel to the production channel and watch the first real order land.