Send automatic WhatsApp notifications at every shipment milestone: dispatched, out for delivery, delivered, and NDR. India's 100,000+ D2C brands use Shiprocket and this integration cuts WISMO support calls by over 50% from day one.
Shiprocket's webhook payload sends customer_phone as a bare 10-digit number, e.g. 9876543210, without the country code. WA.Expert requires +919876543210. In your automation, prepend +91 to the phone value before mapping it to the WhatsApp destination. This is the most common reason for WhatsApp messages not sending after the webhook fires.
The Lite plan does not include webhook access. You need the Growth plan or higher to configure webhooks in Shiprocket. Check Shiprocket's current pricing as plans are updated periodically.
In WA.Expert, create a new automation and set the trigger to Inbound Webhook. Copy the unique webhook URL. This is the URL Shiprocket will POST shipment events to.
Shiprocket API: apidocs.shiprocket.in
{{
"event": "out_for_delivery",
"awb": "161234567890",
"order_id": "SR-10492",
"customer_name": "Priya Sharma",
"customer_phone": "9876543210",
"courier_name": "Delhivery",
"tracking_url": "https://track.shiprocket.in/...",
"estimated_delivery": "2026-06-24"
}}
Map these to WA.Expert variables:
customer_name -> name
'+91' + customer_phone -> wa_phone <- PREPEND +91
awb -> tracking_number
courier_name -> courier
tracking_url -> tracking_link
estimated_delivery -> edd
event -> shipment_status (use to branch message)| customer_phone value | What WA.Expert needs | Fix |
|---|---|---|
| 9876543210 | +919876543210 | Prepend +91 in the automation field mapping or using a formatter step. |
This one-step fix is the most important part of the Shiprocket integration.
Shiprocket normalises tracking events from 17+ courier partners into a consistent format. Send WhatsApp for these five events only; everything else creates noise and increases opt-outs.
| Shiprocket event | When it fires | WhatsApp message to send |
|---|---|---|
| shipment_dispatched | AWB generated, shipment picked up | Tracking link, courier name, expected delivery date. Sets customer expectations. |
| out_for_delivery | Courier en route to deliver today | OFD alert: 'Your order is out for delivery today. Someone will need to be home.' |
| delivered | Courier marks as delivered | Delivery confirmation + soft review request: 'How was your order experience?' |
| ndr | Failed delivery attempt | Prompt to reschedule: 'We tried to deliver but couldn\'t reach you. Tap to reschedule.' |
| edd_change | Estimated delivery date revised | Proactive delay alert with new EDD: 'Your delivery has been rescheduled to [date].' |
Sending WhatsApp for minor scan events (in transit, warehouse, etc.) creates notification fatigue. Stick to these five.
1. Courier partner marks shipment out for delivery.
2. Shiprocket fires webhook to WA.Expert:
event: 'out_for_delivery'
customer_name: 'Priya Sharma'
customer_phone: '9876543210'
courier_name: 'Delhivery'
tracking_url: 'https://track.shiprocket.in/SR-10492'
3. WA.Expert automation:
wa_phone = '+91' + '9876543210' = '+919876543210'
Branch on event = 'out_for_delivery'
4. WA.Expert sends Priya:
'Hi Priya! Your order SR-10492 is out for delivery today
via Delhivery. Someone will need to be home to receive it.
Track your order: https://track.shiprocket.in/SR-10492'If a customer messages a tracking keyword on WhatsApp, your automation can query Shiprocket's API to return live shipment status.
Step 1: Get Bearer token (valid 10 days, refresh when expired)
POST https://apiv2.shiprocket.in/v1/external/auth/login
Content-Type: application/json
Body: {{email: YOUR_SHIPROCKET_EMAIL, password: YOUR_PASSWORD}}
Response: {{data: {{token: 'eyJ0eX...'}} }}
Step 2: Track by AWB
GET https://apiv2.shiprocket.in/v1/external/courier/track/awb/{{awb_code}}
Authorization: Bearer eyJ0eX...
Response includes current status, courier, and last checkpoint.| Symptom | Likely cause | Fix |
|---|---|---|
| No webhook firing | Lite plan active, webhooks not available | Upgrade to Shiprocket X (Growth) plan or above. Lite plan excludes webhooks. |
| WhatsApp not sent after webhook fires | Phone number missing country code | Prepend +91 to customer_phone before mapping to the WA.Expert destination. Shiprocket sends bare 10-digit numbers. |
| Wrong message sent for event | Not branching on event field | Add a condition step branching on the event value: out_for_delivery, delivered, ndr, edd_change, shipment_dispatched. |
| Webhook fires but WA.Expert not receiving | Wrong URL or automation not published | Confirm the webhook URL in Shiprocket matches your WA.Expert automation URL. Ensure the WA.Expert automation is published (not draft). |
| Token expired for Shiprocket API | 240-hour token lifetime | Shiprocket tokens expire every 10 days. Re-authenticate with the login endpoint to get a fresh token before making tracking API calls. |
| Duplicate WhatsApp messages | Webhook fired multiple times for same event | Shiprocket may fire duplicate webhooks for the same event. Check the order_id or awb in each call and discard duplicates. |
Delhivery direct API: tracking updates for courier-direct integrations.
Read guide →Order confirmation and shipping alerts from WooCommerce stores.
Read guide →Free trial, no credit card. If you get stuck, we answer live on WhatsApp.