Skip to content

Take restaurant orders in chat ​

"Two large margheritas, extra basil, deliver to 12 Oak Street" β€” your AI reads the menu, collects the toppings, and writes a real order while you plate the last one.

  • What you'll have β€” A sales assistant that knows your menu, takes orders right in the conversation β€” items, quantities, toppings, delivery address, phone β€” and drops each one into a proper Orders list you can watch fill up. Works the same on WhatsApp, Instagram, your website widget, wherever your customers already message you.
  • Who it's for β€” Restaurants, pizzerias, cafΓ©s, dark kitchens, bakeries, food trucks β€” anyone who takes orders by chat and is tired of copying them into a notebook by hand.
  • Time & plan β€” About 20-30 minutes to set up. Works on any Sales plan (Standard or above), or during the 3-day trial. Every reply the assistant sends β€” including order-taking turns β€” draws from your shared sales-message balance.

Ingredients ​

Switch onWhereWhy
A sales assistantAgents β†’ Agent configurationThe AI that chats with customers and takes the order
Your menu as a Product SpreadsheetKnowledge β†’ Product InventorySo the assistant can look up dishes, prices and descriptions in chat
The Orders integrationIntegrations β†’ your assistant β†’ Order Management β†’ OrdersNative order-taking β€” no external account needed
Order fields (delivery address, phone)Orders cardWhat the assistant collects for every order
Custom item fields (size, toppings)Orders cardWhat the assistant collects per dish
At least one channelChannelsWhere customers reach the assistant (widget, WhatsApp, Instagram…)
Requires payment via Stripe (optional)Orders cardTake payment when the order is placed

One assistant, every channel

You set order-taking up once, on the assistant. It then works on every channel that assistant is connected to β€” website widget, WhatsApp, Instagram, Telegram β€” with no extra setup per channel.

Steps ​

1. Pick (or create) your sales assistant ​

Open Agents in the sidebar β€” the page is titled Agent configuration at app.mychatbot.app/configuration. Choose the assistant that will take orders from the Select an assistant dropdown, or create one. Give it a friendly Name and a Communication style that sounds like your front counter.

One active assistant on Standard and Pro

On the Standard and Pro plans, only one assistant stays active at a time. That's fine for a single order-taker β€” just make sure the one you set up here is the active one. Multipro and Corporate allow several active assistants.

2. Load your menu as a Product Spreadsheet ​

Open Knowledge in the sidebar and go to Product Inventory (app.mychatbot.app/knowledge). Add a Product Spreadsheet β€” this is a Google Spreadsheet with one row per dish. Use these column headers:

ColumnPut here
idA short code for the dish (e.g. pizza-margherita)
productThe dish name (e.g. "Margherita Pizza")
descriptionWhat's in it β€” ingredients, allergens, "serves 2"
priceThe price
linkAn optional link to the dish on your site
image_linkAn optional photo of the dish

Map your headers to those fields when prompted, then let it index. Once it finishes, your assistant can search the menu and pull the right dish, price and description into any chat.

A menu loaded as a Product Spreadsheet, mapped to id / product / description / price columns

Put the real details in the description

The assistant reads whatever you write. "Margherita β€” tomato, mozzarella, basil. Vegetarian. 30cm." searches far better than just "Margherita." Add sizes, allergens and portion notes here and answers get sharper.

Prefer a live feed?

If your menu already lives somewhere that publishes a product feed, you can connect that instead of a spreadsheet β€” same result, the assistant gets a searchable menu. See Getting inventory in.

3. Turn on the Orders integration ​

Go to Integrations, pick the same assistant, and find the Orders card under Order Management β€” subtitle "Native order management for your AI agent." This is MyChatBot's own order-taking, so there's no external system to link. The card explains it plainly: "Native order management β€” [your assistant's name] can create, update and cancel orders."

Set the Currency to match your prices, then click Connect.

The Orders card under Order Management, with the Currency selector before connecting

Orders and Spreadsheet Orders don't mix

An assistant uses one order system at a time. If you see "Spreadsheet Orders is already connected to this assistant," disconnect that first β€” native Orders and the older Spreadsheet Orders can't both run on the same assistant.

4. Add the order fields (delivery address, phone) ​

