WooCommerce and WhatsApp: order webhooks to conversations
WooCommerce gives you the same commerce lifecycle as Shopify, driven by order webhooks rather than a hosted connector. Every order event becomes a contact upsert plus an automation trigger in your instance, which then sends WhatsApp or SMS depending on what the customer can receive.
What you need
- Admin access to the WordPress site, to create webhooks and an API key.
- Your published Arino One instance URL as the delivery target.
- Checkout consent that captures opt-in source and timestamp.
Create the webhooks
In WooCommerce, go to Settings, Advanced, Webhooks and create two: one on order.created and one on order.updated, both delivering to your instance endpoint. Between them they cover the whole lifecycle, because WooCommerce expresses fulfilment and completion as status changes on the same order rather than as separate events.
Use the API key WooCommerce generates and keep it in the secret store, not in a page of notes.
Get the phone format right
This is the one thing that reliably breaks WooCommerce integrations.
WooCommerce checkouts accept whatever the customer types. Messaging providers require E.164: a plus sign, country code, then the national number with no spaces, brackets or leading zero. 07700 900123 must become +447700900123.
Normalise on import. If you do not, the sends fail at the provider rather than in your store, which means the order looks fine, the automation looks fine, and the customer simply never hears from you. That failure mode can run for weeks before anyone notices.
Map the fields
Billing phone to contact phone. Order number, total, currency and status to custom fields. Those custom fields are what your templates interpolate, so name them clearly — order_number, not cf_7.
Build the automations
| Order status | Message | Notes |
|---|---|---|
| processing | Order confirmation | Utility template |
| completed | Review request | Marketing template, opted-in contacts only |
| failed | Payment retry nudge | Utility; link to the checkout |
Use channel fallback so a contact without WhatsApp gets SMS. Keep the SMS copy shorter — you are billed per 160-character segment, and a confirmation that spills into three segments triples its own cost for no benefit.
Test it properly
Place a real test order and follow it through Automations, Runs. Each step shows what fired and what was skipped, with the reason. A run that shows "skipped: invalid recipient" is the phone-format problem above; "skipped: opted out" is a consent problem; "skipped: no template variable" is a mapping problem.
Only enable for live traffic once a full test order has produced every message you expect, in the right order, with the right variables filled in.
Steps at a glance
- Create the webhooksIn WooCommerce, Settings, Advanced, Webhooks, create webhooks for order.created and order.updated pointing at your Arino One instance endpoint.
- Normalise phone numbersMap the billing phone to the contact phone in E.164 format. A checkout that accepts local formats must be normalised on import or every send fails silently at the provider.
- Map the order fieldsMap order number, total, currency and status onto contact custom fields so they are available as template variables.
- Build the status automationsTrigger on order status: processing sends a confirmation, completed sends a review request, failed sends a payment retry nudge.
- Set channel fallbackEnable fallback so contacts without WhatsApp receive the same message over SMS instead of dropping out of the flow entirely.
- Place a test orderRun a real test order end to end and follow it through Automations, Runs step by step before enabling anything for live customers.
Frequently asked
Does Arino One work with WooCommerce?
Yes. WooCommerce emits webhooks on order created, updated and completed. Each one becomes a contact upsert plus an automation trigger in your instance, which can then send WhatsApp or SMS.
Do I need a plugin?
No. WooCommerce's built-in webhooks are enough. You create them in Settings, Advanced, Webhooks and point them at your instance endpoint — there is nothing to install on the WordPress side beyond admin access.
Why are my WooCommerce sends failing silently?
Almost always phone number format. WooCommerce checkouts commonly accept local formats such as 07700 900123, and messaging providers require E.164 (+447700900123). Normalise on import or the provider rejects the send without a visible error in the store.
Can I use SMS instead of WhatsApp?
Yes, and in markets with low WhatsApp penetration you should. Channel fallback picks the channel per contact within the same automation, so you do not have to maintain two parallel flows.
How do I debug an order that produced no message?
Open Automations, Runs and find the run for that order. Each step reports what fired and what was skipped with the reason — opted out, missing variable, invalid number, or no matching contact.
Is there an extra charge for the WooCommerce integration?
No. Webhook ingestion and automations are included in the $50/month instance connection and management fee. You pay Infobip's normal per-message or per-conversation rates for what you send.
Apply this to your own deployment
This guide describes decisions we make on live instances. Tell us your channels, systems and region and we will map it to an architecture outline, a provisioning plan and an indicative commercial model — usually within one business day.