How to send a WhatsApp message when a WooCommerce order is completed
5 min read · Updated 5 October 2026On 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.
- WooCommerce · Order updatedwhen an order changes
- IFis it completed?
- 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
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 thecustomerName,phoneandemailfrom its billing details. Start a workflow from WooCommerce store eventsKeep 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
- Value:
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 typewhatsapp: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
- To:
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
Related guides
How to build a Telegram bot that answers "where is my order?"
A Telegram bot that tells customers where their Shopify order is.