WhatsApp Order & Shipping Notifications for E-commerce
In e-commerce, customer experience largely revolves around one question: "where's my order?" SMS is expensive and one-way; email open rates are low. WhatsApp notifications get read and let customers reply instantly. This guide shows how to automate every post-purchase notification β from order confirmation to shipping updates, returns and stock alerts β over WhatsApp; explains the crucial service-vs-marketing distinction; and covers triggering messages straight from your order system via HTTP API.
1. Why WhatsApp for e-commerce notifications?
For an online store, post-sale communication matters as much as the sale itself. Silence after checkout is the leading cause of "where is my package?" support tickets and return requests. WhatsApp notifications close that gap:
- High read rate: Messages are seen almost immediately and don't land in a spam folder like email.
- Two-way: The customer can reply "wrong address" or "please delay delivery" on the same channel.
- Rich content: A tracking link, invoice PDF or product image fits in one message.
- Cost: On a QR-based self-hosted system there is no per-message fee β unlike SMS, your bill doesn't grow with volume.
For a full comparison, see WhatsApp vs SMS. In short: for delivery notifications, WhatsApp is both cheaper and more interactive.
2. Types of e-commerce notification
Across an order's lifecycle there are several natural "trigger" points. For each, a short, single-purpose message works best:
| Notification | Trigger | Category |
|---|---|---|
| Order confirmation | Payment received | Service |
| Shipped + tracking no. | Order marked "shipped" | Service |
| Out for delivery | Carrier status update | Service |
| Delivered | Delivery confirmation | Service |
| Return / exchange status | Return request update | Service |
| "Back in stock" alert | Inventory restocked | Marketing* |
| Campaign / discount | Promotion starts | Marketing |
* A "back in stock" alert can be treated as service-like if the customer explicitly requested it (set a stock alarm); otherwise it sits on the marketing side. That distinction is the subject of the next section.
3. The crucial distinction: service or marketing?
This is the most misunderstood β and riskiest β topic in e-commerce messaging. Data-protection and e-commerce law (GDPR in the EU; Turkey's law 6563 and the IYS registry) require prior consent for commercial electronic messages. But messages tied to performing a contract fall outside that scope:
- Service notification (no consent needed): Order confirmation, shipping updates, delivery status, return progress. These result from an action the customer initiated.
- Marketing (requires opt-in consent): Discount announcements, "you left something in your cart", new-product promotions, campaigns. These aim to sell.
Practical rule: if the message's goal is to sell something, it's marketing and needs consent; if the goal is to inform about a purchase already made, it's service. The cleanest approach is to keep the two audiences on separate lists and always add an opt-out line ("reply STOP") to marketing messages.
Ethics and law: Even though service notifications are exempt, slipping a discount coupon into a shipping update turns that message into marketing and raises complaint risk. Marketing messages require explicit consent, an opt-out, and (in Turkey) an IYS record; EU customers are covered by GDPR. See consent-compliant messaging and is bulk messaging legal.
4. Automatic triggering from your order system (HTTP API)
The real power of e-commerce notifications is automation. Instead of support agents typing messages one by one, your order system should trigger the notification itself as status changes. The system exposes an HTTP endpoint protected by a secret key (WA_CONTROL_SECRET):
| Step | What happens |
|---|---|
| 1. Order status changes | e.g. becomes "shipped"; your platform fires a webhook |
| 2. POST request | Number + template text sent to the server with the auth secret |
| 3. Queued | Server validates and writes to the BullMQ queue; it never sends itself |
| 4. Worker sends | Message reaches the customer with anti-ban timing applied |
A trigger request looks like this:
curl -X POST https://your-server/api/send \
-H "Authorization: Bearer $WA_CONTROL_SECRET" \
-H "Content-Type: application/json" \
-d '{
"to": "905551112233",
"message": "Hi Sarah, your order #10482 has shipped. Track it: https://carrier.example/AB123"
}'
This lets you connect the "order status changed" webhook of platforms like Shopify, WooCommerce or your own order panel straight to this endpoint β or wire it into a form or CRM. For the full integration walkthrough, see WhatsApp HTTP API integration. For scheduled reminders (say, the morning of the delivery day), the logic in sending automated messages applies.
5. Ready-made e-commerce templates
A good notification is short, personalized and single-purpose. Fill variables like order number, name and tracking link for each customer. Use these as a starting point:
Order confirmation
Hi [Name], we've received your order #[Order No] β Total: [Amount]. We'll let you know once it ships. Thank you!
Shipping notification
Hi [Name], your order #[Order No] is on its way with [Carrier] π Tracking: [Tracking No] β [Tracking Link]. Estimated delivery: [Date].
Delivered
Hi [Name], your order #[Order No] has been delivered π¦ We hope you love it! If anything's wrong, just reply to this message.
Return / exchange status
Hi [Name], we've received your return request for [Product]. Status: [Status]. Once approved, your refund is processed within 1β3 business days.
Back in stock (marketing β opt-in list only)
Hi [Name], the [Product] you wanted is back in stock! Take a look: [Link]. Don't want these alerts? Reply STOP.
For more categories and writing rules, see bulk message templates. Delivery-day reminders follow the same pattern as appointment reminders.
6. Ban safety during peak season
On sale days hundreds of orders can land in the same minute. Blasting those notifications back to back makes WhatsApp's spam algorithm flag your number. To prevent that, the system queues every notification and sends at human speed:
| Rule | Value |
|---|---|
| Wait between messages | 45β90 s (67β135 s for media) |
| Burst break | 8β12 min every 15 messages |
| Send window | 05:00β23:00 (local time) |
| Effective rate | ~25β30 msgs/hour, ~450β500/day |
So an 800-order campaign is notified across several days, not all at once. For time-critical messages like order confirmations, account for this delay; split sends by category (confirmations first, marketing later) to prioritize correctly. For the full anti-ban rule set and reasoning, see rules to avoid bans; if you're starting with a fresh number, don't skip number warm-up.
Frequently asked questions
Do I need separate consent to send order and shipping notifications?
Order confirmations, shipping and return updates are service notifications tied to fulfilling the order, so they aren't subject to marketing consent. But discount/campaign or "back in stock" messages are marketing and need explicit consent (plus an IYS record in Turkey). Keep the two on separate lists.
Can my order system trigger notifications automatically?
Yes. Send a POST request to a secret-protected HTTP endpoint. When an order moves to "shipped", the webhook queues the tracking message automatically.
Will sending hundreds of order notifications at once get my number banned?
No, because the system queues them and applies anti-ban rules β 45β90 s between messages, a break every 15. High volume is spread at a safe pace across several days.
Do I pay per message?
No. The system uses QR-based whatsapp-web.js, not the official Business API. No template approval, no per-conversation fee; the only cost is the server (~$5β10/month).
Automate your order and shipping notifications
On your own server, with no per-message fee. Connect your order system via HTTP API and keep customers informed at every step.
Open the panel β