Dograh

AI Voice Agents for Delivery Feedback and CSAT Surveys: One Rating, One Question

AI Voice Agents for Delivery Feedback and CSAT Surveys: One Rating, One Question
Use CaseOctober 15, 2026·8 min read

AI Voice Agents for Delivery Feedback and CSAT Surveys: One Rating, One Question

Pritesh Kumar
Pritesh Kumar·Co-founder, Dograh AI

Building Dograh, the open-source alternative to Vapi. OSS and Voice AI. Exit founder and YC alum.

An AI voice agent for delivery feedback calls the customer shortly after proof of delivery and asks two things: a rating from 1 to 5 and one open question about what happened. It records both answers as the customer said them and sends them to your CRM by webhook. It never computes a satisfaction score itself.

Key Takeaways

  • Almost nobody types a comment, so the reason behind a low rating is spoken.
  • Record the rating as stated. The agent never scores satisfaction.
  • Carriers draw more one-star ratings than shops, so ask who the rating is for.

This post is part of our guide to AI voice agents for logistics and delivery. The guide covers the calls a shipper makes after the parcel lands, and this customer satisfaction (CSAT) call is the shortest of them: one rating, one open question, timed from proof of delivery, recorded and never scored. In Dograh, an open-source, self-hostable voice agent platform, the call is two questions, and the answers go to your CRM by webhook.

Why the feedback has to be heard, not typed

A delivery survey fails before it starts if it arrives as an email. Retently studied 600 e-commerce brands and more than 25 million survey invitations sent during 2025 and found email surveys answered 3.24% of the time, against 32.34% for surveys shown inside an app. A courier has no app the customer opens every day. The parcel arrives, the tab closes, and the email joins the promotions.

The people who do answer rarely explain. Qualtrics' 2026 Consumer Experience Trends report, built on 20,000 consumers in fourteen countries, puts it plainly: only three out of ten customers give direct feedback. nShift looked at more than 115,000 delivery ratings left in the Nordics in December 2025 and found that only about 12% carried a comment. You get the star. You do not get the reason.

That is why this one is a call. Tracking updates and the "your parcel has arrived" note stay texts from your delivery system, because nothing is being asked. The survey asks a question that needs a spoken answer, and a voice agent can hold a short conversation at a scale a feedback team cannot.

Start the call from the proof-of-delivery event

The right moment to call is set by the delivery scan, not by a calendar. When the carrier feed or your transport management system (TMS) records the proof-of-delivery (POD) event, your system starts the call through Dograh's API Trigger, passing the order number, the carrier, the driver or route and the delivery time in initial_context. The post on API Triggers: Start a Voice Agent Call From Any System covers the mechanics, so I will not repeat them here.

How long after the scan is a test, not a rule. The day after delivery is a sensible starting point: the box has been opened, and the memory is fresh. Run two timings for a month and keep the one that gets answered. One rule does hold: a parcel marked damaged, missing or failed gets a different call. That is the proof-of-delivery confirmation call or a claims intake, and a satisfaction question on top of a broken box reads as tone-deaf.

Because this is an outbound call to a mobile number, the customer's prior express consent has to be captured at order or sign-up, and the post on US consent rules for delivery calls sets out where the line sits.

Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

One rating and one open question, recorded as stated

The whole script fits on an index card. The agent says who is calling and why, confirms it is speaking to the person who received the parcel, asks for a rating from 1 to 5, asks one open question, thanks the customer and gives a number to call back. Under a minute when the customer is happy, two or three when they are not.

The second question is where the value sits, so word it to invite a story. "What would have made this delivery better?" works better than "Any comments?". Then let the customer talk. An agent that interrupts a complaint to move on has wasted the call.

Recording the answers is the part teams get wrong. The rule the hub settled in AI Voice Agents for Claims CSAT Surveys: Record It, Never Score It applies here without change. In Dograh, extraction fields on the Agent or End Call node record the rating and the comment as the customer stated them. Extraction is an AI step, so the transcript and the recording remain the exact record, and the agent never turns the comment into a sentiment score or the ratings into a net promoter number. People do that later, with the full picture.

