Автоматическое резюме переписки в Kommo строится на трёх API-вызовах: история чата через GET amojo.kommo.com/v2/origin/custom/{scope_id}/chats/{conversation_id}/history, суммаризация через POST api.openai.com/v1/chat/completions с моделью gpt-4o-mini, запись результата через POST /api/v4/leads/notes. Менеджер открывает карточку перед звонком и видит структурированный контекст - без прокрутки 60 сообщений.
Got-made виджеты для этого не существуют: Kommo Chats API работает через отдельный домен с HMAC-SHA1 аутентификацией, никак не пересекающейся с основным OAuth-токеном. No-code коннекторы типа Zapier или Make не поддерживают этот API-слой. Реализация требует кастомного микросервиса.
В проектах Exceltic.dev мы регулярно фиксируем одно и то же: менеджеры тратят 15-20 минут на изучение переписки перед каждым звонком. При 8 звонках в день это 2-2.5 часа ежедневно - время, которое уходит не на продажи, а на чтение чатов. Проблема удваивается при передаче сделки между менеджерами: принимающий тратит ещё 30-40 минут на погружение. Эта статья показывает, как закрыть задачу архитектурно - с конкретными эндпоинтами, примерами кода и цифрами.
Что реализуется
Авто-резюме переписки - структурированный текст, сгенерированный языковой моделью на основе истории чата и записанный в заметку и кастомное поле карточки сделки Kommo.
Интеграция решает конкретную задачу: менеджер не читает переписку перед звонком. Он видит готовый вывод - кто клиент, что обсуждали, какие возражения, согласованный следующий шаг.
Триггер: webhook или cron
Два рабочих варианта запуска:
- Webhook на завершение чата - Kommo отправляет событие при закрытии диалога. Реакция мгновенная, резюме появляется сразу. Подходит если менеджеры явно закрывают диалоги.
- Cron каждые N часов - сервис сам проверяет активные сделки и обновляет резюме по расписанию. Подходит большинству команд, где чаты не закрываются явно.
Kommo Chats API: получение истории
Эндпоинт истории чата:
GET https://amojo.kommo.com/v2/origin/custom/{scope_id}/chats/{conversation_id}/history?limit=50&offset=0
scope_id - идентификатор, объединяющий ID канала и ID аккаунта (формат: {channel_id}_{account_id}). Выдаётся при подключении канала. conversation_id - ID конкретного диалога, доступный из webhook-события или из карточки контакта.
Важно: аутентификация здесь принципиально отличается от основного REST API. Требуется HMAC-SHA1 подпись каждого запроса через заголовок X-Signature. Стандартный OAuth Bearer-токен Kommo здесь не работает. Подпись формируется из HTTP-метода, значений заголовков Date/Content-MD5/Content-type и пути запроса, подписывается channel secret.
Перед отправкой в OpenAI сообщения форматируются в текстовый блок:
def format_messages(messages):
lines = []
for msg in messages:
from datetime import datetime
ts = datetime.fromtimestamp(msg["timestamp"]).strftime("%d.%m %H:%M")
sender = msg.get("sender", {}).get("name", "unknown")
text = msg.get("text", "[media]")
lines.append(f"{ts} [{sender}]: {text}")
return "\n".join(lines)
OpenAI: модель, промпт, стоимость
Модель - gpt-4o-mini. Стоимость по состоянию на 2026 год: $0.15 за 1 млн входящих токенов и $0.60 за 1 млн исходящих. Один диалог из 50 сообщений (~2500 токенов) обходится в $0.0004-0.001 - дешевле одной десятой цента.
System prompt для структурированного вывода:
You are a CRM assistant. Summarize the following sales conversation in Russian.
Output format (strict):
- Client context: who the client is, their need (1-2 sentences)
- Key facts: budget, timeline, decision maker, objections (bullets)
- Open questions: what was promised or needs follow-up
- Sentiment: positive / neutral / negative
Be concise. Max 150 words total.
Вызов API:
import openai
response = openai.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": formatted_chat}
],
max_tokens=300,
temperature=0.3
)
summary = response.choices[0].message.content
temperature=0.3 снижает вариативность - резюме становится предсказуемым по структуре.
Запись результата в Kommo
Результат записывается двумя путями одновременно:
Заметка в сделке - через стандартный Kommo REST API:
payload = [
{
"entity_id": lead_id,
"note_type": "common",
"params": {
"text": f"AI-резюме ({datetime.now().strftime('%d.%m.%Y %H:%M')}):\n\n{summary}"
}
}
]
requests.post(
f"https://{subdomain}.kommo.com/api/v4/leads/notes",
headers={"Authorization": f"Bearer {access_token}"},
json=payload
)
Кастомное поле сделки - удобно для быстрого просмотра без открытия ленты заметок:
requests.patch(
f"https://{subdomain}.kommo.com/api/v4/leads/{lead_id}",
headers={"Authorization": f"Bearer {access_token}"},
json={
"custom_fields_values": [
{"field_id": AI_SUMMARY_FIELD_ID, "values": [{"value": summary}]}
]
}
)
Поле типа textarea создаётся один раз в настройках Kommo. В шаблоне карточки его выводят в верхней части - менеджер видит его сразу при открытии сделки.
Стоимость, идемпотентность, приватность
Стоимость. При 100 активных сделках с частотой обновления дважды в день - около $5-10 в месяц на весь аккаунт. Значительно меньше одного часа работы менеджера.
Идемпотентность. Сервис хранит хэш последнего обработанного msgid по каждой паре lead_id + conversation_id. Если новых сообщений не появилось - вызов OpenAI пропускается. Дублирующих заметок не создаётся.
Приватность. Текст переписки передаётся в OpenAI API. По политике OpenAI, данные из API-запросов не используются для обучения моделей. Для EU-команд с жёсткими требованиями к локализации данных - альтернатива self-hosted LLM (Llama 3 или Mistral через Ollama). Интерфейс Chat Completions API совместим, смена модели в коде занимает одну строку.
Пошаговая схема
Шаг 1. Создать private integration в developer panel Kommo. Получить client_id, client_secret для OAuth и channel_id + channel_secret для Chats API. Эти два набора credentials существуют независимо.
Шаг 2. Настроить OAuth 2.0 авторизацию: получить access_token и refresh_token. Access token живёт 24 часа - реализовать автоматическое обновление через refresh token при каждом запросе к основному API.
Шаг 3. Получить conversation_id для сделки. Он доступен через GET /api/v4/leads/{id}?with=chats - в ответе возвращается привязанный чат. Либо из webhook-payload при событии нового сообщения.
Шаг 4. Запросить историю через Chats API с HMAC-SHA1 подписью. Если сообщений более 50 - пагинация через offset. Для очень длинных переписок брать последние 40 сообщений + первые 5 (сохранить начальный контекст знакомства).
Шаг 5. Форматировать сообщения, отправить в OpenAI. Записать результат в заметку (POST /api/v4/leads/notes) и кастомное поле (PATCH /api/v4/leads/{id}).
Шаг 6. Логировать каждый запуск: lead_id, количество сообщений, токены OpenAI, время выполнения. При ошибке 403 от Chats API - проверить срок действия channel secret. При 429 от OpenAI - exponential backoff с базой 2 секунды.
Весь цикл занимает 3-8 секунд. Инфраструктура: один Docker-контейнер на Railway или VPS, PostgreSQL или Redis для хранения состояния.
Реальный кейс с цифрами
B2B-компания в Западной Европе, 8 менеджеров по продажам, около 120 активных сделок в Kommo. Основной канал - WhatsApp Business через Kommo Inbox. Средняя переписка по сделке - 55-70 сообщений за весь цикл.
До внедрения. Time-tracking в течение рабочей недели показал: в среднем 17 минут на подготовку к звонку по активной сделке, 30-40 минут на погружение при передаче сделки другому менеджеру.
После внедрения. Время подготовки к звонку - 2-3 минуты. Менеджер читает структурированный блок в верхнем поле карточки. Экономия по команде из 8 человек: около 95-110 часов в месяц.
Стоимость реализации: 3-4 рабочих дня разработки, VPS за $12/месяц, OpenAI API при данном объёме - около $8-10 в месяц. Инвестиция окупилась в первые две недели работы.
Побочный эффект: при смене менеджера принимающий выходит на первый звонок с клиентом уже подготовленным. Раньше это было точкой трения - клиент чувствовал, что ему снова объясняют то, что он уже рассказывал.
Для кого подходит
Интеграция оптимальна для B2B-команд на Kommo, где:
- 5+ менеджеров ведут активную переписку через Kommo Inbox (WhatsApp, Telegram, Instagram)
- Средняя переписка - 20+ сообщений до первого звонка или встречи
- Есть регулярная передача сделок между менеджерами
- Цикл сделки - от 2 недель (за это время накапливается история, которую трудно восстановить)
- Компания работает в нескольких часовых поясах: менеджер подхватывает диалог после ночи
Не подходит если вся коммуникация идёт через email вне Kommo, команда из 1-3 человек или сделки закрываются за 1-2 контакта.
Если вы используете другие AI-интеграции с Kommo - например автоматическую квалификацию лидов через OpenAI - авто-резюме переписки встраивается в тот же сервисный слой без дублирования авторизационной логики. Для команд с активной работой в мессенджерах также актуальна статья про Kommo и Telegram-бот в воронке.
Термин: Chats API - отдельный API-слой Kommo на домене amojo.kommo.com, предназначенный для работы с мессенджер-чатами. Использует HMAC-SHA1 аутентификацию вместо стандартного OAuth Bearer-токена.
Часто задаваемые вопросы
Как Kommo Chats API отличается от основного REST API?
Kommo имеет два независимых API. Основной REST API ({subdomain}.kommo.com/api/v4/) работает со сделками, контактами, заметками и использует OAuth 2.0 Bearer-токен. Chats API (amojo.kommo.com/v2/) - отдельный сервис для чатов и сообщений мессенджеров с HMAC-SHA1 аутентификацией: каждый запрос подписывается channel secret, а не access token. Это означает две разные системы аутентификации в одном микросервисе - их нельзя использовать взаимозаменяемо. Именно поэтому Zapier и Make не умеют работать с историей чатов: их Kommo-коннектор поддерживает только основной REST API.
Можно ли настроить авто-резюме без разработки через Zapier или Make?
Нет. Kommo Chats API недоступен через стандартные no-code коннекторы. Помимо аутентификации, проблема ещё и в размере данных: Zapier имеет ограничение на размер payload в 10 MB и не умеет удобно делать пагинацию через offset для длинных переписок. Минимальный вариант без full-stack разработки - Python-скрипт на cron в облачном окружении (например Railway или Render). Это занимает 1-2 дня работы разработчика вместо 3-4 дней для полноценного сервиса.
Насколько точно gpt-4o-mini суммаризирует переписку на русском?
Для структурированного извлечения фактов из переписки gpt-4o-mini показывает качество, достаточное для практического применения. Модель хорошо обрабатывает русский язык, извлекает имена, суммы, даты, возражения. Слабые места: смешанный сленг и аббревиатуры из конкретных отраслей (например строительство или медицина). В таких случаях помогает дополнить system prompt примерами терминологии. Для критически важных сделок резюме стоит рассматривать как вспомогательный инструмент, не заменяющий полное прочтение при необходимости.
Что происходит с данными переписки в OpenAI?
По политике OpenAI, данные из API-запросов не используются для обучения моделей по умолчанию - это задокументировано в их Data Processing Agreement. Данные временно хранятся до 30 дней для целей безопасности и логирования. Если переписка содержит персональные данные, подпадающие под GDPR, убедитесь что ваша privacy policy покрывает обработку данных AI-сервисами. Для максимальной приватности - self-hosted LLM (Mistral 7B через Ollama): интерфейс совместим с OpenAI Chat Completions API, данные не покидают вашу инфраструктуру.
Можно ли хранить резюме в custom field вместо заметки?
Можно, и это часто удобнее для оперативного просмотра. Поле типа textarea в верхней части шаблона карточки видно сразу при открытии сделки - без прокрутки ленты событий. Минус: поле перезаписывается при каждом обновлении, история резюме не сохраняется. Оптимальная схема: заметки для полной истории (каждое новое резюме - новая заметка) плюс кастомное поле с последним резюме для быстрого доступа. Тогда менеджер видит актуальный контекст вверху карточки и может при необходимости посмотреть историю изменений в ленте.
Итог
Авто-резюме переписки в Kommo через ChatGPT - это решённая инженерная задача с предсказуемым ROI.
Ключевые параметры реализации:
- Стек: Kommo Chats API (
amojo.kommo.com) -> Python/Node.js -> OpenAIgpt-4o-mini-> Kommo Notes API + Custom Fields - Стоимость: $0.0004-0.001 за одно резюме, $5-15/месяц при среднем объёме
- Экономия: 90-120 минут рабочего времени на менеджера в день при 8+ менеджерах
- Срок внедрения: 3-5 рабочих дней
- Две системы аутентификации в одном сервисе: HMAC-SHA1 для Chats API и OAuth Bearer для Notes API
Документация: Kommo Chats API - история чатов, ценообразование OpenAI API.
Если у вас команда на Kommo с активными чатами и менеджеры тратят время на изучение истории перед звонками - опишите задачу команде Exceltic.dev. Разберём архитектуру под ваш стек: тип триггера, объём переписки, требования к приватности данных и необходимость кастомной обработки по отраслям.