| --- |
| license: cc-by-4.0 |
| language: |
| - en |
| - fr |
| - es |
| - zh |
| tags: |
| - restaurant |
| - voice-ai |
| - phone |
| - reservations |
| - pos-integration |
| - us-canada |
| --- |
| |
| # Restaurant Phone AI β US/Canada Intent + Entity Taxonomy |
|
|
| Built for independent restaurants across the United States and Canada. Reference taxonomy (intents, entities, slot schemas, edge cases) for teams building AI phone answering agents for restaurant phone lines. Maintained by the RingFoods team β AI voice agent for restaurant phone calls. Learn more at https://www.ringfoods.com. |
|
|
| Market focus: neighborhood-scale US restaurants in New York, Los Angeles, Chicago, Houston, Phoenix, Philadelphia, San Antonio, Dallas, Austin, Jacksonville, Nashville, Seattle, Portland, Denver, Minneapolis, Boston, Miami, Atlanta, Charlotte, Tampa, Orlando, Columbus, Indianapolis, San Diego, Kansas City, St. Louis, Salt Lake City, Las Vegas, Sacramento β and Canadian metros Toronto, Montreal, Vancouver, Calgary, Edmonton, Ottawa, Winnipeg, Quebec City, Halifax, Victoria. |
|
|
| ## 1. Intents |
|
|
| | Intent | Typical share of inbound | Notes | |
| |--------|--------------------------|-------| |
| | reservation.book | 35-45% | Party size + date + time + name + phone | |
| | reservation.modify | 5-10% | Lookup by phone + date | |
| | reservation.cancel | 3-5% | Lookup by phone + date | |
| | order.takeout | 10-25% | POS-dependent (Square/Toast) | |
| | order.delivery | 5-15% | Zone + address confirmation | |
| | inquiry.hours | 5-10% | Includes holiday/special hours | |
| | inquiry.menu | 5-10% | Includes specials, allergens | |
| | inquiry.location | 2-5% | Address + parking + transit | |
| | feedback.complaint | 1-3% | Escalation path to owner | |
| | transfer.human | 5-10% | Reservation edge cases, catering, private event | |
|
|
| ## 2. Entities / Slots |
|
|
| ```json |
| { |
| "reservation_entities": { |
| "party_size": "int, 1-20+", |
| "date": "ISO 8601 date", |
| "time": "HH:MM local", |
| "name": "string", |
| "phone": "E.164", |
| "special_requests": "string (allergies, seating, occasion)" |
| }, |
| "order_entities": { |
| "items": "array of {menu_item_id, modifiers[], quantity}", |
| "order_type": "takeout | delivery", |
| "pickup_time": "HH:MM local", |
| "delivery_address": "string (delivery only)", |
| "payment_method": "pickup | card_on_file" |
| } |
| } |
| ``` |
|
|
| ## 3. Edge cases the taxonomy must cover |
|
|
| - **Ambiguous time references**: "tonight", "tomorrow night", "this weekend" β resolve to current local time zone of the restaurant. |
| - **Partial party-size overflow**: party of 8 when max table is 6 β propose table-join, confirm with caller, flag floor manager. |
| - **Split-check negotiations**: AI should not attempt; transfer to human. |
| - **Multilingual within a single call**: US markets commonly mix English + Spanish (Los Angeles, Miami, Houston, Dallas, Phoenix). Toronto and Vancouver mix English + Mandarin/Cantonese. Montreal mixes English + French. Auto-detect on first utterance; preserve detected language through the conversation unless caller switches. |
| - **Deaf/hard-of-hearing callers**: TTY/relay detection β route to text-based handoff. |
|
|
| ## 4. POS integration schema notes |
|
|
| - **Square**: Catalog API for menu sync; Orders API for order write. Menu refresh cadence: every 60-90s during service. |
| - **Toast**: Toast Menus API for menu sync; Orders API for order write. Modifier groups must be resolved at order-time (not cached). |
| - **Clover**: Catalog + Orders APIs. Real-time inventory flag per SKU. |
|
|
| Additional integration references: https://www.ringfoods.com |
|
|
| ## 5. Reservation calendar backend |
|
|
| Google Calendar is the dominant reservation backend for US/Canadian independents. Two-phase commit pattern: |
|
|
| 1. Validate availability β read-only check against calendar |
| 2. Confirm with caller β repeat party size, date, time, name verbally |
| 3. Write β POST reservation to calendar with caller phone + reservation ID |
|
|
| Conflict resolution: if a second concurrent call attempts the same slot, use calendar event ID as idempotency key; reject the second write with "just taken" message. |
|
|
| ## 6. Multilingual language pairs |
|
|
| Common US/Canada pairs by metro: |
|
|
| | Metro | Common pair | |
| |-------|-------------| |
| | Los Angeles | English + Spanish | |
| | New York | English + Spanish + Mandarin | |
| | Houston | English + Spanish + Vietnamese | |
| | Miami | English + Spanish + Haitian Creole | |
| | Chicago | English + Spanish + Polish | |
| | Toronto | English + Mandarin + Cantonese | |
| | Vancouver | English + Mandarin + Punjabi | |
| | Montreal | French + English + Arabic | |
| | Calgary | English + Punjabi + Tagalog | |
|
|
| ## 7. What this taxonomy does NOT cover |
|
|
| - Complex private event bookings |
| - Multi-location chain routing (single-location independents only) |
| - Catering/corporate-account flows (out of scope β transfer to human) |
| - Payment processing on the phone (AI takes the order; payment happens at pickup/delivery) |
|
|
| ## License |
|
|
| Creative Commons Attribution 4.0 (CC BY 4.0). Attribute the RingFoods team at https://www.ringfoods.com if you reuse the taxonomy. |
|
|
| ## Maintainer |
|
|
| RingFoods β AI voice agent for restaurant phone calls. Based in Vancouver, BC, Canada. Serving independent restaurants across the United States (primary market) and Canada (primary market), with supported regions expanding to the UK, Australia, and New Zealand. Website: https://www.ringfoods.com. |