Skip to content
Use cases & recipes
4 min read

Order and delivery updates

Keep customers informed from checkout to doorstep with idempotent, event-driven messages.

Share article

Order updates are the highest-volume messaging workflow most e-commerce teams run, and the one where a mistake is most visible. This recipe keeps the customer informed from checkout to doorstep without sending anything twice.

Prerequisites

  • An active account with a messaging service.
  • A store whose order events reach Furcata — see the Shopify page if you sell on Shopify.
  • A public HTTPS endpoint for webhooks, or a Zapier account if you would rather not run one.

Not every order event deserves a message. The Shopify connection delivers four events: checkout created, checkout updated, order fulfilled and order updated. Together they cover the three moments customers expect to hear about.

  • Checkout created or updated — a gentle reminder if the customer leaves before paying.
  • Order fulfilled — the message people actually open, because it answers 'when?'.
  • Order updated — a change to the order, such as a delivery update, worth confirming with the customer.

From order event to delivered message

  1. Identify the customer

    Match the order to a contact by phone number. Store the phone number on the order in international format when it is captured, not when the message is sent.

  2. Choose the moment

    Decide which of the supported events you will send on. Start with order fulfilled only — it is the one with the highest value and the lowest risk of being wrong.

  3. Write the message

    Lead with the outcome, not the process. 'Your order is on its way' beats 'Your order status has changed to dispatched'.

  4. Send idempotently

    Key the send on the order id and the event. A retried fulfilment must not produce a second shipping message.

  5. Track delivery

    Subscribe to delivery and failure events. A failed send on a shipping notification is worth retrying or escalating.

{
  "recipients": ["+15555550100"],
  "body": "Hi Alex, your order #4821 is on its way. It should arrive within two working days.",
  "type": "sms"
}
Idempotency-Key: order-4821-shipped
Derive the key from the order and the event so each event is exactly one message.

Customers who opted out still buy

Someone who has opted out of marketing messages may still expect transactional ones — but opt-out in Furcata is a single state, not a category. A contact who has opted out is not messaged. If your process depends on transactional messaging, make that clear at the point of consent.

If you sell on Shopify

The Shopify connection already delivers the events you need — checkout created, checkout updated, order fulfilled and order updated — with the signature verified and unsubscribed contacts skipped. You supply the message, not the plumbing.

See the Shopify page for the connection details.

A Zapier Zap can watch for new contacts or messages and hand the event to another tool, which is often enough for a small catalogue. It is slower than a direct webhook but needs no server.

See the Zapier page for the available triggers.

Order updates scale with order volume, so they are the workflow most likely to move you through a pricing tier. Check your usage reports against your order count regularly rather than at the end of a quarter.

Next recipe

Broadcasts cover the opposite case: one message to a large list, sent once and sent safely.

Broadcasts