Подключить WhatsApp Business API к Kommo без нативного виджета можно напрямую через Meta Cloud API и Kommo Chats API. Вы получаете собственный webhook-сервер, который принимает входящие сообщения от Meta, обрабатывает их и передаёт в Kommo через Chats API - привязывая каждый диалог к нужной сделке. Это полноценная двусторонняя переписка без посредников и без ежемесячной платы за виджет.
В проектах Exceltic.dev эта схема регулярно выбирается, когда у клиента нестандартный сценарий: несколько номеров с разной маршрутизацией, интеграция с внешней системой очередей, GDPR-требования к хранению переписки, или просто нежелание платить $30-50 в месяц сверх тарифа Kommo за функцию, которую можно реализовать через бесплатный Cloud API от Meta.
WhatsApp Business API (WABA) - это серверный API от Meta для организаций, который позволяет отправлять и принимать сообщения в WhatsApp программно, без мобильного приложения. Отличается от WhatsApp Business App тем, что работает через HTTP-запросы к серверам Meta и поддерживает шаблонные сообщения для исходящих уведомлений.
Эта статья разбирает архитектуру кастомной интеграции: что нужно на стороне Meta, как работает Kommo Chats API, и чем этот подход отличается от нативного виджета Kommo.
Нативный виджет Kommo vs кастомная интеграция
Kommo поддерживает нативное подключение WhatsApp через встроенную интеграцию на базе Meta Cloud API. Это удобно для быстрого старта, но накладывает ограничения, которые хорошо видны в проектах с нестандартными требованиями.
| Параметр | Нативный виджет Kommo | Кастомная интеграция через Cloud API |
|---|---|---|
| Стоимость | Входит в тариф Base и выше; шаблонные сообщения оплачиваются по тарифам Meta | Только тарифы Meta за сообщения, плата за разработку и хостинг сервера |
| Номера на аккаунт | 1 номер на Base, 3 на Advanced/Pro | Любое количество в рамках одного WABA |
| Доступ к данным переписки | Только внутри Kommo | Полный: вся переписка проходит через ваш сервер, можно писать в свою БД |
| Шаблоны сообщений | Через интерфейс Kommo, ограниченный набор переменных | Напрямую через Meta Business Manager, любые переменные, кнопки, медиа |
| Маршрутизация | По каналам и воронкам Kommo | Произвольная - по номеру, тегу, UTM, payload в ссылке |
| Digital Pipeline и SalesBot | Поддерживается нативно | Поддерживается через Chats API (Kommo видит чат как стандартный канал) |
| GDPR-хранение | Данные у Meta и в Kommo | Данные у Meta, в Kommo и на вашем сервере - полный контроль |
| Время внедрения | 1-2 часа | 2-5 рабочих дней |
Кастомный подход оправдан, когда: несколько продуктовых линеек на разных номерах с разной логикой ответа; нужно логировать переписку в собственную CRM или data warehouse; нативный виджет не поддерживает нужный тип шаблона; или команда уже строит собственный middleware-слой между CRM и внешними системами.
Для простого старта с одним номером нативный виджет - правильный выбор.
Что реализуется в кастомной схеме
Архитектура: Meta Cloud API webhook -> ваш сервер -> Kommo Chats API
Схема состоит из трёх компонентов, которые работают последовательно.
Meta Cloud API получает сообщения от пользователей WhatsApp и доставляет их на ваш webhook-сервер в виде POST-запроса с JSON-payload. Payload содержит from (номер отправителя), id (message ID), timestamp, type (text/image/audio/document) и тело сообщения. Для входящего текста это поле text.body.
Ваш webhook-сервер - промежуточный слой, который:
- Верифицирует запрос от Meta по X-Hub-Signature-256
- Разбирает payload
- Определяет, к какой сделке или лиду относится этот контакт (по номеру телефона через Kommo Contacts API)
- Передаёт сообщение в Kommo через Chats API POST
/api/v1/chats/messages - Отвечает Meta статусом 200
Kommo Chats API принимает входящие сообщения и привязывает диалог к сделке. Если контакт новый - Kommo создаёт лид автоматически по настройкам воронки. Если сделка уже существует - сообщение появляется в её ленте активностей.
Для исходящих сообщений направление обратное: Kommo отправляет webhook на ваш сервер (событие message_sent), сервер делает POST к Meta Graph API /{phone_number_id}/messages с токеном доступа.
Шаблонные и сессионные сообщения
Meta различает два режима общения:
Сессионные сообщения - свободный текст в пределах 24-часового окна после последнего входящего сообщения от клиента. Не требуют согласования шаблона. Именно в этом режиме происходит большинство диалогов в продажах.
Шаблонные сообщения (Template Messages, HSM) - используются для первичного исходящего контакта или повторного обращения после истечения 24 часов. Каждый шаблон проходит модерацию в Meta Business Manager. Структура шаблона: заголовок (опционально), тело с переменными {{1}}, {{2}}, нижний колонтитул (опционально), кнопки (Reply/CTA). По тарифам Meta от июля 2025 года каждый шаблон тарифицируется индивидуально - цена зависит от категории (Utility, Marketing, Authentication) и страны получателя.
В кастомной интеграции вы управляете шаблонами напрямую через Meta Business Manager или через Graph API POST /{whatsapp-business-account-id}/message_templates. Это даёт возможность использовать любые переменные, карусели, location-кнопки - то, что нативный виджет Kommo поддерживает частично.
GDPR и opt-in
WhatsApp Business API требует подтверждённого opt-in от пользователя до отправки шаблонных сообщений. Это не просто рекомендация - Meta блокирует аккаунты при высоком проценте жалоб. Opt-in фиксируется через веб-форму, SMS-подтверждение или любой другой задокументированный канал и должен хранится в вашей системе.
Для EU-клиентов это также требование GDPR: правовое основание для обработки данных через WhatsApp должно быть зафиксировано. В кастомной схеме это проще: вы контролируете хранение и можете в любой момент показать полный audit trail.
Пошаговая схема подключения
Шаг 1. Создание Meta App и WABA
Зайдите в Meta for Developers, создайте приложение типа Business. В разделе Products добавьте WhatsApp. Система автоматически создаст тестовый номер и WhatsApp Business Account (WABA ID). Для продакшена нужен верифицированный Business Portfolio в Meta Business Manager.
Шаг 2. Привязка номера телефона
Добавьте продуктовый номер через WhatsApp Manager или API. Номер не должен быть зарегистрирован в WhatsApp Business App - если зарегистрирован, сначала удалите аккаунт. После добавления зарегистрируйте номер через API-вызов POST /{phone-number-id}/register с параметрами messaging_product: whatsapp и pin. Без этого вызова номер не активируется для Cloud API.
Шаг 3. Настройка webhook на стороне Meta
В разделе WhatsApp -> Configuration укажите URL вашего webhook-эндпоинта и Verify Token (произвольная строка). Meta отправит GET-запрос с параметрами hub.mode=subscribe, hub.verify_token и hub.challenge. Ваш сервер должен проверить token и вернуть значение hub.challenge как ответ с кодом 200. После верификации Meta начнёт доставлять входящие события на этот URL.
Подпишитесь на нужные события: messages (входящие сообщения), message_deliveries, message_reads. Подписка через POST /{app-id}/subscriptions.
Шаг 4. Регистрация канала в Kommo Chats API
Отправьте запрос в техподдержку Kommo на подключение Chats API. В ответ получите параметры канала: channel_id, channel_secret (используется для подписи X-Signature исходящих webhook от Kommo). Срок рассмотрения - 1-3 рабочих дня.
После получения параметров зарегистрируйте свой webhook-адрес через POST /api/v1/chats/channels/{channel_id}/webhook. Kommo начнёт отправлять на этот адрес события об исходящих сообщениях из интерфейса CRM.
Шаг 5. Реализация логики маршрутизации на сервере
Сервер должен поддерживать два потока:
Входящий (Meta -> Kommo): получить webhook от Meta, извлечь from (номер отправителя в формате E.164), найти контакт в Kommo по номеру через GET /api/v4/contacts?query={phone}, передать сообщение через Chats API с указанием contact_id и conversation_id. При первом сообщении от нового номера Kommo создаёт лид по правилам воронки.
Исходящий (Kommo -> Meta): получить webhook от Kommo о том, что менеджер отправил сообщение в чате, сделать POST к Meta Graph API /{phone_number_id}/messages с телом сообщения или ссылкой на шаблон.
Шаг 6. Обработка ошибок и идемпотентность
Meta не повторяет доставку webhook при неответе - если ваш сервер вернул не 200, сообщение теряется. Реализуйте очередь с подтверждением (например, через Redis или RabbitMQ): webhook от Meta кладётся в очередь немедленно, обработка идёт асинхронно. Для идемпотентности сохраняйте message_id из payload Meta и проверяйте дубли перед записью в Kommo.
Aнтипаттерн в этом месте: синхронная обработка без очереди. При нагрузке 100+ сообщений в минуту это приводит к таймаутам и потере части переписки.
Шаг 7. Шаблоны и тестирование
Создайте тестовый шаблон в Meta Business Manager категории Utility. Дождитесь одобрения (обычно несколько часов для Utility). Отправьте тестовое сообщение через API на реальный номер. Проверьте, что оно появилось в нужной сделке Kommo. Проверьте обратный путь: ответ из Kommo должен уйти через вашу очередь к Meta и доставиться в WhatsApp.
Реальный кейс
Один из типичных проектов Exceltic.dev в этой категории - компания из Восточной Европы с командой продаж 20 человек, которая использовала Kommo и хотела добавить WhatsApp как основной канал входящих лидов. Нативный виджет отпал по двум причинам: нужны были три разных номера с разной воронкой для разных продуктов, и требовалось дублировать переписку в собственное хранилище для compliance.
Архитектура: Python FastAPI сервер на VPS, очередь через Redis Streams, две воронки в Kommo. Весь стек - три сервиса в Docker Compose.
Результат: внедрение заняло 4 рабочих дня включая тестирование. Три номера работают на одном сервере с раздельной маршрутизацией по phone_number_id. Переписка дублируется в PostgreSQL с сохранением message_id для аудита. Стоимость инфраструктуры - $15-20 в месяц (VPS + Redis), против $30-50 в месяц за три нативных виджета на тарифе Advanced.
За первые 30 дней через интеграцию прошло около 1200 диалогов без единой потери сообщения - за счёт Redis Streams с ACK.
Для кого подходит этот подход
Кастомная интеграция Kommo + WhatsApp через Meta Cloud API подходит командам от 10-15 человек, которые:
- используют несколько номеров WhatsApp для разных продуктов или рынков
- строят собственный data warehouse и хотят хранить переписку у себя
- работают в регулируемых индустриях с требованиями к audit trail (fintech, healthtech, legaltech)
- уже имеют middleware-сервер для других интеграций и хотят добавить WhatsApp в эту архитектуру
- хотят использовать возможности шаблонов Meta (карусели, location, payment-кнопки), которые нативный виджет не поддерживает полностью
Если у вас один номер, простой сценарий входящих лидов и нет требований к хранению данных - нативный виджет Kommo проще и быстрее.
Компаниям, которые только переходят на Kommo и ещё не определились с мессенджер-стратегией, полезно сначала посмотреть обзор Kommo CRM и разобраться с базовой настройкой воронки перед тем как выбирать архитектуру канала.
Если вы уже настраиваете другие мессенджеры в Kommo - подход аналогичен интеграции Kommo с Telegram-ботом: один webhook-сервер может обслуживать несколько каналов параллельно.
Термин: Kommo Chats API - серверный API Kommo для подключения произвольных источников сообщений (мессенджеров, чатов) к CRM. Позволяет привязывать входящие диалоги к сделкам и контактам, отображать переписку в ленте активностей и использовать SalesBot и Digital Pipeline для обработки чатов из кастомных каналов.
Часто задаваемые вопросы
Нужен ли верифицированный бизнес в Meta для подключения Cloud API?
Для тестирования - нет. Meta предоставляет тестовый номер и тестовый WABA сразу после создания приложения. Для продакшена с реальным номером верификация Business Portfolio обязательна. Без верификации аккаунт остаётся в sandbox-режиме: можно отправлять сообщения только на зарегистрированные тестовые номера. Верификация бизнеса в Meta занимает от одного дня до недели и требует официальных документов компании.
Сколько стоит Meta Cloud API - есть ли бесплатный уровень?
Meta предоставляет 1000 бесплатных сервисных диалогов в месяц на каждый WABA. Сервисные диалоги - это переписка, инициированная пользователем. С июля 2025 года шаблонные исходящие сообщения (Marketing, Utility, Authentication) тарифицируются за каждое сообщение отдельно, а не за 24-часовое окно. Точные тарифы зависят от страны получателя и категории шаблона - актуальные цифры на странице тарифов Meta. Для большинства EU и US рынков Utility-шаблон стоит $0.01-0.02 за сообщение.
Можно ли использовать один WABA для нескольких номеров в разных воронках Kommo?
Да, один WABA поддерживает несколько номеров. Каждый номер имеет собственный phone_number_id, по которому ваш сервер определяет, в какую воронку направить входящий лид. В Kommo Chats API каждый номер регистрируется как отдельный канал с отдельным channel_id. Маршрутизация происходит на вашем сервере: проверяете phone_number_id в payload от Meta и передаёте сообщение в соответствующий Kommo-канал.
Что происходит, если мой webhook-сервер недоступен и Meta не доставила сообщение?
Meta не повторяет доставку webhook при ошибке или таймауте. Если сервер не ответил кодом 200, входящее сообщение теряется с точки зрения вашей системы - клиент его отправил, но в Kommo оно не появится. Именно поэтому критически важна архитектура с очередью: webhook-эндпоинт должен только положить задачу в очередь и немедленно ответить 200, а обработка идёт асинхронно. Рекомендуется мониторинг глубины очереди и алертинг при накоплении необработанных задач.
Можно ли через Chats API использовать SalesBot и Digital Pipeline Kommo?
Да. Это одно из ключевых преимуществ Chats API перед другими способами подключить WhatsApp через сторонние виджеты. Комmo видит чат из кастомного канала так же, как чат из нативного виджета: SalesBot может отвечать на входящие, Digital Pipeline может перемещать сделку при получении сообщения. Это отличает Chats API от простой записи заметок через REST API Kommo - там автоматизация по событию чата не работает.
Итог
Кастомная интеграция Kommo + WhatsApp Business API через Meta Cloud API - это правильный выбор, когда нативного виджета не хватает: несколько номеров, хранение переписки на своей стороне, сложная маршрутизация или шаблоны с расширенными возможностями.
Ключевые шаги:
- Создать Meta App, добавить WhatsApp, зарегистрировать номер через API
- Реализовать webhook-сервер с верификацией X-Hub-Signature-256 и очередью
- Получить доступ к Kommo Chats API и зарегистрировать канал
- Реализовать двусторонний поток: Meta -> сервер -> Kommo и Kommo -> сервер -> Meta
- Настроить шаблоны в Meta Business Manager, протестировать opt-in flow
Если вы сейчас оцениваете эту архитектуру для своей команды - опишите задачу команде Exceltic.dev. Разберём стек, количество номеров и требования к хранению данных, предложим архитектуру и оценку объёма работ.
Title tag: Kommo + WhatsApp Business API без виджета Meta description: Подключаем WhatsApp Business API к Kommo без нативного виджета: Meta Cloud API, Kommo Chats API, webhook-сервер с очередью. Архитектура и пошаговая схема. LSI-запросы: kommo whatsapp интеграция, whatsapp business api kommo, подключить whatsapp к kommo, kommo chats api мессенджер, meta cloud api webhook kommo Slug: /blog/kommo-whatsapp-business-api-podklyuchenie