An AI phone agent that works in a restaurant is mostly a dish ontology, not a voice model.
Every other guide on this explains speech-to-text, intent parsing, and dialogue state as the three layers of an AI phone agent. That is fine for a generic agent. It is not the thing that makes a restaurant phone agent survive a Friday rush. The thing that makes it survive is a per-dish description layer that teaches the agent your menu before it takes the first call.
What the dish ontology actually is
A row in the ontology is not a menu item. A menu item is what the POS knows about: a name, a price, a tax code. An ontology row is everything the phone agent needs to know about that item before a caller asks. Description. Ingredients. Spice. Sweetness. Allergens. Modifier tree. POS item ID. Every field is filled in during step 2 of onboarding, before the restaurant takes its first AI-answered call.
PieLine's onboarding step 2, in one sentence
PieLine's onboarding team scrapes your online menu, maps every dish to a POS item ID, writes a description row, and wires the modifier tree, before you answer any call.
The modifier tree is the part that matters. Our feature copy calls out the specific cases it has to handle: half-and-half pizzas, spice levels, protein substitutions, custom sushi rolls. Those are not edge cases the AI guesses through on a call. They are first-class types in the ontology, declared up front.
Source: llms.txtin this repo, "Features" section lines 26 to 35 (cuisine-specific customization + menu descriptions). Onboarding sequence, same file lines 17 to 22.
One ontology row, in code
This is the shape of a single dish as the phone agent sees it. It is not a POS row. It is what PieLine builds on top of the POS row during onboarding so the agent can answer questions like "is this spicy" and "can I sub paneer for the shrimp" without hesitating.
Nine fields. The four layers of a generic phone agent get you nowhere without these nine fields. Once the nine fields exist, the agent can price a half-and-half, answer an allergen question without guessing, and push a completed ticket to Clover or Toast with the right modifier IDs.
Four layers, three of them commodity
Speech recognition is a commodity now. Language understanding is a commodity now. Dialogue management is a commodity now. The ontology is not. It is the one layer you cannot buy off the shelf, and it is the one layer that makes the call end with a printed ticket instead of a transfer.
Inside a single call, from ringing to ticket
The nine fields, and what each one unlocks
Every field is a specific caller question the agent would otherwise have to punt on. Remove the field, and the call ends with a transfer or a wrong order.
POS item ID
The only identifier that makes the ticket land in Clover, Square, Toast, NCR Aloha, or Revel with the right price.
Display name + category
Lets the agent match 'the chicken one' or 'your mains' when a caller shortcuts the menu.
Short + long description
Short goes out over voice. Long answers follow-up questions without pulling a human in.
Ingredients
Answers 'does this have cilantro' and 'is there cashew in the gravy' without the agent guessing.
Allergen flags
Hard gate. If an allergen question lands on a dish with no verified flag, the agent escalates instead of answering.
Spice level (default + offered)
Means the agent can default 'medium' on the tikka masala and still accept 'make it extra spicy'.
Sweetness
Matters for desserts, drinks, and combo upsells. 'Not too sweet' is a real caller phrase the agent has to honor.
Modifier tree
Half-and-half pizzas, protein substitutions, custom sushi rolls, and lunch-combo math live here as declared types, not improvisation.
Applicability rules
Lunch-only combos, happy-hour pricing, minimum orders, delivery zones. The agent never offers what the restaurant cannot fulfill right now.
A real call, step by step
A caller dials in, asks about a dish, modifies it, and the agent sends the ticket to the POS. Every arrow below is a point where the ontology is doing the work people assume the LLM is doing.
One order, one ontology
How PieLine fills the ontology for a new restaurant
Building the ontology by hand would take a week. PieLine does it the same day because the work is automated at the top of the funnel and supervised at the bottom.
Scrape the online menu
The AI builder crawls your existing online ordering page (DoorDash, Toast Online Ordering, your own site) and extracts item names, prices, categories, and descriptions it already publishes.
Map to POS item IDs
Each scraped item is matched against the POS catalog for Clover, Square, Toast, NCR Aloha, or Revel so tickets land with the right price and tax row.
Fill in the sensory and allergen rows
Ingredients, spice levels, sweetness, and allergens are drafted from public menu copy and reviewed by a PieLine onboarding engineer. Gaps are flagged back to the restaurant.
Wire the modifier tree
Half-and-half pizzas, protein substitutions, custom sushi rolls, combo rules, and delivery zones are declared as typed modifier options against the POS item IDs.
Monitored first month
Active call monitoring and AI refinement runs for the first 30 days. Calls where the agent escalated because the ontology was incomplete become the next week's ontology updates.
Horizontal AI phone agent vs. restaurant AI phone agent
Same voice stack. Different domain layer. The difference shows up on the first menu question.
| Feature | Horizontal agent (Bland, Retell, etc.) | PieLine (restaurant) |
|---|---|---|
| Speech + language stack | Commodity. Same as everyone else. | Commodity. Same as everyone else. |
| Per-dish description schema | You build it. The agent has no concept of a dish out of the box. | Built by PieLine onboarding in step 2. 9 fields per item. |
| Half-and-half pizzas, protein subs, custom sushi | You write the logic in prompt or code. | Declared as typed options on the modifier tree. |
| POS integration | Webhook you wire yourself. | Clover, Square, Toast, NCR Aloha, Revel. 50+ POS integrations. No re-entry. |
| Allergen questions | Agent answers from scraped text. Quality varies. | Hard allergen flags. Unknown allergen on a dish escalates to a manager. |
| Time to first answered call | Weeks (you build the ontology). | Same day (PieLine builds the ontology). |
Horizontal tools are excellent primitives. If you want to ship the restaurant-specific layer yourself, pick one. If you want the layer to already exist, pick a restaurant agent.
What happens if you skip the ontology
These are the failure modes a restaurant owner actually sees on a Saturday night when a generic phone agent is configured against a raw POS export, without the fourth layer.
- "Let me transfer you" on every second call. Without ingredient and spice rows, any question beyond name-and-price becomes an escalation. The 10% escalation rate that PieLine aims for drifts up to 40% or more.
- Half-and-half pizzas as a free-text note. Without a modifier tree, "half pepperoni, half veggie" lands in the POS ticket as a string the kitchen has to interpret. The 95% order accuracy target goes with it.
- Allergen hallucinations. Without hard allergen flags, the LLM will cheerfully tell a caller a dish is nut-free based on the scraped menu copy. That is a lawsuit waiting to be filed.
- Upsells on items that are 86'd. Without applicability rules for daily specials and inventory, the agent offers the lunch combo at 9pm, which the kitchen refuses, which the caller remembers.
Specific cases PieLine's modifier tree handles as typed options
What this looks like at a real restaurant
Mylapore is an 11-location South Indian chain in the Bay Area. The ontology for Mylapore covers the standard tikka and biryani set, but it also covers spice levels for every curry, a protein substitution tree (paneer, chicken, tofu), and a lunch-combo applicability window. That is why the agent can answer "can I get the saag paneer with tofu, extra spicy, as a lunch combo" correctly on the first call.
Operator outcome
Projected additional revenue per Mylapore location per day from eliminating the phone bottleneck, roughly $2M+ per year across 11 locations. Reported by owner Jay Jayaraman.
AI autonomy at Idly Express, Almaden
Share of calls completed end-to-end by the AI, without a human on the line. The 10% that escalates is by design (complaint, catering, edge case).
Want to see your own menu as an ontology?
Book a 20 minute walkthrough. We will scrape your menu live, show you the modifier tree your agent needs, and play a sample call against it.
Book a call →Frequently asked
What is an AI phone agent, in plain terms?
A software agent that answers a phone line, speaks with the caller in natural language, extracts the intent (order, reservation, question, complaint), takes action against a backend system, and transfers to a human on a short list of defined triggers. In a restaurant, the backend system is a POS: Clover, Square, Toast, NCR Aloha, or Revel. An order on the call ends as a line-itemized ticket on the kitchen printer, not an email a manager has to re-key.
Why do most articles about AI phone agents skip the menu layer?
Because most articles are written about horizontal tools (Bland, Retell, Synthflow, Vapi) that sell a call-answering primitive to every vertical at once. The speech and language stack is the same across healthcare, roofing, and restaurants, so that is what the articles cover. The domain-specific layer, which is the layer that actually determines whether the agent can do the job, lives in the customer's own configuration and rarely makes it into the marketing page. For restaurants, that layer is the dish ontology.
What does PieLine's dish ontology actually contain?
For every menu item: a POS item ID, a display name, a category, ingredients, a spice level (for cuisines where it matters), a sweetness level (desserts, drinks), allergen flags, a short description, a long description, and a modifier tree. The modifier tree is where half-and-half pizzas, protein substitutions, custom sushi rolls, and extra-toppings math actually live. Those are named cases in our feature copy, and they only work because the modifier tree exists before the call starts.
Who builds the dish ontology for a restaurant? The owner?
No. PieLine's onboarding team builds it. Step 2 of onboarding scrapes the online menu, maps each item to a POS item ID, writes the description rows, and wires the modifier tree. The restaurant owner reviews, not authors. That is why a shop can go live the same day. If the restaurant had to type out a spice level and an ingredient list for 180 dishes before taking the first call, nobody would finish onboarding.
What happens when a caller asks about a dish that is not in the ontology yet?
The agent routes the call to a manager with the full transcript attached. Novel menu items not yet uploaded are one of the named edge case triggers in PieLine's escalation contract, alongside complaints and catering requests. The agent does not guess the price of a dish it has never seen, and it does not claim an allergen fact it cannot verify. The manager sees the transcript, answers the caller, and the ontology gets updated that week.
How is the dish ontology different from a POS menu export?
A POS export gives you item name, price, and tax code. That is enough for a cashier, not for a phone agent. The agent needs to answer 'is the paneer tikka spicy?' or 'can I make the combo with chicken instead of shrimp?' before the order is even placed. The ontology adds the description, the sensory fields (spice, sweetness), and the modifier tree on top of the POS row so the agent can answer those questions without a human on the line.
What pricing covers this, and what if my menu changes?
$350 per month covers up to 1,000 calls. $0.50 per call after that. Onboarding, including the dish ontology build, is included (hands-off for the owner). Menu changes during operation are handled by the active call monitoring and AI refinement that runs during the first month, and by ongoing updates after that. A money-back guarantee applies to the first month if the 95%+ order accuracy or the 90%+ AI-handled call rate does not hold at your restaurant.