Сайт и Telegram-бот в одной системе: единая воронка заявок

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

Что ломается, когда сайт и бот живут отдельно

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

  • Дубли. Клиент оставил заявку на сайте, не дождался звонка и написал в бота. В CRM — два лида, им звонят два разных менеджера.
  • Потерянный источник. Человек пришёл из рекламы на сайт, нажал «Написать в Telegram», и информация о кампании пропала. Маркетолог видит, что бот приводит клиентов, но не знает, какая реклама на самом деле сработала.
  • Разные форматы. С сайта приходит одна структура полей, из бота — другая, и сравнивать их неудобно.
  • Пробелы в истории. Менеджер не видит, что клиент уже писал неделю назад и о чём.

Все эти проблемы решаются, если сайт и бот передают данные в одно место по одним правилам.

Архитектура: один backend для всех каналов

В основе системы — общий сервер с базой данных. Сайт и бот становятся лишь каналами, через которые заявки попадают внутрь. Мы обычно строим такую систему из нескольких частей:

  • API приёма заявок. Форма на сайте отправляет данные на сервер, а не на почту.
  • Обработчик бота. Telegram присылает события на вебхук того же сервера, бот проводит диалог и создаёт заявку через тот же внутренний метод, что и сайт.
  • Единая база. Клиенты, заявки, источники и история обращений — в одних таблицах, с полем «канал».
  • Модуль уведомлений. Один и тот же формат карточки для менеджеров, независимо от того, откуда пришла заявка.
  • Синхронизация с CRM. Одна точка интеграции вместо отдельных у сайта и бота.

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

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

Единая база заявок и дедупликация

Чтобы один человек не превращался в несколько клиентов, у системы должны быть правила склейки. Опознавать клиента можно по разным признакам:

  • Телефон — самый надёжный ключ, если приводить его к единому формату: без пробелов, скобок и с одинаковым кодом страны.
  • Идентификатор пользователя Telegram — постоянный, не меняется при смене имени или номера.
  • Email — дополнительный признак, если его спрашивают на сайте.

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

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

Автоматическую склейку стоит делать осторожно. Один номер может принадлежать офису или семье, и тогда разные люди окажутся в одной карточке. Надёжнее помечать подозрительные совпадения как «возможный дубль» и оставлять финальное решение менеджеру: это занимает секунды, но избавляет от путаницы в истории клиента.

Откуда пришёл клиент: UTM и источники

На сайте источник определить просто: рекламные метки в адресе страницы сохраняются при первом визите. Сложнее, когда посетитель переходит с сайта в бота: метки в Telegram сами не передаются.

Решение — передавать их через параметр запуска бота. Сайт сохраняет метки на сервере и получает для них короткий идентификатор, а кнопка «Написать в Telegram» ведёт по ссылке с этим идентификатором. Когда человек запускает бота, тот получает параметр, находит сохранённые метки и записывает их в заявку. В итоге в CRM видно не просто «Telegram», а конкретную кампанию и объявление.

Для прямых переходов в бота — из рекламы, с QR-кода, из канала — делают отдельные ссылки с собственным параметром. Тогда отчёт по источникам охватывает все входы одинаково. Подробнее о том, как бот собирает заявку и квалифицирует клиента, — в статье «Бот для заявок в Telegram».

Уведомления и передача в CRM

Когда все заявки проходят через один сервер, уведомления становятся единообразными. Менеджер получает в рабочем чате карточку: канал, источник, имя, суть запроса, пометка, если клиент уже обращался раньше. Кнопка «Взять в работу» фиксирует ответственного.

Параллельно заявка уходит в CRM — с полями источника и ссылкой на историю обращений. Если интеграция двусторонняя, изменение статуса сделки возвращается в систему, и бот может сообщить клиенту, что его заказ передан в работу или готов. Как устроена связь с amoCRM и Битрикс24, описано в материале об интеграции сайта и бота с CRM.

Важная деталь — надёжность. Если CRM временно недоступна, заявка не должна потеряться: сервер сохраняет её в своей базе и повторяет отправку позже. Менеджер при этом получает уведомление в чат без задержки.

Когда добавлять MAX

Если заметная часть вашей аудитории пользуется мессенджером MAX, имеет смысл добавить бота и там. У MAX есть платформа для ботов и мини-приложений с HTTP API: бот авторизуется токеном и получает события через вебхук или long polling. Детали — ограничения, требования к оформлению, порядок публикации — уточняются по документации платформы.

В архитектуре с общим backend подключение MAX выглядит как ещё один канал. Сценарии и правила обработки заявок переиспользуются, меняется только слой, который общается с API мессенджера. Заявки из MAX попадают в ту же базу, проходят ту же дедупликацию и уходят в ту же CRM.

Сигналы, что пора добавить MAX: клиенты спрашивают о нём сами, ваша аудитория — та, которая активно им пользуется, или вам важно не зависеть от одного мессенджера. Как перенести логику существующего бота, рассказано в статье о работе в двух мессенджерах.

Порядок внедрения

Если всё делать сразу, проект растягивается. Мы обычно внедряем систему поэтапно, чтобы каждый шаг давал результат:

  1. Общий сервер и база: перевести форму сайта на отправку заявок через API.
  2. Уведомления в рабочий чат в едином формате.
  3. Бот, который создаёт заявки через тот же сервер.
  4. Передача меток с сайта в бота и отдельные ссылки для каждого источника.
  5. Правила дедупликации и история клиента.
  6. Интеграция с CRM, затем — двусторонние статусы.
  7. Подключение MAX или других каналов, если они нужны.

Уже после второго-третьего шага менеджеры работают в одном месте, а после четвёртого маркетолог видит, какие каналы действительно приводят клиентов.

Частые вопросы

Можно ли связать с ботом уже существующий сайт?

Да. Обычно достаточно изменить отправку формы и добавить кнопку перехода в бота с параметром источника. Сам сайт переделывать не нужно.

Что если у нас сайт на конструкторе?

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

Нужна ли CRM, чтобы это работало?

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

Сколько времени занимает такая связка?

Перевод формы сайта на общий сервер и уведомления в чат — небольшая задача. Бот, передача меток и интеграция с CRM добавляют этапы, поэтому срок считают после брифа, исходя из того, что уже есть у компании.

Где хранятся данные клиентов?

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

Обсудим проект

Нужна похожая разработка?

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

Написать напрямую

Источники