In short
- The Shiprocket and Delhivery apps already handle the basics: syncing unfulfilled Shopify orders, mapping COD or prepaid and pushing fulfilment back to Shopify.
- The gaps are usually pre-dispatch checks, courier allocation logic, customer messaging, NDR handling and returns, which is where webhooks and a workflow layer help.
- Shopify webhooks are not guaranteed to arrive once or in order, so verify the HMAC, de-duplicate by webhook ID and run a nightly reconciliation job.
- Delhivery's Shopify integration maps payment mode from the order's financial status and does not detect returns or refunds, so plan those flows separately.
- Measure time from order to pickup, first-attempt delivery and exceptions, not just the number of orders shipped.
Shopify shipping automation in India usually starts with the official Shiprocket or Delhivery app, which syncs unfulfilled orders, maps COD or prepaid, creates shipments and pushes fulfilment and tracking back to Shopify. To automate the full order-to-delivery journey, you then add a thin layer of webhooks and workflows for pre-dispatch checks, courier rules, customer messages, NDRs and returns.
This guide explains what each integration does as of September 2026, where the gaps are and how to design a reliable flow.
- Use the native app for order sync, AWB generation and fulfilment updates.
- Add webhooks for verification, allocation, notifications and exceptions.
- Build for duplicates and missed events from day one.
- Track order-to-pickup time and first-attempt delivery, not just volume.
The order-to-shipping flow you are automating
- Order created in Shopify (prepaid or COD).
- Checks: COD confirmation, address quality, fraud or duplicate order flags.
- Sync to your shipping platform once the order is ready.
- Courier allocation based on pincode, payment mode, weight and service level.
- AWB and label generated, invoice printed, order packed.
- Pickup manifest created and handed over.
- Fulfilment and tracking pushed back to Shopify, customer notified.
- Exceptions handled: NDR, delays, lost parcels, RTO.
- Delivery or return closes the loop, and COD remittance is reconciled.
Steps 3, 5 and 7 are well covered by the shipping apps. Steps 2, 4 (beyond basic rules), 6, 8 and 9 are where most manual work hides.
What the Shiprocket Shopify integration does
According to Shiprocket's support documentation, the Shopify channel integration:
- Automatically syncs unfulfilled Shopify orders into Shiprocket.
- Marks orders as fulfilled on Shopify once they are processed in Shiprocket.
- Can sync active products and stock levels.
- Has a setting to map payment gateways to COD or prepaid.
- Supports one-click connection or a custom app with Admin API credentials.
The Shiprocket app listing also highlights courier recommendation, tracking notifications over email, SMS and WhatsApp, branded tracking pages and early COD remittance options. For tracking events, Shiprocket supports a webhook callback URL that receives a POST request for each new tracking event, as described in its API documentation.
What the Delhivery Shopify integration does
Delhivery's help documentation for Delhivery One sets out a few specifics worth knowing:
| Behaviour | Detail |
|---|---|
| Orders fetched | Only orders with Unfulfilled status, from a configured sync date; custom statuses can be configured |
| Sync timing | Orders usually appear in the Pending tab within about five minutes |
| Payment mode | Paid orders sync as prepaid; Pending or Partially Paid sync as COD; other statuses need manual assignment |
| Status back to Shopify | Marks orders as completed in Shopify |
| Not supported | Detecting returns and refunds, pushing return information for delivered orders, partial order fetch |
The payment mapping matters. If you use a partial-COD setup where the buyer pays a token amount online, check that the order's financial status maps the way you expect before shipping it. Delhivery also offers an NDR action API for reattempts, address edits and deferred delivery (Delhivery API reference).
Filling the gaps with webhooks
A small workflow layer, whether that is Shopify Flow, a tool like n8n or Make, or a custom service, can connect the pieces the apps leave out.
Useful Shopify events
- Order creation: start COD verification, address checks and tagging.
- Order paid: release prepaid orders, or a COD order converted to prepaid by a UPI link.
- Fulfilment created or updated: trigger customer messages with the tracking link.
- Refund created: start returns and finance entries.
Useful courier or aggregator events
- Picked up, in transit, out for delivery, delivered.
- NDR raised with reason code.
- RTO initiated and RTO delivered back to warehouse.
Build it to survive real-world failures
Shopify's webhook documentation recommends verifying the X-Shopify-Hmac-Sha256 signature, ignoring duplicates using X-Shopify-Webhook-Id, and not relying on events arriving in order. It also warns that delivery is not always guaranteed and suggests reconciliation jobs as a fallback. In practice that means:
- Acknowledge webhooks quickly and process them from a queue.
- Store each webhook ID and skip ones you have already handled.
- Use timestamps to avoid overwriting a newer status with an older one.
- Run a nightly job that compares Shopify orders, shipping platform records and courier statuses and flags mismatches.
If you use Shopify Flow to call external services, note that the Send HTTP Request action is available on the Grow, Advanced and Plus plans, not Basic (Shopify Help Center).
Keeping COD orders out of the queue until they are verified
Because both apps fetch unfulfilled orders, an unverified COD order can be synced and even picked up before the buyer confirms. Options, in order of simplicity:
- Place a fulfilment hold on COD orders at creation and release it on confirmation, if your shipping app respects holds.
- Use a custom status that your integration does not fetch (Delhivery allows custom status configuration).
- Sync orders through your own middleware only after verification, instead of letting the app pull them directly.
Test each option with a handful of real orders. The details of COD verification are covered in our guide to reducing RTO in this series.
Worked example: a 300-orders-a-day brand
Imagine a brand shipping 300 orders a day, 45% COD, from one Delhi warehouse. Without automation, a team member exports orders, calls COD buyers, assigns couriers in the panel, prints labels in batches and sends tracking links by hand. With the flow above:
- Prepaid orders sync straight to the shipping platform and are allocated by rules.
- COD orders are confirmed over WhatsApp; confirmed ones are released in batches before the pickup cut-off.
- Labels and invoices print together at the packing station.
- Customers get tracking updates automatically, and NDRs trigger a WhatsApp message within minutes.
- The team spends its time on exceptions: address fixes, unconfirmed high-value COD orders and courier escalations.
The exact savings depend on your volume and team, but the pattern is consistent: people stop doing repeatable steps and focus on the orders that need judgement.
Do not forget returns and reverse pickups
Forward shipping gets most of the attention, but returns create just as much manual work. Because Delhivery's Shopify integration does not detect returns or refunds, and many setups handle returns in a separate portal, you need your own links between the pieces:
- A return request (from a returns app or WhatsApp) creates a reverse pickup with your courier or aggregator.
- The reverse AWB is saved on the Shopify order as a note or metafield so support can see it.
- When the warehouse marks the parcel received and checked, the workflow triggers the refund or exchange in Shopify.
- The refund event then creates the credit note in your accounting system.
Keep a separate status for RTO parcels arriving back at the warehouse. They need inventory checks and a decision on whether to contact the buyer again, which is different from a customer-initiated return.
Single courier or aggregator?
Aggregators give you many couriers, allocation rules and one dashboard, which suits brands shipping to a wide spread of pincodes. A direct courier account can give you better control and support on lanes where you ship heavily. Many brands run both: direct accounts for their core metros and an aggregator for the long tail. Your automation layer should treat the shipping source as a variable, so switching or adding a courier does not mean rebuilding the flow.
Metrics that tell you the automation is working
| Metric | Why it matters |
|---|---|
| Order-to-pickup time | Shows whether checks and syncs are slowing dispatch |
| Orders missing from shipping platform | Catches sync failures early |
| First-attempt delivery rate | Reflects address quality and courier choice |
| NDR response time | Faster responses save more orders |
| RTO rate by courier and pincode | Feeds back into allocation rules |
Delivery speed and tracking updates also shape conversion. Our post on mobile checkout optimisation covers how delivery promises at checkout affect buying decisions.
Automate your order-to-shipping flow end to end
The native apps get you most of the way; the remaining steps are where time, RTO and customer complaints pile up. TNM builds shipping automations for Shopify brands in India, connecting Shopify, Shiprocket or Delhivery, WhatsApp and your finance stack with monitoring that catches failures before customers do. Learn more about our AI workflow automation service.
Frequently asked questions
They solve different problems. Shiprocket is an aggregator that lets you allocate orders across many couriers with rules, while Delhivery is a courier with its own network and platform. Many brands use an aggregator for flexibility and a direct courier account for their strongest lanes. The better choice depends on your pincodes, volumes, COD share and how much allocation control you want.
Yes. Aggregators such as Shiprocket offer courier recommendation and allocation rules based on factors like pincode, payment mode, weight and cost. You can also build your own rules in a middleware layer, for example sending COD orders to a certain region through the courier with the best delivery record there, and prepaid express orders to a faster service.
Both Shiprocket and Delhivery fetch orders based on fulfilment status, so keep COD orders out of the eligible pool until they are verified. Options include placing a fulfilment hold, using a custom status your integration ignores, or syncing via your own middleware only after confirmation. Test which approach your shipping app respects before going live.
The basic app connections can be done by a store owner in an afternoon. A developer or automation partner becomes worthwhile when you add COD verification, multi-courier rules, WhatsApp updates, NDR actions through courier APIs, returns and finance reconciliation, because these need webhooks, error handling and monitoring to run reliably.