How to Send WooCommerce Order Updates to Customers via WhatsApp with Rapiwa
Automatically send WooCommerce order status updates to customers via WhatsApp using Rapiwa API and n8n. 236 installs. Keep customers informed at every order stage.
This n8n workflow automatically sends WhatsApp messages to WooCommerce customers whenever their order status changes — from processing to shipped to delivered. Using Rapiwa API ($5/month, no per-message fees), every status update reaches the customer instantly on WhatsApp. Over 236 developers have deployed this workflow to reduce "where is my order?" support tickets by up to 60%.
What This Workflow Does
Whenever a WooCommerce order status changes:
- The WooCommerce Trigger fires in n8n with the new status
- n8n routes the message to the correct template (processing, shipped, delivered, cancelled)
- Rapiwa API sends the personalized WhatsApp notification to the customer
Order statuses covered:
pending→ "We received your order"processing→ "Your order is being prepared"shipped→ "Your order has shipped! Tracking: link"completed→ "Your order has been delivered"cancelled→ "Your order has been cancelled"refunded→ "Your refund has been processed"
Ready-made template: Import with one click: WooCommerce order updates to customers via WhatsApp with Rapiwa API →(236 installs)
Prerequisites
- Rapiwa account — Start free 3-day trial →
- n8n — Cloud free tier or self-hosted
- WooCommerce store with REST API credentials
- Customer phone numbers in WooCommerce order billing fields
Step 1: Import the n8n Template
- Go to n8n.io/workflows/9880
- Click Use this workflow
- The workflow uses a Switch node to route by order status to different message templates
Step 2: Configure WooCommerce Credentials
- In n8n, click the WooCommerce Trigger node
- Credentials → Create new
- Enter: Store URL, Consumer Key, Consumer Secret
- Get API keys from: WordPress → WooCommerce → Settings → Advanced → REST API
- Event: Order updated
Step 3: Configure Message Templates for Each Status
In the Switch node, there are branches for each order status. Edit the message in each branch's Set node:
Processing Message
Hi {{ $json.first_name }}! ✅
Your order #{{ $json.order_id }} is now being processed.
Items ordered:
{{ $json.items_list }}
Total: {{ $json.order_total }}
We'll notify you when your order ships! 📦
Shipped Message
Hi {{ $json.first_name }}! 🚚
Great news — your order #{{ $json.order_id }} has shipped!
Tracking number: {{ $json.tracking_number }}
Carrier: {{ $json.carrier_name }}
Track your order here:
{{ $json.tracking_url }}
Expected delivery: {{ $json.estimated_delivery }}
Completed/Delivered Message
Hi {{ $json.first_name }}! 🎉
Your order #{{ $json.order_id }} has been delivered!
We hope you love your purchase. If you have any questions, just reply to this message.
Would you mind leaving a review? It helps us a lot:
{{ $json.review_url }}
Cancelled Message
Hi {{ $json.first_name }},
Your order #{{ $json.order_id }} has been cancelled as requested.
If this was a mistake or you have questions, please contact us:
📞 {{ $json.support_phone }}
📧 {{ $json.support_email }}
We hope to serve you again soon.
Step 4: Configure the Rapiwa HTTP Request Node
Each branch has its own HTTP Request node. Configure each one:
- Method: POST
- URL:
https://app.rapiwa.com/send-message - Authorization:
Bearer YOUR_API_KEY - Body:
{
"number": "={{ $('WooCommerce Trigger').item.json.billing.phone }}",
"message": "={{ $json.whatsapp_message }}"
}
Working cURL test:
curl -X POST https://app.rapiwa.com/send-message \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"number": "8801234567890",
"message": "Hi John! 🚚 Your order #1234 has shipped!\n\nTracking: TRK123456\nCarrier: DHL\n\nTrack here: https://dhl.com/track/TRK123456\n\nExpected delivery: June 14, 2026"
}'
Expected response:
{
"status": "success",
"messageId": "msg_abc123",
"timestamp": "2026-06-11T10:30:00Z"
}
Step 5: Add Tracking Information
WooCommerce doesn't store tracking numbers natively. To add tracking support:
Option A: WooCommerce Shipment Tracking Plugin
Install the WooCommerce Shipment Tracking plugin. It adds _wc_shipment_tracking_items to order metadata, which n8n can read via the WooCommerce API.
Option B: Google Sheet Lookup
Maintain a Google Sheet with columns: order_id, tracking_number, carrier, tracking_url. The n8n workflow looks up the tracking info when sending the shipped notification.
Step 6: Test All Status Transitions
Test each status transition:
- Create a test order — check "pending" message arrives
- Change status to "processing" — check message
- Change to "shipped" (manually if needed) — check message with tracking
- Change to "completed" — check delivered message
Results You Can Expect
- 60% reduction in "where is my order?" support tickets
- 98% open rate on WhatsApp order updates vs 20% for email
- 236 WooCommerce stores already use this workflow
- Customers who receive proactive order updates have higher satisfaction scores and higher repeat purchase rates
Common Errors and Fixes
- Trigger firing for all order updates (not just status changes): Add an IF node to check
previous_status != current_status - Missing tracking number in "shipped" message: Handle gracefully with a fallback:
{{ $json.tracking_number || 'Available soon' }} - Phone number in wrong format: Strip spaces and
+from the number. Use{{ $json.phone.replace(/[^0-9]/g, '') }} - 401 Unauthorized from Rapiwa: API key expired or incorrect — regenerate in Dashboard → API Keys
FAQ
Can I send order updates for all status changes or just specific ones? The template handles all major statuses. You can disable any status branch in the Switch node by adding a condition that outputs nothing (empty Set node).
Do customers need to opt in to receive WhatsApp order updates? Best practice is to add a checkbox at WooCommerce checkout: "Send me order updates via WhatsApp." Store consent in order metadata and check it in the n8n workflow before sending.
Can I include the product image in the WhatsApp notification?
Rapiwa supports sending image messages via the /send-image endpoint. You can modify the workflow to send the product image alongside the order update text.
Does Rapiwa charge per order update message? No. Rapiwa is $5/month flat with no per-message fees. Send unlimited order status notifications.
Can this workflow handle orders from multiple WooCommerce stores? Yes. Duplicate the workflow in n8n and configure separate WooCommerce API credentials and Rapiwa API keys for each store.
