Home · Chatbot for restaurant and food delivery

Solutions for restaurants and cafes

Chatbot for restaurant and food delivery

The bot accepts orders for delivery and table reservations in Telegram, MAX, VKontakte and chat on the website: it shows a menu with prices, collects the order contents, address and phone number and sends a notification to the administrator - even during peak times when the room is busy.

The template works on the Free planTelegram, MAX, VKontakte and websiteCart — in the shop in your bot, from Basic

What does a bot do for a restaurant?

Menu in chat, order by lead

The bot sends a menu with prices, the guest writes the order in his own words, chooses delivery or pickup, leaves his address and phone number. The bot does not count the amount - the administrator calls it.

Book a table without calling

The bot asks for the date, time, number of guests and phone number with a format check. When the guest first leaves their phone number, the owner receives a letter about the lead. There is no diagram of the hall: the table is confirmed by the administrator in “Conversations”.

The order is not lost during peak times

The “Notify operator” action sends the push command - “New order from the menu” or its own text with the contents of the order. The administrator responds to the guest from “Conversations” in the same messenger, taking typical phrases from “Quick Replies”.

“Kitchen closed” by the hour

The Condition block checks the hour and day of the week. Outside the kitchen hours, the bot honestly writes that it will accept an order for tomorrow, and puts the tag “pre-order” - in the morning such orders are filtered in “Contacts”. Reservations can be accepted 24 hours a day.

Hours, address, parking

Template "Autoresponder FAQ" responds to topic buttons and to the words “schedule”, “until when”, “how to get there”. The guest gives a question not from the list to the person using the “Call Person” button. From Basic - AI agent based on a knowledge base of up to 15,000 characters.

Review and reorder

Through the “Pause” after the order, the bot asks for a rating from 1 to 5 and immediately gives a rating of 1-3 to the administrator. From Basic - broadcasts about the new menu to those who clicked “Yes” in the template “Consent to mailing list”.

How to launch a restaurant bot

  1. 1

    Take a template

    Click “Use the “Menu and Order” template”: after registration, the script will be included in the bot and will open in the editor. Free plan, no card required.

  2. 2

    Enter menu

    In the “Steps” mode, enter dishes and prices in the first message: the template section buttons lead to one question about the order. Separate the address and telephone number in two steps; for the telephone number, check “Telephone”.

  3. 3

    Connect channels

    In “Channels”, connect Telegram using the token from @BotFather, if desired - MAX and VKontakte. The chat on the delivery website is placed in the “Widget” section. The script is the same for all channels.

  4. 4

    Check it out and provide a link

    Check the beginning of the script and “Condition” in “Check script”: there are no buttons in the test chat, so complete the order in the messenger. Make a QR for the hostess table and stand in “QR campaigns”.

Ready-made food ordering script

Menu with section buttons, order contents in text, delivery or pickup, address and phone number - and notification to the administrator. Table reservation is a neighboring script from the “Reservation” template, which is launched with the word “reservation”.

Menu and order Menu sections by buttons, items, delivery or pickup — a request to the kitchen. Open →

Delivery order: what's in the template and what to add

The “Menu and Order” template is steps in a row, without branches: all section buttons lead to the same question about ordering; there are no lists of dishes by section. The template buttons do not have their own output, and in the “Steps” the choice “Where it leads” will not appear, so the dishes and prices are written directly in the message with the menu, and the photo is provided with a link to the site.

StepWhat's in the templateWhat to change
Menu“Message” with buttons “Pizza”, “Rolls”, “Drinks”Enter dishes and prices by section and remove “or write a dish”: while the buttons are on the screen, the bot waits for a click, and the written text will again show the menu. Three section buttons can be replaced with one - “Collect order” - and a button “Opens a link” to a menu with a photo
Order contents“Data collection”: “What to add to the order? Write the items and quantity"Fill in “To variable”: order - the composition will go into the notification, into the name of the deal and into the “Collected by bot” block in “Conversations”
Method“Message” with “Delivery” and “Pickup” buttonsBoth buttons take you to the next step. Post the address and phone number - when asking about the address, tell me: “for pickup, write “pickup””
Address and telephone“Data collection” with one question, without verificationTwo steps: address and phone number with the “Phone” check - the number will be recorded in the guest’s card, and the owner will receive a letter about the lead
Application“Action”: tag “order” and “Notify operator” with the text “New order from menu”The text can be replaced with “New order: {{order}}”. Add a “Transaction in CRM” with the name “Order - {{order}}” - the order will appear on the “CRM” board in the “New” column
Reply to guest“Message” about acceptance of the leadSay when the administrator will confirm the order: “within 15 minutes”, “by 7 pm”

