Обсудить задачу →
кейс · crm · интеграция работает

Подключение Telegram, MAX и чата сайта к amoCRM своим каналом, без коннектора

коротко

Я подключил к amoCRM три источника сообщений – Telegram, MAX и чат на сайте – через собственные каналы чатов. Переписка идёт в карточке сделки, менеджер отвечает оттуда же, подписки на коннектор нет. Кейс публикуется обезличенно: заказчик не разглашается.

ПЕРЕПИСКА КЛИЕНТОВ скриншот не публикуется · NDA
рис. 01 / карточка сделки с перепиской не разглашается2026
ОТРАСЛЬуслуги · заказчик не разглашается
ФОРМАТинтеграция · свой сервер
ЗАПУСК2026 · NDA
СТАТУСработает

Задача: вся переписка в карточке сделки

Клиенты писали компании в три места: в Telegram, в MAX и в чат на сайте. У менеджеров было три окна, и ни одно из них не было CRM. Сообщение пришло в мессенджер, менеджер ответил с телефона, а в карточке сделки пусто. Через неделю уже никто не помнит, что обещали клиенту и кто именно.

Обычно это закрывают коннектором – сторонним сервисом, который за абонентскую плату пересылает сообщения из мессенджера в CRM. Работает, но платить приходится за каждый канал каждый месяц, а вся переписка клиентов идёт через чужие серверы.

Задачу я сформулировал иначе: сделать интеграцию мессенджеров с amoCRM своими силами. Сообщение из любого из трёх источников попадает в карточку, менеджер отвечает прямо из неё, а заявки сразу в CRM – без пересылки руками и без посредника.

Что такое канал чатов в amoCRM?

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

Первое, что выяснилось на практике: один канал – это один тип мессенджера. Общий «ящик для всего» завести нельзя. Поэтому под три источника понадобились три канала: для Telegram, для MAX и для чата сайта. Все три выданы на одну интеграцию.

Что выдаютЗачем это нужно
Код каналасимвольное имя, по нему канал называют в переписке с поддержкой
Идентификатор каналаиз него и идентификатора аккаунта складывается адрес, на который сервис шлёт сообщения
Секретный ключим подписывается каждый запрос, и им же проверяется подпись ответа от amoCRM

Свой мост между мессенджерами и CRM-системой

Между мессенджерами и amoCRM стоит мост – небольшой сервис на сервере заказчика. Он слушает три источника сразу и перекладывает сообщения в CRM-систему, а ответы менеджера возвращает туда, откуда клиент написал.

Telegram и MAX подключены как обычные аккаунты компании, а не как боты. Клиент пишет на тот же контакт, что и раньше, и не замечает перемен: ни новой кнопки «Старт», ни чужого имени в диалоге. Чат на сайте – собственное окно, которое ставится на страницу одной строкой кода.

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

Как получить канал чатов: заявка в поддержку amoCRM

Кнопки «создать канал» в интерфейсе нет. Канал выдаёт поддержка amoCRM по заявке, порядок расписан в разделе «Чаты шаг за шагом». В заявке шестнадцать пунктов, вот те, над которыми пришлось подумать заранее.

Что спрашиваютЧто я ответил
Название сервиса латиницейсвоё на каждый канал
Адрес для вебхуковадрес моста, в конце – место под идентификатор подключения
Идентификатор интеграцииинтеграцию в аккаунте нужно создать до подачи заявки
Нужна ли функция «написать первым»да, менеджер должен уметь начать диалог сам
Иконка каналаSVG 14 на 14 пикселей, до 100 КБ
Голосовые, цитирование, реакции, файлыотмечается, что сервис умеет принимать

На следующий день после заявки пришли все три канала. Партнёрский статус не понадобился. В тот же день первое сообщение дошло до карточки, а ответ менеджера вернулся клиенту в мессенджер.

Как сообщение из мессенджера попадает в карточку за секунду

Путь сообщения замкнут в кольцо: от клиента вниз в карточку и обратно наверх, к клиенту. По шагам это выглядит так.

  1. Клиент пишет в Telegram, MAX или в чат на сайте – туда, где ему удобно.
  2. Мост принимает сообщение и отправляет его в свой канал чатов. Запрос подписан секретным ключом канала: amoCRM проверяет подпись и чужой запрос не примет.
  3. amoCRM создаёт обращение. Новый клиент попадает в «Неразобранное» с контактом и сделкой, знакомый – в свою беседу в существующей карточке.
  4. Менеджер отвечает из карточки, как в обычном чате amoCRM.
  5. amoCRM шлёт ответ на адрес моста. Мост проверяет подпись и передаёт текст в тот мессенджер, откуда пришёл вопрос.

По журналу моста от сообщения клиента в MAX до его появления в amoCRM проходит около секунды. Менеджер видит вопрос раньше, чем успевает переключить вкладку.

Привязка чата к контакту: что нужно знать про токен

Чтобы повторное обращение попадало в ту же карточку, а не создавало дубль, мост связывает чат с контактом через API amoCRM. И вот тут есть правило, о котором лучше знать до начала работы, а не после.

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

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