On the Orders card, find Order fields β€” "Per-order fields the agent should collect (e.g. delivery address, phone number). These apply to the whole order, not individual items."

Click + Add field for each one you need:

  • Phone number β€” type Text, mark it Required
  • Delivery address β€” type Text, Required for delivery orders
  • Pickup or delivery? β€” type Select (dropdown), options Pickup, Delivery

The assistant will make sure it has these before it finishes an order.

5. Add the per-item fields (size, toppings) ​

Just below, find Custom item fields β€” "Extra fields added to each item above. The agent will collect these per item (e.g. size, color, toppings)." These attach to each dish in the order, so a two-pizza order can have different toppings on each.

Add a few:

  • Size β€” type Select (dropdown), options Small, Medium, Large
  • Toppings / extras β€” type Text
  • Notes β€” type Text (e.g. "no onions", "well done")

Click Save Config when you're done.

Give the assistant the rules

Open your assistant's instructions and spell out how you want orders taken β€” for example: "Always confirm the full order and total before placing it. Ask pickup or delivery; if delivery, get the address. Read prices from the menu β€” never guess. Minimum order 300." The assistant reads the menu and knows the fields, but your house rules live here.

Prices come from the menu you loaded

When the assistant places an order, it reads each item's price from the menu you loaded in Step 2 β€” it isn't looked up from a master price list behind the scenes. So keep your Product Spreadsheet prices accurate and current, and tell the assistant in its instructions to always take the price from the menu. A clean menu is what keeps totals correct.

6. Connect a channel ​

Open Channels and connect this assistant to at least one place customers can order from β€” the website widget, WhatsApp, Instagram, or Telegram. Order-taking works the same on all of them; you don't set it up per channel.

7. (Optional) Take payment at checkout ​

If you want to collect payment when the order is placed, connect your Stripe account on the Orders card and switch on Requires payment via Stripe. New orders then move to Awaiting Payment with a payment link, and flip to paid once the customer pays.

Try it ​

  1. Open your assistant's test chat (or any connected channel) and order like a real customer: "Hi! Can I get two large margheritas with extra basil, and a small hawaiian β€” delivery to 12 Oak Street."
  2. Watch the assistant look up the dishes, quote the prices from your menu, collect the size and toppings on each pizza, and ask for your phone number since it's a delivery.
  3. Let it confirm the order and the total, then place it.
  4. Open the Orders page in the sidebar β€” app.mychatbot.app/orders β€” and watch the order appear with its order #, the items, quantities, toppings, delivery address and total.
  5. Click it to see the full breakdown. Try asking the assistant to add a dish or cancel the order β€” the Orders list updates to match.

If the order lands with the right items, extras and total, your order-taker is live.

Keep an eye on your message balance

Every reply your assistant sends β€” order turns included β€” draws from your Sales plan's shared sales-message balance, the same bucket used across all your channels. A busy Friday night can burn through it fast. If that balance hits zero, a background job switches all your assistants off across every channel, and they don't turn back on by themselves until you top up or your plan renews. So if the bot goes quiet mid-rush, check your balance on the Analytics page first.

Level it up ​

  • Sell everywhere at once. The same assistant, menu and order setup can run on WhatsApp, Instagram, Telegram and your website widget together β€” connect them all from Channels and every channel takes orders into the same list.

  • Confirm and follow up. Orders don't send reminders on their own. Use Follow-ups to message customers when the food's on its way, ask how it was, or win back someone who dropped off mid-order.

  • Route orders like leads. Every order links back to the client and the chat it came from, so you can label and pipeline order-takers like any other customer β€” see Leads & pipelines.

  • Add voice. Connect the assistant to phone calls and customers can order by talking to it β€” the same order tools work on a live call. Voice minutes draw from the same sales-message balance.

A couple of honest limits

Native orders don't track stock or "sold out" β€” the assistant will happily take an order for a dish even if the kitchen's out, so mark unavailable items in your menu (or its description) when you need to. And there's no automatic push to a kitchen-display or POS out of the box; if you run one, you can bridge orders to it with a CRM like KeyCRM. Everything else β€” items, extras, totals, delivery details β€” is fully native.

See also ​