In COD, everything starts here: an order you don't confirm is an order you'll probably ship for nothing. The confirmation rate is the first tap of your profitability — the one that decides how many of your orders are worth shipping. This guide explains why so many orders don't get confirmed, and how to push that rate up: the right channel, speed, messages, automation and measurement.
What is the confirmation rate (and why it decides your margin)?
The confirmation rate is the share of your COD orders you manage to validate with the customer before shipping: confirmed orders ÷ received orders. It's the first filter in the whole chain — it decides which orders are worth shipping, and therefore which will end up delivered and paid.
The math is simple: out of 100 received orders, if you confirm 90, your rate is 90%. The remaining 10 — unreachable customers, hesitant ones, bogus numbers — are precisely the ones you should not ship blind.
That's why this number governs your margin. An unconfirmed order shipped anyway goes out with a high risk of coming back undelivered (the RTO) — and a return is the carrier's round trip paid for zero sale. Confirming first means filtering before you spend on shipping.
Careful not to conflate the two: confirming doesn't guarantee delivery. But an order confirmed by a real customer, to a validated address, has a far better chance of arriving. The confirmation rate feeds the delivery rate — it's the first link, not the last.
For a concrete benchmark: merchants who confirm with UpConfirm reach a 92% confirmation rate. What's left is to understand why so many orders fail at this stage — and how to get closer.
Why so many COD orders don't get confirmed
An order fails to confirm for two reasons: either you can't reach the customer, or you reach them but they back out. Unreachable, cooled-off impulse buy, doubt about price or delivery time, fake order: each cause has its remedy, and most play out upstream.
- Unreachable customer — doesn't pick up, full voicemail, wrong number. Often a matter of bad timing or bad channel: an unknown call gets ignored.
- Cooled-off impulse buy — ordered on a whim (an ad, a story), the urge fades before you reach them. The longer you wait, the more you lose.
- Doubt about price, delivery time or product — the customer wants reassurance: delivery included? delivered when? matches the photo? Without an answer, they give up.
- Fake order — bogus number, made-up address, an order from a competitor or for a laugh. Impossible to confirm by nature: the point is to spot it fast so you don't ship.
- Duplicate or error — ordered twice, or got the product or quantity wrong.
The good news: nearly all these causes hinge on two levers — the channel you use to reach the customer, and the speed at which you do it. The next two sections.
Phone, WhatsApp or AI agent: which confirmation method?
Three methods exist. The phone call is direct but slow and costly. A WhatsApp message is fast, written and non-intrusive — the customer replies when they want, where they already are. An AI agent on WhatsApp keeps those strengths and adds 24/7 availability and the capacity to absorb any volume.
- Phone
- Direct and human, but time-consuming and expensive (agents or a call center). Many calls end in no-answer or refusal, and an unknown number gets ignored. Doesn't scale.
- WhatsApp (by hand)
- Fast, leaves a written trail, less intrusive: the customer replies when they can, on the app they already use. The drawback — by hand, it saturates as soon as volume rises.
- AI agent on WhatsApp
- All the advantages of WhatsApp, plus an instant reply, 24/7, at any volume, in Darija — and it follows up unreachable customers on its own.
For most COD merchants in Morocco, WhatsApp beats the call (customers reply more), and the AI agent lifts the volume ceiling. More on that in the "without a call center" section.
The golden rule: speed
Speed is the factor that weighs most on your confirmation rate. The sooner you contact the customer after their order, the fresher their buying intent — and the more they confirm. Waiting hours, or until the next day, means letting the urge fade and doubts settle in.
At the moment they order, the customer is hot: they've just decided. Every hour that passes cools that intent, especially for an impulse buy made in front of an ad. The first contact, if it comes fast, catches the customer while they're still motivated and available.
Concretely, aim to confirm within minutes of the order, not the next morning. And an unreachable customer on the first try isn't lost: following up at another time, on another channel, recovers some — but nothing replaces the fast first attempt.
This is exactly where a human hits their limit: nobody confirms at 11pm or over the weekend. An AI agent does — right when the customer has just placed their order.
Messages that work (confirmation scripts)
A good confirmation message is short, in the customer's language (often Darija), personalized (their name, the product, the price), and ends with a simple question they answer in one word. It reassures on price and delivery time, and sounds human — not like a robot.
- Identify the order — the customer's name, the product and the amount. They instantly know what you're talking about.
- Speak their language — Darija (or Arabic, or French depending on the customer) defuses distrust far better than a formal script.
- Reassure on what blocks — the total price including delivery, and the delivery time.
- End with a closed question — "shall I confirm your order?". A one-word answer, minimal friction.
- Keep it short and human — no wall of text, no robotic tone.
An example that works
Example
"Salam [Name] 👋 It's [Brand]. We've received your order: [Product] for [Amount] DH, delivery included, delivered within [X] days. Shall I confirm it? 🙏"
In practice, send it in Darija, Arabic or French depending on the customer. Adapt it to your brand and product, but keep the structure: identify, reassure, ask.
Confirming at scale, without a call center
Beyond a few dozen orders a day, confirming by hand no longer holds: it's slow, costly, and misses evening and weekend orders. The solution is automation — AI agents that contact each customer, confirm in Darija, follow up unreachable customers and handle support, 24/7, with no queue.
The wall is volume. A human confirms a limited number of orders per day; beyond that, you hire or set up a call center — your costs climb and quality drops. That's the moment many merchants plateau.
An AI agent changes the equation: it handles the whole volume in parallel, instantly, at any hour — so at the ideal moment, right after the order (the speed lever again). And because it writes in Darija naturally, the customer replies as they would to a human.
The result is measurable: more confirmations (up to 92% among UpConfirm merchants), so more parcels delivered (up to 87%). Two scenarios:
- With a store — the agent automatically confirms the orders that come in on your site.
- Without a store — the agent takes the order end to end directly on WhatsApp, then confirms it.
Measure and improve your confirmation rate
To improve your confirmation rate, start by measuring it: confirmed orders ÷ received orders, every week. Then look at where it stalls — first-contact delay, share of unreachable, share of fake orders — and act on the weakest link. This rate is worked on, not decreed.
- Measure the right ratio — confirmed ÷ received (not ÷ shipped), tracked weekly to spot trends.
- Watch your first-contact delay — if you confirm slowly, that's your first lever, before anything else.
- Separate the causes of non-confirmation — unreachable, refusals, fake orders: each has its remedy (follow-up, reassurance, filtering).
- Hunt down fake orders — if a recurring share comes from bad numbers or bogus addresses, flagging risky customers from their history saves you from shipping into the void.
- Loop — measure, act on the weak point, measure again.
Keep your eyes on what really matters: the confirmation rate isn't an end in itself, it's the first of the four metrics that decide your delivered revenue. Pushing it up mechanically means more parcels delivered and paid — and fewer returns.