Второй: если канал уже выдан на интеграцию из другого аккаунта, привязку меняет поддержка. В обращении нужно назвать код канала и параметр, который надо заменить, – идентификатор интеграции. Сами возможности каналов описаны в разделе «Возможности API чатов». После замены я выпускаю долгосрочный токен новой интеграции и ставлю его в мост.

Чат на сайте: одна строка кода и проверка от спама

Третий канал – окно чата на сайте. Посетитель отмечает согласие на обработку персональных данных, отвечает на простой вопрос вроде «сколько будет 2 + 3» и пишет. Переписка сразу видна в amoCRM в своём канале, менеджер отвечает оттуда же.

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

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

Результат

3 канала
Telegram, MAX и чат сайта в одной карточке сделки
1 день
от заявки в поддержку до выданных каналов
≈ 1 с
от сообщения клиента до карточки в amoCRM

Менеджеры работают в одном окне: вся переписка лежит в карточке сделки, и ответ уходит оттуда же. Абонентской платы за коннектор нет, сообщения клиентов не проходят через посторонний сервис. Каналы привязаны к аккаунту заказчика, и подключить к ним ещё один источник – вопрос доработки моста, а не нового тарифа.

Когда свой канал чатов оправдан, а когда хватит коннектора?

Свой канал – не всегда лучший выбор, и продавать его каждому я не стану.

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

Отдельная оговорка про мессенджеры с правилом «окна переписки»: если клиент молчит дольше суток, свободный текст ему отправить нельзя, только согласованный шаблон. Это ограничение самого мессенджера, свой канал его не снимает.

Стек

Python · asyncio amoCRM API v4 API чатов amoCRM вебхуки с подписью Docker Caddy свой сервер заказчика виджет чата для сайта

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

Грабли, на которые уже наступил

Подпись вебхука не сходится из-за одного символа. amoCRM присылает тело запроса с переводом строки в конце, а подпись считает без него. Сверяешь как пришло – подпись «неверная», хотя ключ правильный. Лечится одной строкой: хвостовой перевод строки перед проверкой убирается.

События «прочитано» нет. Когда менеджер открыл чат в карточке, мост об этом не узнаёт: признак прочтения в API на открытие чата не реагирует. Отметку клиенту ставлю по факту ответа.

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

Два сервиса на один источник дают две сделки. Пока старый коннектор не выключен, каждое сообщение приходит в CRM дважды. Старые подключения отключаются до включения своего канала, а не после.

Один канал под всё не выдадут. Разобрано выше: канал привязан к типу мессенджера. Сколько источников, столько и заявок.

Вопросы и ответы

Нужен ли партнёрский статус amoCRM, чтобы получить канал чатов?

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

Сколько времени занимает подключение мессенджеров к amoCRM?

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

Можно ли подключить один канал к нескольким аккаунтам amoCRM?

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

Где хранится переписка с клиентами?

В amoCRM, в карточке сделки, и в журнале моста на сервере заказчика. Через сторонний сервис сообщения не проходят.

Можно ли оставить коннектор и добавить свой канал?

На разные источники – да. На один и тот же источник – не стоит: оба сервиса создадут по сделке на каждое сообщение.

Работает ли такая схема в Битрикс24?

Механизм там другой: открытые линии и свои коннекторы. Задача решается так же – своим сервисом между мессенджером и CRM, меняется только сторона, к которой он подключается.

автор – Семенов Евгений, Forward Deployed Software Engineer
ещё кейсы

Похожие проекты

все кейсы →
продукты · игры

Пасьянс-портал: игра в нише на 2 млн запросов

Браузерная косынка с честным рейтингом, подпиской 49 ₽ и серверным анти-читом.

развлеченияPWAанти-чит
аналитика · r&d

Прогноз оттока в фитнес-клубе: пять портретов

Модель находит уходящих за 15 дней и делит базу на пять портретов – каждому своё предложение, а не общая скидка.

фитнесROC-AUC 0,975 портретов

Похожая задача?

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

Обсудить задачу →
статьи по теме

Разобрано в блоге

все статьи →
CRM, Автоматизация

ИИ в Битрикс24: пять автоматизаций, которые окупаются сразу

Резюме переписок, автоответы, скоринг, автостадии и дожим – на живых сделках.

8 июля
Боты, Автоматизация

Telegram-бот для записи клиентов: полный разбор за вечер

Сценарий, слоты, бронь с гонками, оплата и напоминания – вся механика по узлам.

16 июля
Агенты, CRM, Боты

ИИ-агент вместо менеджера по заявкам: месяц наблюдений

Что агент делает лучше человека, где ошибается и сколько это стоит в токенах.

10 июля
лента по теме

Новости и посты

вся лента →
пост Почему «умный» бот продаёт хуже простого сценария новость Открыта запись на пилоты августа пост 68% американского малого бизнеса уже с ИИ. Что из этого переносится к нам пост ИИ и код: что изменилось в работе за год и почему разработчиков меньше не стало