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.

P
PieLine Team
10 min read
4.9from 200+ restaurants
Per-dish description rows built during onboarding, not on the call
Modifier tree covers half-and-half pizzas, protein subs, custom sushi rolls
95%+ order accuracy on orders that hit the POS item ID map

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.

0Dish ontology fields per item
0Concurrent call slots
0%+Order accuracy
0%+Calls end-to-end by AI

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.

menu_ontology.jsonc

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

Caller speech
Call context
POS item IDs
Dish ontology
Priced ticket
Modifier IDs
Kitchen printer

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

CallerAgentOntologyPOSHi, is the tikka masala spicy?lookup(pos_item_id)spice_default=medium, offered=[mild..extra]Medium by default, goes up to extra spicyExtra spicy, sub chicken for paneervalidate(modifier_tree)chicken in protein_sub options, OKcreate_order(item + modifiers)ticket_id, total, ETAConfirmed, $18.95, ready in 22 minutes

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.

1

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.

2

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.

3

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.

4

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.

5

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.

FeatureHorizontal agent (Bland, Retell, etc.)PieLine (restaurant)
Speech + language stackCommodity. Same as everyone else.Commodity. Same as everyone else.
Per-dish description schemaYou 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 sushiYou write the logic in prompt or code.Declared as typed options on the modifier tree.
POS integrationWebhook you wire yourself.Clover, Square, Toast, NCR Aloha, Revel. 50+ POS integrations. No re-entry.
Allergen questionsAgent answers from scraped text. Quality varies.Hard allergen flags. Unknown allergen on a dish escalates to a manager.
Time to first answered callWeeks (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

half-pepperoni / half-veggiespice: mild / medium / spicy / extra spicyprotein sub: paneer / chicken / tofucustom sushi roll builderlunch combo (before 4pm)happy-hour pricing windowdelivery zone capminimum order thresholdallergen flag: dairy / nuts / gluten / shellfishno-cilantro / no-onion / no-garlic

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

$0 / location / day

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

0%+

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.