Skip to content

Shipping Updates

The shipping updates flow sends a WhatsApp notification when an order is fulfilled, including carrier and tracking details so the customer can follow their shipment.

When a fulfillment is created in Shopify — typically when you mark items as shipped — Shopify fires the fulfillments/create webhook. WhatPro then fetches the full order (the fulfillment payload omits the customer’s phone and name), resolves the right flow and language, and sends the shipping notification.

An order can have more than one fulfillment (split shipments). Each fulfillment fires its own notification, so a customer whose order ships in two parcels receives a message for each. A repeated webhook for the same fulfillment is de-duplicated and does not send twice.

The shipping updates flow is available on Growth and Plus. Starter and Basic do not include it. See Plans.

VariableDescription
customer_first_nameCustomer’s first name; falls back to a generic greeting when unknown.
order_numberThe order name (for example #1001).
carrier_nameThe shipping carrier; falls back to a generic label when not provided.
tracking_numberThe tracking number; renders a placeholder when not provided.
tracking_urlThe carrier’s tracking link.
etaEstimated delivery date, localized to the flow’s language; renders “Soon” (or the Arabic equivalent) when no estimate is available.
shipping_addressThe order’s formatted shipping address.

Some fulfillments — including manual fulfillments and certain carriers — arrive without a carrier tracking URL. In that case WhatPro substitutes a link to the customer’s order status page so the tracking button always has a valid destination. Fulfillments that carry a real tracking URL use it unchanged.

The shipping updates flow uses the flow’s own order-tag templates rather than the lifecycle order-tagging system used by the payment confirmation flows. See Order tags.

  1. Confirm your plan is Growth or Plus. See Plans.
  2. In Flows, create or enable the Shipping updates flow.
  3. Customize the message body. The tracking button uses the tracking_url variable.
  4. Wait for the template to be Approved by Meta before it can send. See Flows overview.