Один аккаунт, автоматизация
Long-lived token (1д–5лет, без refresh). Минимум возни, никакого OAuth-флоу.
Построено из глубокого веб-ресерча по официальным докам Kommo: 22 источника → 95 claims → 25 верифицировано adversarial-голосованием (3 независимых рефьютера на claim), 0 убито. Технические claims — из вендорской документации, независимо не аудированы.
TL;DR. amoCRM = Kommo (один продукт, два бренда). Интеграционная поверхность — три раздельных механизма с разными хостами и схемами аутентификации: REST API v4 (OAuth, {subdomain}.kommo.com), Digital Pipeline (webhooks/триггеры) и Chats API (amojo.kommo.com, HMAC-SHA1). Несущие лимиты — 7 запросов/сек и батч ≤250 (рекоменд. ≤50). Для своего одно-аккаунтного бота — long-lived token (без OAuth-флоу). Для постинга контента в VK/TG Kommo не предназначен — это conversational-CRM, не publisher.
amoCRM — историческое название (доминирует в РФ/СНГ). Kommo — международный ребренд того же продукта, под которым теперь живёт актуальная дев-документация (developers.kommo.com, прод-хост {subdomain}.kommo.com). Класс продукта — messenger-based / conversational CRM: продажи через входящие чаты, лиды, воронки. Это важно держать в голове при выборе угла интеграции.
Главная развилка дизайна: у Kommo не один API, а три механизма — с разными хостами и разной аутентификацией. Их нельзя путать.
Три механизма, три хоста, три схемы auth. OAuth-токен от REST НЕ работает в Chats API.
| Поверхность | Хост | Аутентификация | Назначение |
|---|---|---|---|
| REST API v4 | {subdomain}.kommo.com | OAuth 2.0 / Bearer | CRUD сущностей (лиды, контакты, сделки…) |
| Digital Pipeline | {subdomain}.kommo.com | конфиг в UI воронки | события (webhooks) + автоматизация |
| Chats API | amojo.kommo.com | HMAC-SHA1 (X-Signature) | кастомные мессенджер-каналы |
429; повторные нарушения → 403 + блокировка IP.504.| OAuth 2.0 | Long-lived token | |
|---|---|---|
| Кейс | публичная / мультитенантная | приватная, один аккаунт |
| Access | JWT, 24 часа | один токен, 1 день – 5 лет |
| Refresh | 3 мес, ротация при обновлении | нет — никакой логики обновления |
| Поток | authorization_code redirect | кнопка в админке (Keys and scopes) |
| Передача | Bearer | Bearer |
Для своего бота/автоматизации под один аккаунт — бери long-lived token. Минует redirect-флоу и избавляет от логики refresh. Самый дешёвый путь к рабочей интеграции.
JWT access-токен несёт user_id, integration_id, доступные действия и account_id. Refresh ротируется при каждом обновлении и отзывается после 3 месяцев простоя (тогда нужна повторная авторизация).
POST https://{subdomain}.kommo.com/oauth2/access_token
{
"client_id": "",
"client_secret": "",
"grant_type": "authorization_code", // или "refresh_token"
"code": "", // для authorization_code
"refresh_token": "", // для refresh_token
"redirect_uri": "https://..."
}
# code и refresh_token взаимоисключающие — по grant_type
Событийный push-слой воронки: вместо опроса API получаешь события сразу. Но набор событий узкий, а доставка self-throttling.
mail_in, call_in, chat, site_visit, смена стадии (status).id, pipeline_id, status_id (+ old_* при смене стадии). Формат {"lead":{"event":{...}}}.100–299, ответ ожидается ~2с.Send Webhook · Salesbot · Change Lead Stage · Add/Complete Task · Create Lead · Send Email · Add Tags · Generate Form · Change Lead's User · Change Field · Delete Files.
Send Webhook — нативный исходящий мост во внешние приложения. ⚠️ Число «12» выведено подсчётом задокументированных секций — буквально на странице не напечатано.
Мессенджер-слой. Отдельный хост и другая аутентификация — это главная ловушка: OAuth-токен отсюда не работает.
| Шаг | Запрос |
|---|---|
| Подключить канал | POST amojo.kommo.com/v2/origin/custom/{chat_service_id}/connect → scope_id |
| Отправить / импортировать сообщение | POST amojo.kommo.com/v2/origin/custom/{scope_id} |
| Аутентификация | HMAC-SHA1 в X-Signature (key = channel secret) + Date, Content-MD5, Content-Type |
POST https://amojo.kommo.com/v2/origin/custom/{scope_id}
X-Signature: hash_hmac('sha1', body, channel_secret)
Date: ...
Content-MD5: ...
Content-Type: application/json
Salesbot автоматизирует общение (приветствия, follow-up, nurturing) и расширяется кастомными виджетами. widget_request — главный хук для внешней логики (генерация контента, маршрутизация, вызов LLM).
Контракт: внешний эндпоинт обязан ответить за 2 секунды с HTTP 200, затем бот продолжается через return_url.
"locations": ["salesbot_designer"]; состав manifest.json + script.js + стилизация.onSalesbotDesignerSave (вход handler_code, params) возвращает JSON-код для бота с учётом exit-кодов.| Тариф | Цена (user/mo) | Активных лидов / юзер | Контактов+компаний / юзер |
|---|---|---|---|
| Base | $15 | 2 500 | 12 500 |
| Advanced | $25 | 5 000 | 25 000 |
| Pro most popular | $45 | 10 000 | 50 000 |
| Enterprise | custom | — | — |
Цены time-sensitive (пост-март-2026). Недавний ренейминг: бывший платный Enterprise стал Pro, сверху добавлен новый custom Enterprise. Перед цитированием — перепроверять kommo.com/buy/tariff.
Для постинга своего контента в VK/TG Kommo не подходит.
Задача контент-постинга остаётся за [[vk-tg-autoposting-landscape-2026]] / [[postiz]].
Long-lived token (1д–5лет, без refresh). Минимум возни, никакого OAuth-флоу.
Digital Pipeline webhooks. Помни про узкий набор событий и self-throttle; приёмник должен отвечать 100–299 за ~2с.
Батчи ≤50 сущностей, throttle под 7 rps, retry с бэкоффом на 429 (иначе 403 + IP-бан).
Chats API на amojo.kommo.com, подпись HMAC-SHA1. Отдельно от REST/OAuth.
Salesbot widget_request → твой эндпоинт (JWT, 2с/200) → продолжение по return_url.
Не через Kommo. Webhook-триггер → внешний постер (Postiz / планировщик).