Dograh

AI Voice Agents for Phone Ordering: Confirm When the POS Says Yes

AI Voice Agents for Phone Ordering: Confirm When the POS Says Yes
Use CaseOctober 20, 2026·8 min read

AI Voice Agents for Phone Ordering: Confirm When the POS Says Yes

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.

AI voice agents for phone ordering take takeaway and delivery orders. They read the menu from the point-of-sale (POS) system or Knowledge Base, read every item and modifier back with the total, write the order to the POS and confirm it only when the POS returns an order number. Allergy questions go to staff, and no card number is taken.

Key Takeaways

  • The total and sold-out items come from the POS, never the model.
  • Tell the guest an order exists only after the POS returns a number.
  • Allergy questions go to staff; payment happens at pickup or by secure link.

This post is part of our guide to AI voice agents for restaurants. The guide's section on phone orders puts them third, after questions and bookings, because an order has more ways to go wrong than a booking. Here is the order call in full, built on Dograh, an open-source, self-hostable voice agent platform, which reads your menu and writes to your POS during the call.

Why ordering is the last call restaurants hand over

Phone ordering is the restaurant call that operators and guests trust a machine with least. Restaurant Dive's report on the National Restaurant Association's 2026 State of the Restaurant Industry found that only 6% of restaurants use AI for customer orders. Guests are warier too. In a survey The Harris Poll ran for Hostie, a company that sells restaurant AI, 38% of 2,065 US adults said they would let an AI agent place a pickup or delivery order, against 47% for making a reservation.

The caution makes sense. A booking has four facts in it. An order can have ten items, each with a size and a list of changes, plus an address and a payment. The rest of this post designs for those parts one at a time.

Read the menu from the right place

The menu has a slow part and a fast part, and they come from different places. The slow part is the dishes, their descriptions and the standard options. Put that in the agent's Knowledge Base, which takes PDF, DOCX, DOC, TXT and JSON files up to 5 MB each, so the menu file the front of house already keeps can feed the agent. When the menu changes, replace the file the same day.

The fast part is prices and sold-out items. Those come from the POS through an HTTP API tool, read during the call. When the kitchen runs out of the lamb, the POS knows first, and the agent says "sorry, the lamb is sold out tonight" because the POS said so. It never offers a dish from memory.

Dish names trip up speech recognition. "Gnocchi" and your house names for dishes get misheard, so add them to the agent's Dictionary, which works with Deepgram and Dograh speech-to-text; how much it helps depends on the provider. The Greeting Text, spoken word for word when the call connects, names the restaurant. If you want to tell guests they're speaking with an automated assistant, or your location requires it by law, write it there too.

Read every item back with the total

Every order is read back before it is sent, because the read-back is the one point where a guest can still catch a mistake. The agent first asks whether the order is for pickup or delivery. Then it takes each item as the guest says it, with the size and every modifier, such as no onions or extra cheese on half.

Before anything goes to the POS, the agent reads the whole order back: "Two large margheritas, one with extra basil, a garlic bread and a Coke, for delivery to 14 Elm Street. Your total is $41.50. Shall I place it?" The total comes from the POS, which prices the basket. The model never adds up a bill itself. For delivery, the street and flat number are read back too, since a wrong door costs a remake and a second driver.

The agent reads the whole order back, two large margheritas with extra basil on one, a garlic bread and a Coke for delivery to 14 Elm Street, with a $41.50 total that the POS priced.
The read-back is the one point where a guest can still catch a wrong item, size or modifier. The total in it comes from the POS every time, never from a sum the model worked out.

When the agent is unsure what it heard, it asks again in a narrower way: "Was that the chicken or the chickpea curry?" If it still cannot tell, it writes what it has and hands the call to staff. A guessed item costs more than a short transfer.

Dograh

Open Source Alternative to Vapi / Retell

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

dograh-hq/dograh

Star on GitHub

Write to the POS and confirm only on its yes