The customer's rating and comment recorded as stated and sent to the CRM by webhook, with a crossed-out computed score the agent never produces
A score the agent computes cannot be checked against anything, and a wrong one sits on a dashboard for a month. Keep the transcript and the recording as the record and let people do the arithmetic later.

After the call, a webhook node sends the two extracted variables, the order number and a link to the recording to your CRM. A temporary failure (timeout, 5xx, 429) is retried automatically, up to five attempts, while a wrong URL or credential is not, so test the endpoint first, give it a quick success response and do the heavy processing on your side.

Carriers get the blame, so ask who the rating is for

A delivery rating lands on whoever the customer is angry at, and that is usually the carrier. In nShift's December 2025 data, carrier-tagged ratings ran at about 85% five-star and about 5% one-star, while retailer-tagged ratings ran at about 88% and about 2.4%. The negative comments clustered on five themes: delayed, no notification, damaged, wrong pickup point and failed attempts. nShift calls the data directional, a peak-month snapshot rather than a carrier ranking, and I would treat it the same way. The pattern still matters: the shop sells the product, and the carrier wears the delivery.

So the open question has to separate the parcel, the person who carried it and the shop. If the answer names the driver, the agent records it under the driver or route it was given in initial_context, and the depot sees it the next morning. Add the depot, carrier and route names to the agent's dictionary so the speech-to-text hears "Northside depot" as a place and not as two unrelated words. A fleet that hears "the driver left it in the rain" the day it happened can fix a habit. A fleet that sees a 2 on a dashboard a month later cannot.

Plenty of deliveries go wrong somewhere between the warehouse and the doorstep. This call is where you learn which of those problems were yours.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

The unhappy customer and the one who says stop

The call still runs greet, verify, disclose. The greeting is fixed text in the Start Call node that names your company and the reason for the call, and the agent confirms it has the right person before it mentions an order, an address or a driver. A phone number finds the record. It does not prove who answered.

Two answers end the survey and start something else. A customer who describes damage or a missing item is handed to the intake flow described in the post on damaged and lost shipment claims, with the order number already captured, and the rating is still saved. A customer who asks you to stop calling goes onto your suppression list and nowhere near the ratings table. The agent repeats the callback number before it ends either call, since an informational call to a mobile has to state who is calling and how to reach them, and the FAQ below quotes the rule.

Keep the ratings and recordings on your own servers

Feedback data is customer data: a name, a phone number, an address the customer may describe out loud, and a recording of their voice. Self-hosted Dograh runs the whole flow on your own infrastructure with no per-minute platform fee, though servers and any paid model keys still cost money, and Dograh Cloud is 1 cent a minute if you would rather not run it. When you also run open-weight speech and language models yourself, the audio and the transcripts never leave your infrastructure. With hosted model keys the contract moves, and the audio still reaches the model provider.

Quality assurance works the other way round from the survey. Dograh's QA scores each step of the agent, with its own tags and score, so you can see where the agent cut a customer off or skipped the callback number. It grades the agent, never the customer, which is what the post on automated QA for voice agents argues at length.

Start by measuring one thing: how many customers who gave a 1 or a 2 also said why. If that number climbs, the call is doing the job no email ever did.

Glossary

proof-of-delivery (POD) event
The carrier scan or driver confirmation that marks a parcel as delivered. It is the event that starts the survey call.
extracted variables
The fields Dograh fills from the conversation after the call, such as the rating and the comment, recorded as the customer stated them.
carrier-tagged rating
A delivery rating the customer aims at the carrier rather than the shop. Carrier-tagged ratings draw more one-star scores.
prior express consent
The TCPA consent tier that generally covers an informational call made with an artificial voice to a mobile number.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.