Задача
Доставка суши Kaiten принимала заказы по телефону и в личных сообщениях. В пятничный вечер два оператора физически не успевали: линия занята, сообщения висят по двадцать минут, часть гостей уходила к конкурентам, не дождавшись ответа. Приложение заказывать не стали осознанно — аудитория и так живёт в Telegram, а бюджет был ограничен.
Задача формулировалась просто: чтобы заказ оформлялся без человека, быстрее минуты, а операторы занимались только нестандартными ситуациями.
Решение
Я построил бота на aiogram 3 с конечными автоматами состояний вместо «лестницы if-ов»: сценарий заказа читается как схема и легко расширяется. Гость собирает корзину прямо в чате: меню с фото и составом, модификаторы вроде «без васаби», пересчёт суммы на лету. Оплата — картой в Telegram или наличными курьеру; после оплаты бот показывает статус: принят, готовится, у курьера.
Под капотом — PostgreSQL с честной моделью заказа и журналом смены статусов. Кухня получает заказы на планшет в отдельный канал с автоподтверждением, а если заказ не взят в работу за три минуты — бот эскалирует его оператору. Повторный заказ — главная механика удержания: бот помнит прошлые составы и собирает «как в прошлый раз» в два касания.
Отдельно проработаны края сценариев: смена адреса после оплаты, стоп-лист позиций, закрытие кухни — бот не заводит гостя в тупик, а честно предлагает варианты или зовёт человека.
Результат
Через два месяца 63% заказов проходили через бота без участия операторов, с линии сняли двух человек — их перевели на контроль качества и работу с отзывами. Средний чек вырос на 14%: рекомендации «к этому сету обычно берут» и удобный повторный заказ делают то, что оператору по телефону делать неловко.
Это концептуальный кейс: бренд вымышлен, метрики иллюстративны. Демо — работающий бот-эмулятор с меню, корзиной и статусами на живом бэкенде aiogram + PostgreSQL, открывается кнопкой выше.