This flow has no payment step: the administrator names the order total, while the “Payment” block sends a link for the amount set in the block itself. The “Opens link” button may lead to the payment page of your website, but the bot will not know about the payment - the money is taken by the courier, the cashier, or your website. The administrator confirms the order in “Conversations”: as soon as he answers, the bot in this conversation becomes silent, the “Return to bot” button turns it on again, “Close” ends the conversation.

  • The template has no cart: the bot does not count the total and does not check the order against the stop list — the administrator does that on confirmation. A cart with totals and stock is in the shop in your bot.
  • The bot does not send photos of dishes to Telegram, MAX and VKontakte - only text and buttons. A menu with a photo is provided with a button link to the site.
  • Push about a new conversation and about an order where a person is needed is sent to all bot participants who have included it in “Account → Notifications”. On iPhone - only in the app.chbt.io account added to the Home screen.
  • In the test chat “Transaction in CRM”, “HTTP request”, push and letters are not executed - check them on a real order.

Reservations, reminders and night orders

Template "Reservation" short: “Write the date, time and number of guests” → one-line answer (“Friday 19:00, two”) → phone number with verification → “Reservation accepted. We will confirm with a message." There is no tag or notification in it - add an “Action” with the tag “booking” and “Notify operator”. Separate fields are needed - break the question into three “Data Collections”: date and time, number of guests with the “Number” check, wishes (“by the window, child seat”).

Delivery and reservation in one bot. Keep the reservation as a separate script: add the “Reservation” template through “Scripts” → “All templates and AI” → “Ready template” and in its triggers replace “Command (/start)” with “Keywords”: “reservation”, “table”, “book”. Two scripts with /start do not work together: the one created earlier, that is, “Menu and order,” will respond. Keywords work in the middle of another flow, so in the delivery menu the line “Table - write “reservation”” will suffice. The “FAQ autoresponder” in the same bot also answers according to the words “schedule”, “how to get there”.

Reminder. The bot itself does not know that “Friday” has come. The working method is a date tag: when confirming, the guest is given a tag like “reservation-25-09” in the contact card (the owner and admin of the bot can edit contacts), and on the day of the reservation, a mailing with “Delayed launch” is sent to this tag at 12:00: “We are waiting for you today. If plans have changed, write “cancel.” The word “cancel” is caught by the script with “Key Words” and transfers the guest to the “Operator” - the table is cleared in advance. For a reservation for tomorrow, a “Pause” for 1 day after confirmation is suitable, but the countdown starts from the moment of the reservation, and not from the time of the visit.

"The kitchen is closed." The first step of the “Menu and Order” flow is to put a “Condition” with two rules in one branch: “Time” ≥ 11 and “Time” < 22. The “yes” branch is the usual order acceptance, “Otherwise” - “The kitchen is open from 11 to 22. We will accept the order for tomorrow - write what time to deliver” and the tag “pre-order” without the promise “within 10 minutes”. The condition only sees the whole hour: “until 22:30” cannot be specified, round up. More details - conditions in the flow.

  • The hour and day of the week “Condition” is taken from the server clock CHBT, the time zone is not selected - which branch is triggered now can be seen in “Check script”.
  • The day of the week is specified by a number: 1 - Monday, 6 - Saturday, 0 - Sunday.
  • “Pause” - ready-made 1 minute, 5 minutes, 30 minutes, 1 hour, 1 day or your own time in seconds. The continuation comes even if the office is closed.
  • Newsletter - from Basic, only text with the substitution {{name}}, without pictures and buttons, and only in Telegram, MAX and VKontakte to those who wrote to the bot themselves: it does not go to chat guests on the site. The guest's response will appear in "Conversations", but the text of the newsletter will not be in the story.

Channels, catalog menu and launch order

One flow responds in all connected channels, orders and reservations arrive in the shared “Conversations”, and deals go to the “CRM” board. You don’t need to build a separate bot for each platform, but each channel has its own rules:

ChannelHow the guest arrivesWhat to consider
TelegramA t.me/your_bot link, a QR code on the table and counter from “QR campaigns” with a tag, for example ?start=zalThe tag is caught by the “Deeplink” trigger: add “Add a tag” “dine-in-guest” after it, so you can later message these guests about delivery. Buttons are one per row
MAXA link to the bot in MAXThe same flow. Buttons are one per row, as in Telegram. The MAX bot receives the tag from the link, and the same “Deeplink” trigger catches it, but you need to create the tagged link and QR code for MAX yourself: “QR campaigns” generates them only for Telegram
VKCommunity private messagesUp to 10 buttons, two per row, labels up to 40 characters; extra buttons are dropped. Tags from the link are not read
Website chatOne line of code on the delivery website“Proactive messages”: on the menu page, “Need help with your order?” after N seconds; when leaving the site, “Place an order for tomorrow?” (desktop only). The guest can attach a photo, for example of a receipt, up to 10 MB

Menu as a catalog. If the delivery service has a website with a product feed (YML or CSV at a permanent URL), it is connected in “Marketplaces”, in the “Online store” block. From Basic, the AI sales assistant answers “rolls under ₽700” with dish cards showing price and availability from the feed, with photos in Telegram and website chat. It ranks in-stock dishes higher and shows stop-listed items marked “out of stock”. Caveats: a new dish arrives as a draft and is published manually, one at a time; the feed is re-read automatically every 6 hours, and the “Update now” button refreshes the stop list during the day; it searches by words in the name and category and won’t understand “something spicy”; it does not take orders — the card has a single “View product” button, and the server strips delivery time statements from the reply.

Followers from social networks where the bot is not available are brought in with a link in the profile header and a QR code to the Telegram bot; how not to lose them along the way is covered in the article on moving followers to Telegram and MAX.

Launch order that does not overload the administrator:

  1. Day 1 — the “Menu and Order” template, Telegram, testing it yourself.
  2. Week 1 — a reservation flow triggered by the word “reservation” and a “Condition” based on kitchen hours, a QR code at the host stand.
  3. Week 2 — answers about hours, address and parking, MAX or VK as a second channel.
  4. Week 3 — broadcast consent and a review request 2 hours after the order.
  5. Month 2 — the first broadcast by the “broadcast” tag: for example, on Tuesday at 11:00, when people decide what to order for lunch.

What a restaurant bot doesn't do

The limits are clear before you launch.

  • The template has no cart and does not calculate the total: the order arrives as a request with the items as text, and the administrator names the total and delivery time. A cart, delivery and payment are available in the shop in your bot, from the Basic plan.
  • Doesn’t accept card payment in chat: the courier or cashier takes the money, but a link button leads to the payment page of your website—the bot won’t know about the payment.
  • Does not reserve tables in the system: there are no diagrams of the hall and no checks for available seats; reservations must be made to the administrator. It doesn’t remind you about the reservation on the right day.
  • There is no ready connection with iiko, R-Keeper and the cash register: you can transfer the order to the accounting system using the “HTTP request” action - through Make, n8n or your developer.
  • He doesn’t know where the courier is and doesn’t inform the guest that the order has left: the administrator from Conversations writes about this.
  • There are no points, cashback or referral program: “every fifth pizza is free” is considered by your cash register, the bot can only remind you about the promotion by text.

Available plans

The “Menu and Order”, “Reservation”, “Review Collecting” and “FAQ Autoresponder” templates work on any plan. On Free - 1 bot and 30 different interlocutors per month across all channels together: it may be enough for a reservation in a small cafe, but not for delivery. Basic — 650 ₽ per month per bot: no conversation limit, “Canvas”, operators, broadcasts, AI agent with 150 AI credits, chat on the website without signature CHBT. Business - 1290 ₽: the same and 500 credits, there is a trial day without a card. Comparison - on the page Plans page.

Free0 ₽
Templates and all channels, 30 conversations per month
Basic650 ₽/month
No limit on conversations, broadcasts and AI
Business1,290 ₽/month
As Basic, 500 AI Credits

Compare Plans in full →

FAQ

Will the bot calculate the order amount and accept payment?

Not in the template: the order is sent as a request with the items as text, and the administrator names the total on confirmation. The “Payment” block sends a link for the amount set in the block itself, so for a menu order the courier or the cashier takes the money. A cart with the total, delivery and payment to your account via YooKassa or CloudPayments is in the shop in your bot, from the Basic plan.

Can I show photos of dishes in the bot?

In Telegram, MAX and VKontakte, the script sends only text and buttons - place the “Menu with Photo” link button on the site page. In a chat on the website, you can attach a picture to a message using the “Attachment” field. AI seller cards (from Basic) come with a photo in Telegram and chat on the website if the menu is connected to a feed with pictures.

Will the bot check if the table is free?

No, there is no diagram of the hall. Reservation - an lead to the administrator with the date, time, number of guests and telephone number; the administrator confirms the table in “Conversations” with one phrase, rather than finding out the details over the phone.

What about orders at night?

The “Condition” block checks the hour according to the server clock CHBT: outside the kitchen hours, the bot writes that the kitchen is closed and accepts a pre-order for tomorrow with the “pre-order” tag. Without such a condition, the bot will silently accept the order at 00:40, and the kitchen will see it only in the morning.

Is the Free plan enough for the cafe?

For a reservation in a small cafe or coffee shop - perhaps: 30 different interlocutors per month across all channels. Delivery can collect them in a week, and then the bot responds to new guests with a phrase about the limit until the next month - this is a common reason for the question “why is the bot silent.” Delivery requires Basic - 650 ₽ per month per bot, without a conversation limit.

How to collect feedback and not get negative on the cards?

After ordering, set a “Pause” for 2 hours (7,200 seconds) and the steps of the “Collecting reviews” template: rating 1–5 in numbers, a couple of words, “Condition”. The bot gives a rating of 1–3 to the “Operator” with a negative tag; in “Otherwise” add a button link to the review on the maps. If the administrator responded to the guest in “Conversations”, click “Return to bot” there - otherwise he, and not the script, will receive the rating.

Is there integration with iiko or R-Keeper?

Not ready. An order can be transferred externally using the “HTTP request” action via Make or n8n: the request includes script variables, so fill in “Into variable” for the order, address and phone steps. Analysis of the order on the side of the accounting system - completion by the integrator.

Orders and reservations - in one window

Take the “Menu and Order” template, enter your menu and kitchen hours and connect Telegram. Free and without a card.

Use the "Menu and Order" template