AI voice agents for courier and last-mile delivery make four calls along a parcel's journey: a pre-dispatch call that confirms the address, cash on delivery and the window; a running-late call with a new arrival time; a reschedule call after a missed attempt; and a proof-of-delivery check. Every answer is written back to the courier's own delivery system.
Key Takeaways
- The smallest carriers are growing fastest, and every parcel is a potential call.
- One call before dispatch removes the address, window and cash-on-delivery failures.
- A notice is a text. A decision is a call that updates your system.
This post is part of our guide to AI voice agents for logistics and delivery. The guide maps missed deliveries, wrong addresses, busy windows and cash-on-delivery refusals to the call that fixes each. This page is that map in detail, for couriers and last-mile fleets. Each call is a short flow in Dograh, an open-source, self-hostable voice agent platform, and every answer the customer gives is written straight back to your delivery system.
Couriers get the calls nobody staffed for
Parcel volume is growing fastest at the small end of the market, where the fewest people are answering the phone. The Pitney Bowes Parcel Shipping Index counts 23.1 billion US parcels in 2025. The carriers it groups as "Others", outside the big national networks, grew their volume by 127% in a year and took their share of revenue from 3.4% to 7.2%. Every one of those extra parcels is a possible phone call: a customer who was out, a flat number that does not exist, a window that no longer fits, a cash payment refused at the door. The calls below follow the parcel's journey. Most are outbound, so each needs consent captured at the order, which I come back to at the end.
The pre-dispatch call: address, cash on delivery and window
One call before dispatch prevents three of the four failures. It runs the evening before or the morning of the route. Your delivery system flags the risky orders, the agent reads each order through an HTTP API tool, and three questions follow in turn.

Wrong addresses: fix them before the van leaves
A wrong address is the cheapest failure to prevent and the most expensive to discover at the door. The orders worth a call are the ones your system already doubts: a new address, a business address with no unit number, a note like "behind the blue gate". The agent confirms the street and the number with the customer, and asks the one question drivers wish someone had asked: how do I get in?
In Dograh, this is a short flow. The agent node holds the questions, the HTTP API tool fetches the order, and the gate code or the "ring the side bell" instruction is recorded as an extracted variable, as the customer said it. A webhook writes the corrected address and the access note back to the order after the call, so the driver sees it on the stop. The full flow is in our post on AI voice agents for delivery coordination.
Cash on delivery: confirm the amount and the intent
Cash on delivery turns a refused parcel into a paid return trip, and the refusal rate is measurable. Base.com's 2026 India e-commerce benchmarks put return-to-origin at 30-40% on cash-on-delivery orders against 20-30% on prepaid ones.
The same call adds one more question. The agent confirms the order, confirms the amount to be paid at the door, and asks whether the customer still wants it. A "no" before the van leaves costs nothing. A "no" at the door costs the stop and the return.
Two design points matter here. The agent verifies the customer before it says the amount or the item, because the order value is personal detail. And the agent never decides what to do about the order. If COD orders above a certain value need a prepaid conversion or a second confirmation, that check lives in your order system and runs through an HTTP API tool during the call. The AI picks the next step from the answer your system returns.
Busy windows: check the slot still fits
The customer picked a window weeks ago and life moved on. The last question on the pre-dispatch call is whether the booked window still works. If it does not, the agent offers the slots your system returns and records the choice as an extracted variable. The webhook writes the new slot back to the route before the van is loaded, so the window problem is solved while it is still cheap.
Open Source Alternative to Vapi / Retell
Self-hosted voice agent platform — no per-minute fees
dograh-hq/dograh
Star on GitHub
Running late on the day
The second window problem happens on the day, when the route runs late and the booked slot will be missed. Locus puts the cost of a failed first attempt at roughly $17 once redelivery, wasted mileage and handling are counted, a figure it attributes to OrangeMantra in its last-mile benchmarks for North America.
The tracking system sees the delay, starts the call through the API Trigger with the order details in the initial context, and the agent gives the customer a new arrival time and the choice to keep it, move it or name a safe place. The customer's choice is an extracted variable, and the webhook writes the new slot back to the route. Our post on AI voice agents for delivery delay and exception alerts covers the trigger logic and the consent check that runs before the call is placed.
Missed deliveries: the call after the attempt fails
A missed delivery is the one call every courier already makes, usually too late. The driver marks the stop as failed, the parcel rides back to the depot, and someone phones the customer the next morning.
The fix is to start the call from the failed-attempt event itself. The driver's app marks the stop, the delivery system fires the API Trigger, and the agent is on the phone within minutes with the two things the customer needs: a new slot, or a safe place to leave the parcel. The answer is written back to the delivery system by webhook, so the next route picks it up without anyone retyping it.
Not every miss needs a call. If the parcel is already booked for an automatic re-attempt tomorrow and nothing is required from the customer, that is a text from your delivery system, not a call. Our post on the AI voice agent for failed delivery rescheduling covers the timing of that call and why the first two hours decide the outcome.
Whichever path the call takes, the agent verifies before it names anything. It greets, asks for the postcode or the last digits of the order number, and only then says which parcel it is calling about. A phone number finds the record. It does not prove who picked up.
Proof of delivery: the short call after the drop
The fourth call closes the loop. After the driver marks the stop delivered, a short call checks that the parcel arrived and arrived whole, and the answer is recorded as an extracted variable the webhook sends to the order. A "damaged" answer opens the claims flow the same day instead of waiting for a complaint. It is not evidence in a card dispute; its job is to catch problems early. The timing and the questions are in our post on AI voice agents for proof-of-delivery confirmation.
Join the Dograh Community
Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.
Which courier calls should not be a voice agent
The list of calls to keep away from a voice agent is short. Anything that commits money is out: a refund, a goodwill credit, a decision about who pays for a damaged parcel. Anything that is really a dispute is out. And any call where the customer asks for a person gets a person.
That last point is the one most delivery bots get wrong. A customer who cannot reach a human does not keep trying; they leave a review. So every flow in this post ends with a Transfer Call step to a dispatcher, which works on Twilio numbers, and the agent writes what it learned to the delivery system through the HTTP API tool before it transfers. The transfer itself passes no summary, so the write-back is what puts the order on the dispatcher's screen as the call lands. On Twilio, an optional spoken introduction can summarise the call for both sides, and it is off by default.
Keep the addresses and phone numbers on your side
Every call above reads and writes a customer record, and the record should live in the courier's own system. Addresses, gate codes and phone numbers are the most sensitive data a courier holds, and a voice agent touches them on every call. Self-hosted Dograh runs on your servers with no per-minute platform fee; you pay for the servers and any model keys you use, and the delivery system remains the only place the customer data lives.
Outbound calls to customers need consent captured at the order or at sign-up, and the rules differ by country and by state; our US post on consent for delivery calls walks through them for American operators.
Start with the pre-dispatch call on the orders your system already flags as risky. It is one flow, it answers three of the four problems, and the first week of answers written back to your delivery system will tell you where the second flow should go.
Glossary
- return-to-origin
- A parcel that goes back to the sender after a delivery fails or the customer refuses it at the door.
- pre-dispatch call
- An outbound call made before the van leaves that confirms the delivery window, the address and any access details.
- API Trigger
- The Dograh endpoint your delivery system calls to start an outbound call, passing the order details so the agent opens with the reason for calling. Its production URL runs the published flow only.
- extracted variable
- An answer the agent records from the conversation, as the customer stated it, for the delivery system to store.

