Kommo + Dialpad: AI-транскрипты и записи звонков в карточку сделки
Dialpad — облачная телефония с нативным AI-слоем: транскрипция звонка в реальном времени, автоматическое выделение Action Items, sentiment analysis собеседника, Real-time Assist Cards (подсказки менеджеру во время разговора). В отличие от Aircall или RingCentral, Dialpad строит AI-слой поверх телефонии как core-feature, а не add-on. Без интеграции с Kommo данные о звонке живут в Dialpad. С интеграцией каждый завершённый звонок — Note с транскриптом, Action Items и ссылкой в карточке сделки.
Dialpad vs Aircall vs Gong для CRM-интеграции
| Параметр | Dialpad | Aircall | Gong |
|---|---|---|---|
| AI-транскрипция | Нативная, реальное время | Через интеграцию | Да, с задержкой |
| Action Items | Автоматические из звонка | Нет | Через highlights |
| Sentiment analysis | Да | Нет | Да |
| Real-time coaching | Да (Assist Cards) | Нет | Нет |
| Pricing | От $27/user/мес | От $30/user/мес | Enterprise |
| Подходит для | SMB-Enterprise с AI-фокусом | SMB-Enterprise телефония | Enterprise revenue intel |
Dialpad выбирают команды которым нужна телефония + AI-коучинг в одном продукте без enterprise-ценника Gong.
Что синхронизируется
Dialpad -> Kommo:
— call.ended -> Note с AI-саммари, длительностью, ссылкой на запись
— Action Items из звонка -> Задачи в Kommo
— Sentiment (если negative) -> задача: «Клиент выразил недовольство — follow-up»
— Обновить поле «Последний звонок» в сделке
Kommo -> Dialpad:
— Создание звонка из карточки сделки через Click-to-Call (нативная функция Dialpad)
Dialpad API: ключевые запросы
Base URL: https://dialpad.com/api/v2.
Аутентификация: OAuth 2.0 или API Key (для server-side интеграций).
API Key: Dialpad Admin -> API -> Create API Key.
import requests
from datetime import datetime, timezone, timedelta
DIALPAD_API_KEY = "your_api_key"
DIALPAD_BASE_URL = "https://dialpad.com/api/v2"
HEADERS = {
"Authorization": f"Bearer {DIALPAD_API_KEY}",
"Content-Type": "application/json",
}
def get_call(call_id: str) -> dict:
resp = requests.get(
f"{DIALPAD_BASE_URL}/calls/{call_id}",
headers=HEADERS,
)
resp.raise_for_status()
return resp.json()
def get_call_transcript(call_id: str) -> dict:
# Возвращает полный транскрипт с utterances
resp = requests.get(
f"{DIALPAD_BASE_URL}/calls/{call_id}/transcript",
headers=HEADERS,
)
resp.raise_for_status()
return resp.json()
def list_calls(started_after: str, started_before: str) -> list:
# Для polling: ISO 8601 timestamps
resp = requests.get(
f"{DIALPAD_BASE_URL}/calls",
headers=HEADERS,
params={"started_after": started_after, "started_before": started_before},
)
resp.raise_for_status()
return resp.json().get("items", [])
def build_call_note(call: dict, transcript: dict) -> str:
duration_sec = call.get("duration", 0)
duration_str = f"{duration_sec // 60} мин {duration_sec % 60} сек"
recording_url = call.get("recording_url", "")
started = call.get("date_started", "")[:10]
direction = "Входящий" if call.get("direction") == "inbound" else "Исходящий"
lines = [
f"Dialpad: {direction} звонок ({started}), {duration_str}",
]
if recording_url:
lines.append(f"Запись: {recording_url}")
# Action Items из AI
action_items = call.get("ai_summary", {}).get("action_items", [])
if action_items:
lines.append("\nAction Items (AI):")
for item in action_items[:5]:
lines.append(f" • {item}")
# Sentiment
sentiment = call.get("ai_summary", {}).get("sentiment", "")
if sentiment:
lines.append(f"\nSentiment: {sentiment}")
return "\n".join(lines)
@app.route("/webhooks/dialpad", methods=["POST"])
def dialpad_webhook():
payload = request.json
event = payload.get("event")
if event != "call.ended":
return "", 200
call_id = payload.get("call_id")
call = payload.get("call", {})
contact_ph = call.get("contact", {}).get("phone", "")
deal_id = find_deal_by_phone(contact_ph)
if not deal_id:
# Попробуем по email
contact_email = call.get("contact", {}).get("email", "")
if contact_email:
deal_id = find_deal_by_email(contact_email)
if not deal_id:
return "", 200
note = build_call_note(call, {})
create_kommo_note(deal_id, note)
# Action Items -> задачи
for item in call.get("ai_summary", {}).get("action_items", [])[:3]:
create_kommo_task(deal_id, f"Dialpad Action Item: {item}")
# Negative sentiment -> специальная задача
sentiment = call.get("ai_summary", {}).get("sentiment", "")
if sentiment == "negative":
create_kommo_task(deal_id,
"Dialpad: клиент выразил недовольство - срочный follow-up")
return "", 200
Action Items: как AI Dialpad создаёт задачи
Dialpad AI автоматически выделяет Action Items из разговора — фразы типа «я пришлю вам…», «позвоните мне…», «согласуем до пятницы…». Через интеграцию с Kommo эти AI-выделенные пункты становятся задачами в карточке сделки. Менеджер заканчивает звонок и видит задачи уже созданными — без ручного ввода.
Real-time Assist Cards — отдельная функция Dialpad: подсказки появляются в UI Dialpad во время звонка при упоминании ключевых слов (конкуренты, ценообразование, objections). В Kommo не передаются — это инструмент коучинга в реальном времени.
Реальный кейс
B2B SaaS (Canada, 12 менеджеров, 80–120 звонков/день, Kommo + Dialpad):
- До: после каждого звонка — 5 минут ввода итогов в CRM. 40% звонков без Notes вообще. Action Items теряются в памяти менеджера.
- После:
call.ended-> Note с AI-саммари + Action Items -> задачи в Kommo. Менеджер приходит на следующий звонок — в карточке полная история. Время ввода данных в CRM: 0 мин. - Дополнительно: sentiment analysis -> при negative-звонке Customer Success получает задачу в тот же день. Churn prevention: 3 клиента спасено за первый квартал через немедленный response.
Для кого актуально
- Команды с 20+ звонками в день где ввод данных в CRM — узкое место
- Компании которые уже используют Dialpad и хотят достроить CRM-слой
- Sales-команды где коучинг критичен — Dialpad Assist Cards + интеграция с CRM
- SMB-компании которым нужны AI-возможности Gong без enterprise-ценника
Часто задаваемые вопросы
Dialpad transcript — когда доступен после звонка?
AI-транскрипт в Dialpad готов в течение нескольких минут после завершения звонка (в отличие от Gong с задержкой 1–4 часа). Webhook call.ended срабатывает сразу, данные AI-саммари обычно включены в payload.
Dialpad поддерживает EU data residency?
Dialpad имеет EU-регион для хранения данных (звонки, транскрипты). Настраивается при создании аккаунта. Для GDPR-compliant хранения звонков с EU-клиентами — уточняйте при онбординге.
Можно ли настроить Real-time Assist Cards для Kommo-данных?
Напрямую нет — Assist Cards настраиваются в Dialpad под конкретные ключевые слова. Но можно построить: при упоминании ключевого слова -> Dialpad webhook -> обогатить данными из Kommo (тариф, история) -> отобразить в кастомном UI. Это enterprise-кастомизация.
Dialpad vs Aircall — какой выбрать для Kommo?
Aircall: более зрелая интеграция с популярными CRM, простая настройка. Dialpad: AI-транскрипция и Assist Cards нативно, единая платформа для телефонии + видео (Dialpad Meetings). Для команд где AI-коучинг важен — Dialpad. Для команд где нужна максимально простая и быстрая настройка — Aircall.
Итого
- Dialpad API:
Bearer {api_key},https://dialpad.com/api/v2 - Webhook
call.ended-> Note с AI-саммари + Action Items как задачи Kommo - AI-транскрипт готов в минутах после звонка (не часах)
- Sentiment analysis ->
negative-> приоритетная задача для CS-команды - Action Items выделяются AI автоматически — менеджер не вводит итоги вручную
Если вы используете Dialpad и Kommo и хотите видеть AI-саммари звонков в карточках сделок — опишите объём звонков и что важно фиксировать. Exceltic.dev настроит webhook и маппинг Action Items.