Коротко. Заявки с сайта в Telegram отправляет бот. Форма передаёт данные на ваш сервер, сервер пересылает их боту, бот пишет в нужный чат. Главное правило — токен бота хранится только на сервере, а не в коде страницы.
Почему Telegram
Почта теряется среди рассылок, а уведомление в Telegram приходит сразу на телефон. Менеджер видит заявку через несколько секунд и может перезвонить, пока клиент ещё у сайта. Для небольшой компании это часто быстрее и надёжнее, чем внедрять CRM.
Три способа
1. Встроенная функция конструктора. Многие конструкторы сайтов умеют отправлять заявки в Telegram из настроек. Быстро и без программиста, но вы зависите от возможностей конструктора.
2. Сервисы-посредники. Сервисы автоматизации принимают данные формы и пересылают их в Telegram, CRM или таблицу. Удобно, но заявки проходят через ещё одну компанию. Проверьте, где она хранит данные: для персональных данных граждан РФ это важно (об этом — в статье о 152-ФЗ на сайте).
3. Свой обработчик на сервере. Форма отправляет данные на сервер сайта, а сервер через Bot API пишет в чат. Больше всего контроля: вы сами решаете, что проверять, где хранить и куда ещё дублировать заявку. Так устроен приём заявок на этом сайте.
Как это устроено технически
- В Telegram создаётся бот через @BotFather — он выдаёт токен.
- Бота добавляют в рабочий чат или группу и узнают идентификатор чата.
- На сервере сайта появляется обработчик формы: он проверяет данные и вызывает метод
sendMessageBot API с текстом заявки. - Токен и идентификатор чата хранятся в настройках сервера.
Токен нельзя хранить в JavaScript страницы. Любой посетитель откроет код, заберёт токен и сможет писать от имени бота или читать то, что ему доступно. Отправка всегда идёт через сервер.
Как не утонуть в спаме
- скрытое поле-ловушка: человек его не видит, а бот заполняет;
- проверка на сервере: обязательные поля, длина, формат контакта;
- ограничение числа отправок с одного адреса за минуту;
- капча — только если остальное не помогает: она мешает и живым людям.
Как не терять заявки
Telegram иногда недоступен, токен могут случайно отозвать, бота могут удалить из чата. Чтобы заявка не пропала:
- дублируйте заявку на почту или в таблицу;
- сохраняйте заявку на сервере до успешной отправки и повторяйте отправку при сбое;
- показывайте посетителю честный результат: «заявка отправлена» только после того, как сервер её принял;
- проверяйте форму тестовой заявкой после каждого изменения сайта.
Не забудьте про персональные данные
Имя и телефон в заявке — персональные данные. Нужны галочка согласия, политика обработки на сайте, а данные должны сначала попадать в хранилище в России. Подробнее — в статье «Согласие на обработку персональных данных на сайте».
Если нужно больше, чем Telegram
Когда заявок становится много, их удобнее вести в CRM: статусы, ответственные, история общения. Сайт можно связать с CRM так, чтобы уведомление в Telegram приходило, а сама заявка сразу создавалась в CRM. Как мы это делаем — на странице интеграций.