Как настроить ИИ-агента для кафе и ресторана: меню, стоп-лист, оплата и уведомления менеджеру. Схемы с таблицами, Telegram-кнопками и платёжными системами.
Чат-бот для доставки еды получает меню из Google-таблицы, показывает стоп-лист, запрашивает адрес через геолокацию в Telegram, принимает оплату через ЮKassa и отправляет уведомление менеджеру в мессенджер. Всё работает в одном чате без переходов на сторонние сайты.
Пятничный вечер, восемь часов. Ресторан завален звонками — люди спешат заказать еду на выходные. Половина звонков вообще не доходит: линии заняты. Вторая половина: люди дождались, но попадают на стандартный допрос. Есть ли доставка в район? Какова стоимость? До какого времени можно заказать? Менеджер отвечает одно и то же сотый раз за смену. Приход в кассу теряется в этом шуме. ИИ-агент берёт это на себя — обрабатывает сотню заказов одновременно, сообщает, какие блюда закончились, уточняет адрес и скидывает ссылку на оплату. Менеджер смотрит в мессенджер и видит готовый заказ: адрес, сумму, контакты.
Меню нужно где-то хранить, откуда агент его достанет. Таблица — хороший выбор. Google-таблица обновляется раз в 1440 минут (то есть раз в день) по умолчанию, и этого хватает для статичного меню. Блюдо кончилось среди дня — вы его помечаете прямо в таблице, и агент вызывает функцию получения данных, видит изменение, сообщает клиенту, что позиция временно недоступна.
Проверьте на своих диалогах.Регистрация без карты, 500 ₽ на тест по промокоду BLOG500
Собрать агентаТаблица содержит столбцы — название блюда, цена, описание, категория (закуски, основное, напитки), статус доступности (1 = в наличии, 0 = нет). Агент берёт эту информацию и вплетает в диалог: показывает, что есть, скрывает недоступное, подсчитывает сумму.
Пример инструкции для функции: Перед началом покажи клиенту меню из таблицы menu, исключив строки, где статус = 0. Если клиент указал напиток, вызови функцию get_menu_item("название блюда") и передай цену в переменную price.
Технически это одна функция — название типа table, аргументы для фильтра. Функция вызывается, таблица отдаёт строки, агент их обрабатывает. Если вы часто обновляете стоп-лист прямо в гугл-таблице, можно уменьшить интервал до 30 минут. Платформа это не рекомендует как норму, но на практике система справляется.
Google-таблицу лучше дублировать локально на случай, если доступ оборвётся. Закачайте Excel-копию в базу знаний агента как вложение на слабый поиск — это подстраховка.
Распространённая ошибка — взять адрес текстом. Человек пишет расплывчато, ошибается в названии улицы, и водитель потом звонит уточнять. Лучше сразу запросить координаты.
В Telegram есть встроенная кнопка запроса геолокации — клиент нажимает, отправляет координаты, и агент сразу видит точный адрес. Этот адрес можно передать в сервис расчёта доставки через вебхук и узнать, доступна ли доставка в этот район.
Сценарий работает так:
{customer_location}.Адрес сохраняется с остальными данными заказа. Менеджер видит точку клиента на карте.
Клиент обязательно спросит: А когда мне привезут? Ответ должен быть конкретный. Время готовки зависит от того, что заказано, и есть ли очередь.
Через расписание агента установите часовой пояс и режим: с 11:00 до 23:00 принимаются заказы, с 23:00 до 11:00 — автоответ: Кухня закрывается. Заказ можно оформить с 11 утра.
В инструкции добавьте логику: Если заказано более 3 блюд, прибавь 10 минут к стандартному времени готовки. Если сейчас пиковое время (после 18:00, до 21:00), ещё плюс 5 минут.
Время доставки вычисляется по расстоянию. Можно интегрировать Яндекс.Карты API или положить в таблицу предзаполненные маршруты. Системная переменная current_datetime_iso позволяет агенту считать точное время прибытия и писать: Доставим к 20:15.
Клиент согласился с заказом и суммой. Теперь нужно получить деньги. Интеграция с ЮKassa отправляет ссылку на оплату прямо в чат.
Когда вы подключаете ЮKassa, создаётся действие типа «ЮKassa». В нём вы указываете сумму, описание платежа (например, Заказ #123, доставка по адресу…) и выбираете, куда отправлять чек: на email или телефон. Система генерирует ссылку и отправляет её клиенту в мессенджер.
Как это выглядит на практике:
payment.Заказ оплачен. Менеджер должен это узнать, не зайдя в кабинет платформы. Стандартная функция Вызов менеджера отправляет уведомление в Telegram на номер, который вы укажете.
Условие простое: Когда платёж прошел успешно, вызови менеджера.
В уведомлении будет:
Менеджер видит готовый заказ и может сразу выписать кухне талон или открыть запись в кассовой системе.
Человек уже заказывал. Во второй раз не хочет вводить адрес с нуля, хочет быстро. Агент помнит предыдущие заказы и может спросить: Повторить последний заказ или добавить что-то?
Платформа сохраняет информацию о клиенте и его историю. Если вы подключили CRM, агент вытягивает профиль: сумму предыдущих покупок, любимые блюда, день рождения. На этой основе может предложить: У вас есть скидка на пиццу.
Промокод при оплате через ЮKassa передаётся отдельным аргументом. Лояльность кодируется в инструкции: Если сумма больше 1500 рублей, предложи код DELIVERY50.
Каждый раз, когда клиент открывает чат, агент сразу начинает разговор. Занятый гудок не слышит, в очередь не встаёт, адрес не повторяет пять раз. Всё быстро: открыл чат, выбрал блюда, отправил адрес кнопкой, ввёл данные карты. За две минуты заказ уже на столе менеджера.
Агент обработает столько диалогов одновременно, сколько позволяет ваш тариф. Если уже делали чат-бота для интернет-магазина, с таблицами и оплатой вы знакомы. Тут механика та же, но специфика доставки добавляет геолокацию и время. Сложнее всего учесть пиковые часы и очередь. Помогает база знаний с расписанием, где прописаны часы работы и лимиты. Остальное вычисляет модель, если её научить видеть контекст: клиент заказал в 18:45 в субботу — пиковое время, прибавляем 15 минут к готовке. Работа с таблицами подробно разобрана в отдельной статье, и оплата в чате тоже описана полностью.
Статья опубликована 15 сентября 2026 года. Информация соответствует версии платформы Савви на дату публикации.
Да, Савви работает с Google-таблицами и обновляет информацию каждые 1440 минут (24 часа). Для частых изменений меню можно настроить обновление, но не чаще чем раз в 30 минут. Таблица подключается как отдельная сущность через действие с функцией table.
Информация о недоступных блюдах хранится в той же таблице, что и меню. Агент вызывает функцию получения данных из таблицы, видит статус каждого блюда и сообщает, какие позиции временно недоступны.
Да, через интеграцию ЮKassa. Агент может отправить ссылку на оплату, клиент переходит по ней и оплачивает внутри браузера. После успешной оплаты система отправляет уведомление менеджеру в Telegram.
В Telegram можно добавить кнопку 'Запрос геолокации', которая отправит координаты и адрес клиента прямо в чат. Агент сохранит их в переменную и рассчитает зону доставки.
Да, это стандартная функция платформы. При успешном платеже система вызывает функцию 'Вызов менеджера', которая отправляет сообщение в Telegram на номер менеджера с деталями заказа.
Да, через расписание агента. Установите часовой пояс и дневное расписание (например, 11:00—23:00). Вне этих часов агент может отправлять автоответ или закрывать приём новых заказов.
Хотите сразу к продукту: Разработка чат-ботов для бизнеса