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 whole story turns on that third bullet. There is a window, it accepts instructions, and it closes fast.

The bit that costs the most

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:

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.

Rule of thumb: if the recovery needs a decision from the customer, notification channels underperform. This is the same line we drew in calls vs. WhatsApp.

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.

Agent"Namaste, main [brand] se bol raha hoon. Aapka order aaj deliver hone aaya tha, lekin aapse contact nahi ho paaya. Aap order lena chahte hain?"
Customer"Haan haan, main ghar pe nahi tha."
Agent"Koi baat nahi. Kal kis time aap available rahenge — subah ya shaam?"
Customer"Shaam 6 baje ke baad."
Agent"Theek hai, kal shaam ke liye schedule kar dete hain. Address mein koi landmark bata dijiye taaki courier ko dikkat na ho?"

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 upstream fix

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:

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.