Order status updates
The safest automation to start with: transactional, expected by the customer, no marketing consent needed, and it removes most "where is my order" messages before they are sent.
Publish one journey per lifecycle stage — order placed, order shipped, order delivered — each sending an approved Utility template with an image header and a tracking button. Shopify order and fulfilment webhooks drive the triggers, and a status change you make in the dashboard enrols the journey directly without waiting for Shopify.
Before you start
- Shopify connected with fulfilment permissions approved — Connect Shopify.
- WhatsApp connected and sending.
- Approved order-status templates, one per stage.
Which event maps to which trigger
Getting this mapping right saves hours. There is no "order confirmed" trigger — an order being placed *is* the confirmation. Shipping and delivery come from fulfilment events, which is why they need fulfilment permissions on the Shopify connection.
| What happens | Trigger that fires |
|---|---|
| Order is placed | Order placed — use this for order confirmation |
| Order is marked fulfilled | Order shipped |
| A fulfilment updates with a delivered shipment status | Order delivered |
| A fulfilment updates with any other status | Order shipped |
| You change the status in the TopEdge Orders screen | Shipped or out for delivery → order shipped; delivered → order delivered |
| Order is cancelled | Nothing sends — existing enrollments for that order are cancelled |
The templates you need
Meta Manager has an order lifecycle blueprint that prefills each stage: an image header, body variables mapped to order fields, and a View order or Track order URL button. Create one template per stage from it. What the dashboard previews is exactly what the customer receives.
| Stage | What the message should carry |
|---|---|
| Confirmed | Order number, items, total, payment method, and when to expect dispatch. |
| Shipped | Courier name, tracking number and a working tracking link. |
| Out for delivery | That it arrives today, and for COD the exact amount to keep ready. |
| Delivered | Confirmation, plus one ask — a review, or a reorder link. |
Build the journeys
- Start from the playbooks Journeys ships order-placed, order-shipped and order-delivered playbooks with the right trigger and node already in place.
- Map the approved template on each Open each journey, select the order-status node, and pick the approved template for that stage.
- Check the variable mapping Each variable should point at an order field — order number, customer name, tracking URL. Unmapped variables send blanks.
- Decide on a delay Confirmation is best immediate. A delivered message is better after a few hours, so it does not arrive while the customer is still at the door.
- Publish each journey Publish one at a time and test it before moving to the next.
- Test the full lifecycle Place a test order, then move it through shipped and delivered from the Orders screen. Each stage should produce exactly one message.
How to check it worked
- A test order produces exactly one confirmation message.
- Marking it shipped produces one shipping message with a working tracking link.
- Marking it delivered produces one delivery message.
- No stage sends twice when Shopify later echoes the same change.
- Cancelling an order stops any pending status messages.
If order updates are not sending
- Order confirmations do not send
- The journey uses the order placed trigger — there is no order confirmed trigger.
- The journey is Published, not Draft.
- The template shows Approved, and the order has a phone number in international format.
- Read the skip reason on the order detail page — it names the exact cause.
- Shipped and delivered never fire, but confirmations work
- Fulfilment permissions are missing. Settings → Shopify → Reconnect and approve everything.
- Confirm the order is actually being fulfilled in Shopify, not just tagged.
- If your courier updates by a 3PL feed rather than Shopify, check that integration is sending shipment status.
- A customer got the same update twice
- Check you do not have two published journeys on the same trigger.
- A manual status change plus a Shopify echo is de-duplicated per order and trigger, so duplicates almost always mean duplicate journeys.
- The message arrives with blank values
- Variables are unmapped on the node — open it and map each one to an order field.
- The field is genuinely empty on that order, such as a tracking number before dispatch.
- Preview with a real order rather than sample data before publishing.
- Orders reference — Status changes and per-order activity.
- Message templates — Why Utility and Marketing differ.
- COD confirmation — The step before dispatch.
- Template guide — Writing templates that pass review.
Frequently asked questions
Which trigger should I use for a Shopify order confirmation?
The order placed trigger. An order being placed is the confirmation event, and there is no separate order confirmed trigger. Expecting one is the most common reason a confirmation journey is built but never fires.
Do order status messages need marketing opt-in?
No. They are transactional and send as Utility templates, which do not require marketing consent. That is exactly why they are the safest automation to start with — but it also means they must contain no promotional language at all.
Why are my shipped and delivered messages not sending?
Almost always missing fulfilment permissions on the Shopify connection. Order confirmations only need order access, so confirmations keep working while shipping messages silently do nothing. Reconnect Shopify and approve the full permission list.
Updated 2026-10-04