Вы запустили чат-бота в Telegram или ВКонтакте, он собирает заявки 24/7. Но менеджеры всё равно тратят время на ручной перенос данных в CRM? Клиент написал боту, а в amoCRM сделка не появилась — приходится переспрашивать, теряются заявки, падает конверсия.
Решение — интеграция чат-бота с amoCRM через вебхуки (webhooks). После настройки каждое сообщение от клиента или результат опроса автоматически создаёт сделку, контакт и задачу в вашей CRM.
В этой инструкции — как настроить такую связку на популярных платформах (Chatfuel, ManyChat, SendPulse, Botmother) без программиста, а также пример кастомной интеграции через код.
Что такое вебхук и зачем он для интеграции
Вебхук (webhook) — это автоматический HTTP-запрос, который отправляет один сервис другому при наступлении события. Простыми словами: когда клиент написал боту «Хочу консультацию», бот отправляет запрос в amoCRM с текстом: «Создай сделку с такими-то данными».
В отличие от API, где нужно постоянно опрашивать сервер на наличие новых данных, вебхук работает в реальном времени: событие случилось → запрос ушёл → сделка создалась за секунды.
Для интеграции вам понадобятся:
- ✅ Аккаунт в amoCRM (с доступом к API, есть на тарифах «Совместный» и выше)
- ✅ Платформа для создания чат-бота, поддерживающая отправку вебхуков (Chatfuel, ManyChat, SendPulse, Botmother, Aimylogic и др.)
- ✅ Базовое понимание JSON (необязательно, но поможет при отладке)
Подготовка: получаем данные для доступа к API amoCRM
Прежде чем настраивать бота, нужно создать интеграцию в amoCRM и получить ключи доступа.
Шаг 1. Создаём интеграцию в amoCRM
- Зайдите в свой аккаунт amoCRM.
- Перейдите в «Настройки» → «Интеграции» → «Создать интеграцию».
- Укажите название, например, «Чат-бот Telegram».
- В поле «Ссылка для перенаправления» (Callback URI) временно укажите
https://example.com— он не понадобится для вебхуков, но amoCRM требует его заполнить . - Выберите протокол OAuth 2.0 (стандартный для amoCRM).
- После создания скопируйте client_id и client_secret — они понадобятся для получения токена доступа.
Шаг 2. Получаем access_token
Для работы с API amoCRM нужен постоянный токен доступа. Есть два способа:
Способ 1 (простой, но токен живёт недолго):
- Перейдите по ссылке (замените YOUR_CLIENT_ID и YOUR_SUBDOMAIN):
https://your_subdomain.amocrm.ru/oauth?client_id=YOUR_CLIENT_ID&state=any_state - Авторизуйтесь в своём аккаунте amoCRM (если ещё не авторизованы).
- Нажмите «Разрешить» — вас перенаправит на example.com с параметром code в URL.
- Скопируйте значение code из URL (часть после &code=).
- Отправьте POST-запрос на
https://your_subdomain.amocrm.ru/oauth2/access_tokenс телом:
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"grant_type": "authorization_code",
"code": "полученный_code",
"redirect_uri": "https://example.com"
}
В ответе вы получите access_token и refresh_token. Access_token действителен 24 часа, refresh_token позволяет получать новый без повторного прохождения OAuth .
Способ 2 (для сервера, токен бесконечный): Установите специальное приложение от amoCRM на свой сервер, которое будет автоматически обновлять токен. Подробнее в официальной документации amoCRM.
Для упрощения настройки вебхуков можно использовать сервисы-прослойки (Albato, Make), которые сами управляют токенами — об этом в конце статьи.
Пошаговая настройка: интеграция на примере Chatfuel
Chatfuel — одна из самых популярных платформ для Telegram-ботов с простым конструктором вебхуков.
Шаг 1. Создаём карточку блока с вебхуком в Chatfuel
- В конструкторе бота выберите блок, после которого нужно отправить данные в amoCRM (например, после сбора телефона клиента).
- Добавьте элемент «JSON API» (в некоторых версиях — «Webhook»).
- В поле URL укажите адрес вашего скрипта-посредника (если используете свой сервер) или адрес middleware-сервиса (о них позже).
- Метод запроса — POST.
Шаг 2. Формируем JSON для создания сделки в amoCRM
В теле запроса нужно передать данные в формате JSON. Базовый пример для создания простой сделки:
{
"name": "Заявка из чат-бота",
"price": 0,
"status_id": 1234567
}
Чтобы добавить контакт и связать его со сделкой, структура сложнее:
{
"add": [
{
"name": "Заявка из чат-бота",
"status_id": 1234567,
"_embedded": {
"contacts": [
{
"first_name": "{{first_name}}",
"last_name": "{{last_name}}",
"custom_fields_values": [
{
"field_code": "PHONE",
"values": [
{
"value": "{{phone}}",
"enum_code": "WORK"
}
]
}
]
}
]
}
}
]
}
Вместо {{first_name}}, {{last_name}}, {{phone}} Chatfuel подставит реальные данные из диалога, если вы сохранили их в переменные бота.
Где взять status_id? Откройте любую сделку в amoCRM на нужной вам стадии (например, «Первичный контакт»). Посмотрите в адресную строку браузера:
.../leads/detail/123456. В режиме разработчика (F12) на вкладке Network найдите запрос к API — в ответе будет status_id. Или используйте GET-запрос к
/api/v4/leads/pipelines.
Шаг 3. Отправляем запрос к API amoCRM через вебхук
Ваш вебхук должен отправить POST-запрос на эндпоинт amoCRM:
https://your_subdomain.amocrm.ru/api/v4/leads
В заголовках запроса обязательно указать:
-
Authorization: Bearer YOUR_ACCESS_TOKEN -
Content-Type: application/json
В Chatfuel в настройках JSON API можно добавить заголовки в отдельное поле.
Шаг 4. Тестируем и отлавливаем ошибки
Отправьте тестовое сообщение боту. Если всё настроено правильно, в amoCRM появится новая сделка. Если нет — проверьте:
- Правильно ли указан subdomain в URL (например, mycompany.amocrm.ru).
- Не истёк ли access_token (токены живут 24 часа).
- Не блокирует ли ваш хостинг или бот-платформа внешние запросы.
Альтернатива без программирования: middleware-сервисы
Если вы не хотите возиться с токенами, JSON и сервером, используйте готовые сервисы-коннекторы — они выступают прослойкой между ботом и amoCRM.
Популярные сервисы для связки бот ↔ amoCRM:
| Сервис | Особенности | Стоимость |
|---|---|---|
| Make (Integromat) | Визуальный конструктор сценариев, готовые модули для Telegram и amoCRM。Поддерживает обновление токенов автоматически。 | от $9/мес |
| Albato | Российский сервис, понятная документация на русском, много готовых шаблонов для ботов。 | от 2 900 ₽/мес |
| Zapier | Мировой лидер, но дороже и не всегда стабильно работает с российскими сервисами。 | от $29/мес |
Пример настройки в Make (быстрый сценарий):
- Добавьте модуль Telegram (триггер «Watch Updates»). Настройте бота.
- Добавьте модуль amoCRM («Create a Lead»). Авторизуйте свой аккаунт amoCRM через Make (сервис сам получит и будет обновлять токен).
- Сопоставьте поля: текст сообщения → название сделки, контактные данные (если бот их собрал) → в поля контакта.
- Запустите сценарий. Теперь любое сообщение боту будет создавать сделку.
Этот способ не требует программирования и подходит для большинства малых компаний.
Интеграция для ботов ВКонтакте (ManyChat, Botmother)
ВКонтакте-боты настраиваются по аналогии с Telegram, но с нюансами.
ManyChat
В ManyChat есть встроенный модуль «Webhook» в разделе действий. Вы также формируете JSON и отправляете POST-запрос на эндпоинт amoCRM. Для доступа к данным пользователя ВК
используйте переменные {{contact.first_name}}, {{contact.phone}} (если телефон собран) и {{contact.user_id}}.
Botmother
В конструкторе Botmother выберите блок «HTTP-запрос». Укажите метод POST, URL эндпоинта amoCRM и тело запроса в формате JSON. В теле можно подставлять переменные бота:
{{посетитель_имя}}, {{посетитель_телефон}}.
Чек-лист: что должно быть в интеграции для менеджеров
Чтобы интеграция была полезной, а не просто технической галочкой, убедитесь, что:
- ✅ Создаётся не только сделка, но и контакт — иначе у менеджера не будет истории общения.
- ✅ Передаётся источник (UTM или название бота) — чтобы понимать, откуда пришёл лид (Telegram / VK / WhatsApp).
- ✅ Записывается полный текст диалога — в примечание к сделке или в специальное поле. Менеджер должен видеть, что именно хотел клиент, не переспрашивая.
- ✅ Автоматически назначается ответственный (по очереди или на определённого менеджера).
- ✅ Создаётся задача на звонок в течение часа — чтобы лид не остыл.
Реализовать эти пункты можно через дополнительные вебхуки или сценарии в middleware-сервисах.
Обработка ошибок и безопасность
Интеграция через вебхуки — это надёжно, но требует внимания к деталям.
- Истекший токен: Настройте автоматическое обновление через refresh_token (если пишете своего бота) или используйте middleware.
- Дублирование сделок: При повторном обращении того же клиента может создаваться новая сделка вместо добавления в существующую. Решается проверкой контакта в amoCRM перед созданием (GET-запрос на поиск по телефону).
- Защита от поддельных запросов: Добавьте в вебхук секретный ключ (например, через заголовок X-Secret-Key) — ваш сервер или middleware должен проверять наличие этого ключа, прежде чем создавать сделку.
Готовый код на PHP для приёма вебхуков от бота
Если вы используете своего бота на Python, Node.js или PHP, вот минимальный пример скрипта на PHP, который принимает данные от бота (например, из Chatfuel) и отправляет их в amoCRM: