svalmak.ruСергей Макаров

Как передавать заявки с сайта в Telegram вместе с нужным контекстом

Смысловая схема: Форма → запись → уведомление.
Смысловая схема к статье; порядок действий и условия разобраны ниже.

Надёжная передача заявки начинается с её сохранения в системе учёта. Затем в Telegram отправляется уведомление с номером, сайтом, предметом обращения и ссылкой на запись. Доставку уведомления и работу менеджера нужно контролировать отдельно. Ответ Telegram об успешной отправке ещё не означает, что клиенту ответили.

Сообщение «новая заявка, телефон такой-то» лучше полной тишины. Но дальше менеджер начинает расследование: с какого сайта человек пришёл, какой товар выбрал и что вообще хотел? Значительную часть этих вопросов можно снять ещё при передаче формы.

Согласуйте состав сообщения

Для обычной формы нужны номер обращения, время с часовым поясом, сайт, страница и содержание вопроса. Контакт передавайте в тот рабочий канал, где его действительно разрешено обрабатывать, с доступом для нужных сотрудников.

Для магазина добавьте товар, количество и выбранную комплектацию. В мебели название модели не всегда определяет заказ: важны размеры, отделка и дополнительные элементы. У нас несколько партнёров и много сайтов, поэтому домен и город тоже имеют значение.

Если используете рекламные метки, передавайте сохранённые значения, а не догадку о том, откуда пришёл покупатель. Отсутствующую метку можно честно оставить пустой.

Условный пример содержания уведомления:

Обращение № 1042. Сайт: магазин партнёра, город указан в форме. Страница: карточка шкафа. Выбраны модель и отделка; вопрос покупателя — о комплектации. Контакт и полное содержание доступны в карточке обращения. Статус: новое.

Это пример формата, не реальная клиентская заявка. В общий чат необязательно переносить весь объём данных: часто достаточно краткого контекста и доступа к записи по роли.

Сначала сохраните, потом уведомляйте

Предлагаемый порядок такой: сервер проверяет форму, создаёт запись с уникальным номером и ставит уведомление в очередь. Отдельный обработчик отправляет сообщение и сохраняет результат попытки.

Так временная недоступность Telegram не обязана приводить к потере самого обращения. Для этого очередь тоже должна сохраняться надёжно, а не жить только в памяти процесса. Если интеграция сейчас просто отправляет форму в бот, хранение и повторы придётся добавить отдельно.

Посетителю следует показывать подтверждение после надёжного сохранения заявки. Когда запись не создана, нельзя выводить обычное «спасибо, всё получили». Нужны понятная ошибка и доступный запасной способ связаться.

Ключ бота хранится на сервере. Его нельзя помещать в код страницы, который скачивает браузер. Доступ к группе и системе учёта стоит давать сотрудникам по рабочей необходимости.

После формы заявка сохраняется, затем уведомление ставится в очередь и передаётся в Telegram.
Предлагаемая архитектура интеграции, не утверждение, что все сайты уже подключены так.

Если доставка уведомления временно не работает, заявка должна оставаться в учёте. Этот порядок требует надёжного хранения и отдельного контроля неудачных попыток.

Продумайте повторы и неопределённый ответ

В Telegram Bot API метод отправки текста возвращает сообщение при успехе. При ограничении частоты ответ может содержать число секунд, которое нужно выждать перед повтором. Интеграция должна учитывать такие ответы, а не бесконечно отправлять запросы без пауз.

Отдельный случай — соединение оборвалось после отправки, и неизвестно, дошёл ли запрос. Безоговорочный повтор способен дать два уведомления. Сохраняйте номер заявки и состояние попытки. При неоднозначном результате повторное уведомление может прийти с тем же номером; оно не должно создавать вторую заявку в учёте. Не помечайте отправку как окончательно неудачную только из-за обрыва соединения: сообщение могло дойти.

Ограничьте число автоматических попыток и предусмотрите разбор неудач человеком. Канал сообщения об ошибках должен помогать при отказе основного канала. Уведомлять о недоступности Telegram только через Telegram довольно оптимистично.

Отделите доставку от обработки

Статус «уведомление отправлено» нужен интеграции. Статус «принято в работу» нужен бизнесу. Если их объединить, технически успешная отправка превратится в якобы обработанную заявку.

Назначьте получателя и правило передачи. Кто отвечает вечером? Что происходит в отпуске? Где видно обращения без ответа? Даже простая отметка в системе учёта полезнее надежды, что кто-нибудь увидит сообщение в группе.

В Нейрочате мы используем связку сайта с Telegram и историю обращений. Это пример работы с контекстом разговора. Он не означает, что любые формы на всех партнёрских сайтах уже подключены к такой схеме: каждую интеграцию проверяют отдельно.

Отправка уведомления и принятие заявки сотрудником показаны отдельно.
Разные состояния одной заявки; успешная отправка не доказывает прочтение или ответ.

Сохраняйте один номер обращения на всём пути. Тогда повторное уведомление можно распознать, а необработанную заявку — найти независимо от состояния сообщения.

Проверьте всю цепочку, включая сбой

Отправьте тестовую заявку с телефона. Сравните поля в форме, сохранённой записи и уведомлении. Убедитесь, что комплектация и вопрос не обрезались, а сотрудник может открыть карточку.

Затем проверьте неверный ввод, повторный клик, временную ошибку доставки и восстановление. Посмотрите, сохранилось ли обращение, появились ли понятные статусы и не создался ли дубль. Тестовые записи пометьте и исключите из рабочих итогов.

Завершите проверку действием менеджера: он должен найти заявку, взять её в работу и зафиксировать результат. Если техническая часть работает, а порядок ответа ещё не согласован, процесс пока не готов: назначьте ответственного и договоритесь, где он отмечает результат.

Как выбрать первую автоматизацию, разобрал в отдельной статье. Если хотите привести заявки к такому порядку, можно обсудить ваши формы и получателей.

Есть задача по автоматизации или развитию сайта? Расскажите о ней — обсудим, с чего начать.

Все статьи