Guides › Messaging customers

How to send a WhatsApp message when a WooCommerce order is completed

5 min read · Updated 5 October 2026
On this page

If your customers live on WhatsApp, an email saying their order is complete is the message they are least likely to see. This guide sends it where they will.

An order in your WooCommerce store is marked completed. Then the customer gets a WhatsApp message from your business's own sender — Hi {customer's name}, your order NW-20417 from Acme Supplies Inc. is complete and on its way. Every order change leaves a run you can open, with the path it took and what Twilio answered.

Order completed to WhatsApp Published v1
  1. WooCommerce · Order updatedwhen an order changes
  2. IFis it completed?
  3. Twilio · Send a WhatsApp message (Twilio)on Yes, sent the customer the template

Every other change goes down No, where the workflow ends.

What you need

  • A WooCommerce connection with a Read/Write key — a Read key cannot make webhooks. (A webhook is how the store tells Bizomate about each order.) Connect WooCommerce
  • A Twilio account with a WhatsApp sender — a number registered with WhatsApp through Twilio — and a Twilio connection. To try things out first, Twilio's WhatsApp sandbox works too. Connect Twilio
  • A message template approved by WhatsApp, made in the Twilio Console under Messaging, then Content Template Builder. More on this below.
  • Customers' phone numbers in international form — +1 202 555 0143 — in their billing details.

WooCommerce and Twilio work on every plan, Free included.

WhatsApp's rule: a business starts with a template

WhatsApp lets a business send free text only to someone who has written to it in the last 24 hours. An order update usually goes to someone who has not, so it must use a template WhatsApp has approved. A template is fixed wording with numbered gaps for the details:

Hi {{1}}, your order {{2}} from Acme Supplies Inc. is complete and on its way.

Make it in Twilio's Content Template Builder and submit it for WhatsApp's approval. Once it is approved, copy its SID (Twilio's ID number for the template); it starts with HX. Approval is WhatsApp's decision, and it can take from minutes to a day or two.

Build it

  1. In Bizomate, choose New workflow, then WooCommerce · Order updated as its trigger, and your connection. Publishing makes a webhook named Bizomate in your store; nothing needs pasting.

    The order brings its number, status, and the customerName, phone and email from its billing details. Start a workflow from WooCommerce store events

  2. Keep completed orders only. Order updated starts a run for every change to the order itself — its status, a refund, a change of address — so add an IF. A note added to an order is not a change to it, and starts nothing.

    • Value: {{ trigger.status }}
    • Is: equal to
    • Compared with: completed

    Completed orders go down Yes; every other change goes down No, where the workflow ends. Choose a path with IF

  3. Send the WhatsApp message. Under Yes, add Twilio · Send a WhatsApp message (Twilio) and choose your Twilio connection. In From, choose your WhatsApp sender; for the sandbox, select Use a value and type its number.

    • To: {{ trigger.phone }} — there is no need to type whatsapp: before it.
    • Content template: your template's HX… SID.
    • Template variables: 1 is {{ trigger.customerName }} and 2 is {{ trigger.number }}.

    Message is not used when a template is set. Send a WhatsApp message with Twilio

  4. Publish. Publish a workflow

Test it with a real order

Publish, then place a test order with your own WhatsApp number in its billing phone, and mark it Completed in WooCommerce. The event arrives within seconds, though on a quiet site WooCommerce may wait until its next visitor to send it. The trigger's panel then reads Listening — instant, with the order's number and status. To test changes, select Use the last event on Output, then Test run.

Test runs never count towards your monthly runs, but the message is really sent, and Twilio bills it. With the sandbox, your number must first send the sandbox's join phrase.

If it does not work. The usual causes:

  • Twilio could not find a Channel with the specified From address. From is not a WhatsApp sender in this account. Choose the WhatsApp number, or type the sandbox number.
  • Twilio refused the template. The HX… SID is wrong, or the template is not approved yet.
  • Error 63016 on Get a message. Free text was sent outside the 24-hour window. Use the template.

What it costs

Each change to an order is one run, not only completions. A store with 400 orders a month, each changed about three times on its way, uses some 1,200 runs. WhatsApp and Twilio bill each message on your own Twilio account; Bizomate does not resell them. What counts as a run

Questions

Does a change after completion send the message again?

Yes. Editing a completed order — its address, say — arrives as another completed update. If your team edits orders after completing them, keep that in mind.

What happens to an order without a phone number?

The run fails at the Twilio step with To is empty when the step ran. To skip such orders quietly, add a second IF on {{ trigger.phone }} not empty before the Twilio step.

How do I know the customer received it?

The step succeeds when Twilio accepts the message, not when the phone receives it. To check delivery, use Get a Twilio message with the message's id (ID number).

Related apps

Try it with your own store

No card needed.

Start free

Related guides