The POS is the record, so the order exists only once the POS accepts it. After the guest says yes, an HTTP API tool sends the order to your POS, or to a small service your team runs in front of it. Dograh has no built-in POS integrations; your systems connect through HTTP API tools, MCP tools, the Webhook node, Pre-Call Data Fetch or the API Trigger (n8n and similar tools connect through these).

The reply decides what the guest hears. If the POS returns an order number and a ready time, the agent reads both out. If the POS rejects the order, or does not answer, the agent says the order is not placed yet and offers a person or a callback. A guest who drives over for food the kitchen never got is the worst outcome on this line.

A slow network can also send one order twice. Add a Preset Parameter named workflow_run_id to the HTTP API tool, with the value {{initial_context.workflow_run_id}}. Dograh adds no Idempotency-Key header itself, so the POS or your service uses that ID to ignore a second copy of the same order.

A guest who calls back to change an order is checked first. The agent asks for the name on the order and its pickup or delivery time before it reads the order out. After every call, a webhook sends the outcome, the order number and the transcript link to your system. How orders go missing between the phone and the POS at scale is covered in What 1 Million AI Voice Calls Reveal for Restaurants and Home Services.

Allergies and complaints go to staff

The agent never answers an allergy question, even when the menu file lists allergens. Allergen information is the restaurant's written responsibility. In its guidance on the 2022 Food Code, the US Food and Drug Administration (FDA) says unpackaged food served in a retail food establishment "must have written notification" to consumers "of the presence of major food allergens as an ingredient" in that food. That applies in places that adopt the 2022 Food Code, and it still says nothing about cross-contact in a busy kitchen, which only staff can judge.

So any allergy question takes one fixed path. The agent writes a note on the order first, then hands the call to a staff member. Put the handover line in the allergy pathway's Transition Speech, which plays word for word on a cascade agent, because anything a node prompt asks for is still worded by the model. Transfer Call works on Twilio only and passes no summary, so the note must exist before the transfer. If nobody picks up within 30 seconds (the default), the guest stays with the agent, which writes a callback request through an HTTP API tool and does not place the order.

Complaints about an earlier order follow the same idea. The agent records the complaint as the guest stated it and writes a manager callback request. It offers no refund, discount or free dish, because the agent never decides money.

Join the Dograh Community

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

Payment, and where the order data lives

No card number is ever taken on the call. Dograh has no keypad tool and no feature for taking customer payments on a call, which suits the rule. The guest pays at pickup or on delivery, or an HTTP API tool asks the restaurant's own system or payment provider to send its secure payment link by text or email.

A spoken card number would also end up in the recording and the transcript. Dograh has no retention setting, so both stay until your own policy deletes them. Self-hosting Dograh keeps recordings and transcripts on your servers; the guest's audio stays there too only when the speech and language models also run on your servers, since with model API keys it still reaches those providers. Self-hosted Dograh has no per-minute platform fee (servers, model keys and phone minutes still cost); Dograh Cloud is a 1¢-a-minute platform fee. We also built a page on running an open-source phone ordering agent for restaurants on your own servers.

This is the agent our tutorial on how to build a voice agent for restaurants builds step by step. Calls the restaurant makes after an order, such as checking a catering order or a failed address, are in AI voice agents for order confirmation in restaurants.

Glossary

Read-back
The agent repeats the order to the guest, item by item with the modifiers, the address for delivery and the total from the POS, before the order is sent. It is the last point where a mistake costs nothing to fix.
Modifier
A change to a menu item, such as a size, extra cheese or no onions. Modifiers are where most phone orders go wrong, so each one is read back.
Dictionary
The agent setting that lists words for speech-to-text to listen for, such as dish names. It works with Deepgram and Dograh speech-to-text. How much it helps depends on the provider.
Preset Parameter
A fixed value an HTTP API tool sends with every request. Sending workflow_run_id this way lets the POS spot and ignore a duplicate order.

Frequently Asked Questions

Get started with Dograh

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