The courier calls. It rings out. He marks "customer not responding," moves on to the next drop, and your order enters a queue that nobody in your business is watching. This is the most expensive silence in Indian ecommerce.
Every D2C operator knows the NDR bucket exists. Most treat it as a status — something the courier is handling, a row in a Shiprocket dashboard, a thing that resolves itself one way or the other. It isn't a status. It's a countdown, and the clock is usually 24 to 48 hours long.
What makes this the most galling loss in the whole post-checkout funnel is where it happens. The customer wanted the product. They confirmed the order. You paid the CAC, paid the pick-and-pack, paid the freight, and got the parcel to within a few kilometres of their door. Then it turned around and came back, and you paid for that leg too. All because a phone rang at a bad moment.
What actually happens inside the 3PL
It's worth knowing the sequence precisely, because the recovery window sits inside it and most brands miss it by simply not knowing it's there.
- The attempt. The delivery executive calls, usually once, sometimes twice, from a number the customer doesn't recognise. If nobody picks up — or picks up and says "I'm not home" — the attempt is closed out.
- The disposition code. He tags it: customer not available, customer not responding, address incorrect, customer refused, out of delivery area. These codes are entered fast, at the door, under route pressure. They are frequently wrong.
- The NDR window. The shipment now sits in an NDR queue. Your 3PL panel — Shiprocket, Delhivery, Bluedart, whoever — will accept an instruction here: reattempt, reschedule, update address, or RTO. If you say nothing, a default applies.
- The reattempt. Usually automatic, usually the next day, usually at whatever time the route happens to reach that area. Which is to say: quite possibly the exact same time that failed yesterday.
- The turnaround. After two or three failed attempts, the parcel is marked RTO and starts its journey back to your warehouse. Three weeks later it reappears in your inventory, possibly damaged, definitely unsold.
The whole story turns on that third bullet. There is a window, it accepts instructions, and it closes fast.
The default reattempt repeats the conditions that caused the first failure. Same route, same rough time of day, same customer who was at work. Brands that "leave it to the courier" are effectively rolling the same dice twice and calling it a process.
Why the customer didn't pick up
The disposition code says "customer not responding," which reads like disinterest. In practice, it's almost never that. The real reasons cluster into a handful of buckets, and they need different responses:
- Unknown number, working hours. The single biggest cause. Indians get a dozen spam calls a day; an unsaved number at 2pm on a Tuesday is not getting picked up by someone in a meeting or on a shop floor.
- Not at the address. Delivery to a home address during office hours. Nobody's failing here — the timing is just wrong.
- Address is findable only with help. The courier is lost, calls for directions, doesn't get through, and marks it undeliverable. The address was never wrong; it just needed a landmark.
- Cash not ready. A COD parcel arrives and the customer doesn't have the amount on hand. They dodge rather than explain.
- Genuine change of mind. Real, but a much smaller slice than the code implies — and if you'd confirmed the order properly at the start, most of these would have surfaced before you shipped. That's the argument in the COD returns piece.
Four of those five are recoverable with one conversation. Which is exactly why the response to an NDR should be a conversation and not a notification.
Why the SMS doesn't work
The standard NDR response in most brands is an automated SMS or WhatsApp: "Delivery attempted, please respond to reschedule." It's cheap and it mostly does nothing, for reasons that aren't mysterious.
It arrives in a folder full of transactional noise. It asks the customer to do work — read it, understand it, decide, reply — at a moment they have no particular reason to care. And it can't handle the actual answer. The customer doesn't want to reply "1" for reschedule; they want to say "main kal shaam 6 baje ke baad ghar pe hoon, gate ke paas medical store hai." A form can't take that. A person can.
There's also a timing problem. A message sent at 8pm about a delivery attempted at 2pm and reattempted at 11am tomorrow needs a response overnight, from someone who is not thinking about your parcel.
The NDR recovery sequence that actually saves the shipment
Here's the sequence we'd run, in order. The whole thing is designed around one constraint: get a usable instruction into the 3PL panel before tomorrow's route is planned.
Hour 0–2: call, don't message
Pull the NDR list from your 3PL and call those customers the same afternoon. Not tomorrow morning — the reattempt may already be locked by then. The call needs to do three things and nothing more: confirm they still want the order, get a day and a rough time window, and capture a landmark or an alternate number if there is one.
Thirty seconds. That's the whole intervention. And notice the first question — do you still want it — because if the answer is no, you want to know now and cancel, not after two more attempts and a return leg.
Hour 2–4: push the instruction back into the panel
This is where most NDR efforts quietly fail. The call happened, the customer said Thursday evening, and that information dies in a spreadsheet. It has to go back into the 3PL as a reschedule instruction with the time window and the corrected address, before the cut-off for the next day's routing.
If your reattempt still goes out at 11am on Wednesday, the call was theatre.
Day 1: one retry on no-answer, then switch channels
If the recovery call itself isn't picked up, try once more a few hours later at a different time of day — evening calls connect substantially better than afternoon ones. After the second miss, drop to WhatsApp with a message that assumes the reschedule rather than asking for it: "We'll attempt delivery tomorrow evening. Reply here if another time suits you better."
Day 2: decide deliberately
If there's still no contact after two calls and a message, make an actual decision rather than letting the default fire. For a high-value order, a third attempt may well be worth the freight. For a low-value one, an early RTO is cheaper than a third attempt plus a return leg. Either way, choose — the expensive path is the one where nobody chose.
The cheapest NDR is the one that never happens. A pre-dispatch call that confirms the address, collects a landmark, and asks for a preferred delivery window removes a real chunk of failed attempts before they occur. NDR recovery is the safety net; address quality is the floor.
What to measure
Two numbers tell you whether any of this is working, and almost nobody tracks either:
- NDR resolution rate — of shipments that fail a first attempt, what share eventually deliver? If you don't know this, you don't know what your NDR bucket is costing you.
- Time-to-first-contact after NDR — hours between the failed attempt and your first real conversation with the customer. This is the number that moves the first one. Under four hours behaves very differently from next-day.
Split both by courier while you're at it. Courier performance on reattempts varies enormously by region, and the aggregate number hides the one partner quietly costing you a fortune in a particular state.
Why this is now worth doing
The reason NDR recovery has been neglected for so long isn't that operators didn't understand it. Everyone understands it. It's that the work is spiky and unpredictable — some days forty calls, some days four hundred — all of it needing to happen within a few hours, in whatever language the customer speaks. Staffing a team for that peak is absurd; staffing for the average means missing the window on the days that matter most.
That's the specific constraint that lifted. An agent that can make four hundred calls in an hour, in Hindi or Tamil or Marathi, and write the outcome straight back to your 3PL panel makes the sequence above a configuration rather than a hiring plan. It's one of the seven calls we'd tell any brand to automate right after COD confirmation — the full list is in 7 ecommerce calls every AI voice agent should automate, and it sits inside the wider post-checkout playbook in how top D2C brands recover revenue after checkout.
A failed delivery attempt is not the end of an order. It's a question nobody bothered to ask.
Answer the NDR bucket before it turns around.
CallFox calls your undelivered and unconfirmed orders in Hindi and regional languages, gets a real delivery window, and writes it back to your store — automatically. Free pilot for 2 weeks.