Как выглядит сценарий заявки в Telegram
Рабочий Telegram-бот для заявок не просто пересылает сообщение менеджеру. Он проводит клиента по понятному сценарию, сохраняет обращение, передаёт его ответственному сотруднику и контролирует дальнейшую обработку.
Типовой путь выглядит так:
- Пользователь переходит в бота с сайта, из рекламы, Telegram-канала, рассылки или по QR-коду.
- Бот определяет источник и предлагает выбрать тип обращения.
- Клиент отвечает на несколько вопросов и при необходимости прикладывает файлы.
- Система проверяет данные и показывает итоговую карточку перед отправкой.
- Заявка сохраняется в собственной базе и получает номер.
- Менеджер получает уведомление, а CRM — контакт, сделку и необходимые поля.
- Клиент видит подтверждение и ориентировочный срок ответа.
- Изменения статуса возвращаются в Telegram, если это предусмотрено процессом.
Такая последовательность превращает диалог в контролируемый бизнес-процесс. Руководитель может увидеть, сколько обращений поступило, кто их обрабатывает и на каком этапе возникают задержки.
Откуда пользователь запускает бота
Для каждого источника можно создать отдельную ссылку: для сайта, рекламной кампании, офлайн-точки или партнёра. Telegram поддерживает deep links с параметром start, поэтому бот способен определить источник перехода и записать его в заявку.
Параметр запуска ограничен 64 base64url-символами (Telegram Bot API, проверено 30 сентября 2026 года). Передавать через него полную рекламную атрибуцию не стоит: практичнее использовать короткий идентификатор, а подробные данные хранить на своей стороне.
Если в компании принимают разные виды обращений, сценарий лучше разделить на ветки. Например: «Рассчитать проект», «Заказать обслуживание», «Получить консультацию» и «Сообщить о проблеме». У каждой ветки будут свои вопросы, правила распределения и срок реакции.
Когда заявка считается созданной
Это решение принимают до разработки. Есть два распространённых варианта:
- После подтверждения анкеты. В CRM попадают только завершённые обращения, но бизнес не видит пользователей, которые бросили сценарий.
- После первого значимого действия. Бот создаёт черновик, сохраняет ответы по мере заполнения и переводит его в статус «Получена» после подтверждения.
Второй подход полезен для длинных или дорогих заявок. Если пользователь остановился, можно измерить проблемный шаг или отправить сервисное уведомление о незавершённом обращении. При этом заранее нужно определить срок хранения черновика. Если напоминание содержит рекламные или маркетинговые элементы, для его отправки требуется предварительное согласие адресата (ст. 18 Федерального закона № 38-ФЗ «О рекламе»).
Клиенту следует разрешить вернуться назад, изменить ответ или отменить заполнение. После отправки бот сообщает номер заявки, что произойдёт дальше и когда ожидать ответ. Фраза «Мы скоро свяжемся» менее полезна, чем конкретный регламент: например, «Менеджер ответит в рабочее время в течение двух часов».
Какие данные собирать
Собирать нужно не максимум информации, а минимум, достаточный для первого решения менеджера. Чем длиннее анкета, тем больше пользователей остановятся до отправки.
| Данные | Когда нужны | Как собирать |
|---|---|---|
| Тип услуги | Почти всегда | Кнопки с основными вариантами |
| Имя | Для персонального контакта | Короткий текст |
| Телефон | Если менеджер должен позвонить | Отправка контакта или ручной ввод |
| Описание | Для первичной оценки задачи | Свободный текст с ограничением длины |
| Срок | Если влияет на приоритет | Дата или диапазон |
| Бюджет | Если влияет на маршрут и формат предложения | Диапазоны, а не обязательная точная сумма |
| Город или адрес | Для локальных и выездных услуг | Выбор города или текст |
| Файл | Для оценки документа, объекта или технического задания | Вложение |
Telegram не передаёт боту номер телефона автоматически. Получить его можно, если пользователь явно нажмёт кнопку отправки контакта в личном чате либо введёт номер самостоятельно. Имя профиля и username не заменяют проверенный контакт: username может отсутствовать или измениться.
Если бот собирает персональные данные, пользователю должна быть доступна политика обработки. Состав данных, основание обработки, локализацию, сроки хранения и передачу внешним сервисам нужно определить с учётом конкретного процесса и применимого законодательства. Техническая кнопка согласия сама по себе не заменяет юридическую проверку.
Валидация полей: как не раздражать пользователя
Проверка данных снижает число неполных заявок, но не должна превращать диалог в экзамен. Для бота обычно нужны три уровня валидации:
- Формат. Проверка структуры телефона, email, даты или числового значения.
- Бизнес-правило. Допустимый город, доступная услуга, минимальный объём заказа или рабочая дата.
- Логическая согласованность. Например, дата завершения не может быть раньше даты начала.
Регулярное выражение показывает, что номер или email похожи на корректные, но не подтверждает их принадлежность клиенту. Для заявок с высокой стоимостью ошибки можно использовать одноразовый код или обратное подтверждение.
Перед отправкой бот показывает сводку с кнопками «Подтвердить» и «Изменить». На стороне backend дополнительно проверяются длина текста, MIME-тип и размер вложения. Однако MIME-тип и расширение файла контролируются отправителем и сами по себе не подтверждают фактический формат или безопасность вложения. Для надёжной проверки следует анализировать сигнатуру файла (magic bytes), при необходимости выполнять антивирусную проверку и хранить вложения в изолированной среде. Повторное нажатие кнопки не должно создавать новую сделку: для этого используют технический ключ идемпотентности и дедупликацию по бизнес-признакам.
Как уведомить менеджера и не потерять обращение
Уведомление сообщает о новой заявке, но не заменяет систему учёта. Сообщение в рабочей группе можно пропустить, удалить или прочитать без дальнейшего действия. Поэтому оригинал обращения должен храниться в базе заявок или CRM вместе со статусом и историей обработки.
Карточка для менеджера обычно содержит:
- номер и время обращения;
- источник перехода;
- имя и контакт клиента;
- краткое описание задачи;
- результат автоматической квалификации;
- ссылку на карточку в CRM;
- кнопки «Взять в работу», «Открыть» и «Спам».
Отправлять уведомления можно в личный чат, рабочую группу или отдельные группы подразделений. Способ зависит от числа менеджеров и правил распределения. При небольшом потоке сотрудник нажимает «Взять в работу». В более сложном процессе ответственный назначается автоматически по услуге, региону, графику или текущей нагрузке.
Распределение и эскалация
Для каждого типа заявки задаётся допустимое время реакции. Если никто не принял обращение, система повторно уведомляет группу, передаёт заявку следующему сотруднику или сообщает руководителю. Это полезнее одиночного сообщения без контроля результата.
Отдельно нужен резервный канал для технических ошибок. Например, если очередь не может передать заявки в CRM, ответственному приходит служебное уведомление с количеством необработанных операций — без токенов и лишних персональных данных.
Интеграция с CRM и статусы заявки
Telegram-бот можно связать с amoCRM и другими системами через API. До разработки необходимо определить не сам факт интеграции, а правила обмена:
- создаётся контакт, сделка или запись в «Неразобранном»;
- как найти существующего клиента и не создать дубль;
- какая воронка и этап используются;
- кто назначается ответственным;
- в какие поля передаются источник, услуга, бюджет и срок;
- где хранится Telegram chat_id;
- прикрепляется ли файл или передаётся защищённая ссылка;
- какая система управляет статусом.
amoCRM API позволяет работать с контактами, сделками, пользовательскими полями, связями, файлами и вебхуками. Интеграция использует OAuth 2.0, поэтому токены нужно своевременно обновлять и безопасно сохранять. Их нельзя размещать в коде или выводить в технические логи.
Бот не должен считать успешную отправку HTTP-запроса гарантией сохранения заявки. Надёжная последовательность другая: сначала обращение фиксируется в собственной базе, затем задача передачи попадает в очередь. Если CRM временно недоступна, система повторяет запрос с контролируемыми интервалами и сохраняет результат каждой попытки.
Единый источник статуса
Минимальная модель может включать статусы «Черновик», «Получена», «На квалификации», «Взята в работу», «Требуется уточнение», «Предложение отправлено», «Выполнена», «Закрыта», «Спам» и «Дубль».
Одна система должна быть источником истины. Для большинства отделов продаж это CRM или собственная система заявок. Бот отображает актуальное состояние и передаёт команды, но не ведёт параллельную независимую шкалу статусов.
Например, менеджер переводит сделку в этап «Требуется уточнение». Вебхук CRM инициирует попытку отправить клиенту сообщение с вопросом или кнопкой возврата в диалог. Сообщение доставляется, если пользователь ранее начал диалог с ботом и не заблокировал его; в случае ошибки доставки система фиксирует сбой и уведомляет ответственного. Для защиты от циклов каждому изменению присваивается источник, а повторная обработка одного события блокируется. В amoCRM доступность WebHooks через API зависит от тарифа: эта возможность предусмотрена на расширенном и профессиональном тарифах (страница тарифов amoCRM, проверено 30 сентября 2026 года). Также необходимо проверить права и настройки конкретной интеграции.
Подробнее о подходе к интеграциям и другим направлениям можно узнать на странице разработки и автоматизации digital-продуктов.
Можно ли принимать файлы
Да, Telegram-бот может получать документы, фотографии, видео и другие вложения. Но фраза «принимаем любые файлы» создаёт ненужные риски. До запуска определяют разрешённые форматы, максимальный размер, срок хранения и круг сотрудников с доступом.
По документации Telegram Bot API (проверено 30 сентября 2026 года) через стандартный облачный API бот может скачать полученный файл размером до 20 МБ, а отправить — до 50 МБ. Локальный Bot API (документация Local Bot API Server) меняет ограничения и позволяет загружать файлы до 2 000 МБ, но требует отдельной инфраструктуры и всё равно нуждается в соединении с Telegram. Поскольку лимиты могут меняться, перед реализацией их следует проверить повторно.
Практическая схема работы с вложением:
- Бот принимает метаданные и проверяет тип и размер.
- Backend загружает файл во внешнее хранилище.
- Файл получает внутренний идентификатор и связывается с заявкой.
- При необходимости запускается проверка содержимого.
- В CRM передаётся файл либо ограниченная по доступу ссылка.
- После установленного срока вложение удаляется или архивируется.
Если клиентам регулярно нужно отправлять большие документы или серии фотографий, удобнее использовать Telegram Mini App с прямой загрузкой в собственное хранилище.
AI-квалификация заявок
AI полезен там, где клиент описывает задачу своими словами. Модель может определить категорию, извлечь бюджет и срок, составить резюме, предложить уточняющий вопрос и выбрать отдел для передачи.
Например, клиент пишет: «Нужен бот, который будет принимать заявки от монтажников, распределять их по районам и отправлять статусы заказчикам. Желательно запустить в следующем месяце».
Для менеджера система может подготовить структурированный результат:
{
"category": "разработка Telegram-бота",
"urgency": "medium",
"budget_range": "unknown",
"missing_fields": ["число менеджеров", "используемая CRM"],
"confidence": 0.82,
"summary": "Бот для распределения заявок монтажников и уведомления заказчиков"
}
Структурированный вывод по заданной JSON-схеме упрощает интеграцию, но не гарантирует правильность содержания. При низкой уверенности, нестандартном запросе, жалобе или значимом коммерческом решении заявку должен проверять сотрудник. AI не следует автоматически отклонять потенциального клиента только на основании вероятностной оценки.
Перед передачей текста внешней модели определяют, какие персональные и коммерческие данные допустимо отправлять, можно ли их обезличить и каковы условия хранения у провайдера.
В одном из проектов WebSolux AI-система анализировала сообщения в тематических BMW-чатах, определяла коммерческое намерение и передавала потенциальных клиентов менеджерам и в amoCRM. Для входящего бота применяется похожий принцип: AI преобразует свободный текст в структурированную карточку, а CRM остаётся рабочей системой команды.
Другие примеры систем автоматизации и Telegram-решений показывают работу с файлами, статусами, AI и собственными CRM-интерфейсами.
Защита от спама, логи и контроль ошибок
Полностью исключить спам нельзя, но можно снизить количество автоматических и повторных обращений. Обычно комбинируют несколько мер:
- задержку между отправками;
- лимит заявок на пользователя и период;
- поиск одинаковых текстов и технических дублей;
- подтверждение телефона для дорогих заявок;
- blacklist и ручную кнопку «Спам» с указанием причины;
- проверку подозрительных ссылок и файлов;
- CAPTCHA или Mini App при аномальной активности;
- лимиты на обращения к AI и CRM.
Логи разделяют по назначению. Бизнес-журнал отвечает на вопросы, кто создал заявку, кто её принял и как менялся статус. Технические логи фиксируют входящий update, код ответа интеграции, число повторов и ошибки очереди. Метрики показывают количество запусков, завершённых анкет, брошенных сценариев, время до принятия и долю ошибок.
Токены, номера карт, полные тексты документов и другие чувствительные сведения не должны попадать в журналы без необходимости. Для диагностики обычно достаточно идентификатора заявки, типа операции и обезличенного описания ошибки.
Архитектура рабочего Telegram-бота
Сайт / реклама / QR ↓ Telegram-бот ↓ Webhook или polling ↓ Валидация и состояние диалога ↓ База заявок ↓ Очередь интеграций ↙ ↓ ↘ CRM AI Уведомления ↓ Статусы и аналитика
Telegram поддерживает два взаимоисключающих способа получения обновлений: long polling через getUpdates и webhook. Polling удобен для разработки и небольших систем. Webhook чаще используют в production, где нужен быстрый приём событий и масштабирование.
Webhook должен проверить секретный заголовок, сохранить update и быстро вернуть успешный ответ. Обращения к CRM, AI и файловому хранилищу лучше выполнять асинхронно. Если сервер отвечает ошибкой, Telegram может повторить доставку, поэтому update_id или собственный ключ идемпотентности защищает от повторного создания заявки.
Неполученные обновления Telegram хранит не более 24 часов (документация Telegram Bot API). Собственная база и мониторинг поэтому нужны не только для аналитики: они позволяют восстановить обработку после временного сбоя внешнего сервиса.
Если сервер не может обратиться к Telegram, проверяют DNS, TLS и доступ к api.telegram.org. В зависимости от используемой библиотеки настраивают HTTP/SOCKS-прокси либо выносят Telegram-шлюз на доступный сервер, связывая его с основной системой через внутренний API или очередь. При использовании стандартного облачного Bot API для webhook требуется публичный HTTPS-адрес, доступный серверам Telegram. Local Bot API Server допускает другие варианты, включая HTTP, локальный IP и произвольный порт, но требует отдельной инфраструктуры.
Как запустить бота без потери заявок
- Утвердить путь пользователя от источника до закрытия обращения.
- Определить минимальный набор обязательных данных.
- Добавить возврат, изменение ответа и отмену сценария.
- Зафиксировать момент создания заявки и правила хранения черновиков.
- Подготовить политику обработки данных и проверить юридические основания.
- Настроить дедупликацию обновлений и повторных отправок.
- Определить CRM-сущности, воронку, ответственных и источник статуса.
- Добавить очередь повторов при недоступности внешних API.
- Проверить ограничения, хранение и удаление файлов.
- Настроить эскалацию, если менеджер не принимает заявку вовремя.
- Добавить мониторинг очередей, интеграций и ошибок.
- Протестировать недоступность CRM, Telegram, AI и файлового хранилища.
- Назначить владельца процесса после запуска.
Тестировать нужно не только успешный сценарий. Полезно намеренно отправить форму дважды, отключить тестовую CRM, загрузить неподдерживаемый файл и проверить повторную доставку webhook. Именно такие ситуации показывают, готова ли система к реальной эксплуатации.
Когда нужен индивидуальный бот
Конструктор или простая автоматизация подходят, если у бизнеса одна короткая анкета, небольшой поток обращений и таблица как основное место хранения. Такое решение можно использовать для проверки сценария.
Индивидуальная разработка оправдана, когда нужны несколько веток, CRM и двусторонние статусы, распределение между сотрудниками, работа с файлами, AI-квалификация, собственная база, нестандартные интеграции или Telegram-шлюз через proxy.
Выбирать следует не бота с определённым количеством кнопок, а схему обработки: какие данные получает бизнес, где они сохраняются, кто отвечает за обращение и что произойдёт при сбое одного из сервисов.
Автоматизировать заявки
WebSolux спроектирует сценарий, свяжет Telegram с CRM и настроит обработку так, чтобы обращения не оставались только сообщениями в рабочем чате. Обсудить разработку и автоматизацию.
Частые вопросы
Можно ли связать Telegram-бота с amoCRM?
Да. Через API бот может создавать или обновлять контакты и сделки, записывать источник, добавлять пользовательские поля, связывать сущности и передавать файлы. До разработки определяют правила поиска дублей, назначения ответственного и синхронизации статусов. Интеграция также должна обновлять OAuth-токены и повторять запросы при временных ошибках. Если для обратной синхронизации используются WebHooks amoCRM, нужно проверить тариф, права и настройки интеграции (подробнее в разделе «Интеграция с CRM и статусы заявки» выше).
Как защититься от спама?
Используют лимиты по пользователю, cooldown между отправками, дедупликацию, проверку повторяющегося текста, подтверждение телефона и ручную маркировку. При аномальной активности можно подключить CAPTCHA через Mini App. Полной защиты не существует, поэтому правила дополняют мониторингом и возможностью блокировки.
Можно ли принимать файлы?
Да. Бот принимает документы, фотографии, видео и другие вложения. Ограничения по размеру файлов и работа с крупными вложениями описаны в разделе «Можно ли принимать файлы» выше.
Что делать, если Telegram недоступен с сервера?
Проверить DNS, TLS и исходящий доступ к Bot API. Если проблема связана с сетевой доступностью, можно настроить поддерживаемый библиотекой HTTP/SOCKS-прокси или разместить отдельный Telegram-шлюз на доступном сервере. При использовании стандартного облачного Bot API для webhook нужен публичный HTTPS-адрес. Local Bot API Server допускает HTTP, локальный IP и произвольный порт, но сам по себе не отменяет необходимость соединения с инфраструктурой Telegram.
Нужна ли собственная база, если заявки уже передаются в CRM?
Желательна хотя бы промежуточная фиксация заявки и состояния интеграции. Если CRM временно не отвечает, бот сможет подтвердить приём обращения и повторить передачу позднее. Без этого надёжность всего сценария будет зависеть от доступности внешней системы.