Разработка AI-системы транскрибации и суммаризации звонков в CRM
Система автоматически транскрибирует звонок, создаёт краткое резюме и прикрепляет к карточке клиента в CRM. Оператор больше не тратит 3–5 минут на оформление итогов звонка вручную.
Pipeline транскрибация → резюме → CRM
async def process_completed_call(call_event: dict):
"""Обрабатываем завершённый звонок от до до конца"""
call_id = call_event["call_id"]
recording_url = call_event["recording_url"]
crm_contact_id = call_event.get("crm_contact_id")
# 1. Скачиваем запись
audio = await download_recording(recording_url)
# 2. Транскрибируем с диаризацией
transcript = await transcribe_with_diarization(audio)
# 3. Генерируем резюме
summary = await generate_call_summary(transcript)
# 4. Обновляем CRM
if crm_contact_id:
await crm.update_contact(
contact_id=crm_contact_id,
data={
"last_call_summary": summary["short"],
"last_call_transcript": transcript["full_text"],
"last_call_outcomes": summary["outcomes"],
"next_action": summary["next_action"],
"call_sentiment": summary["sentiment"]
}
)
await crm.log_activity(
contact_id=crm_contact_id,
type="call",
description=summary["short"],
duration=transcript["duration"]
)
return {"call_id": call_id, "summary": summary}
Генерация резюме звонка
SUMMARY_PROMPT = """Создай структурированное резюме звонка:
1. Краткое резюме (2-3 предложения)
2. Причина обращения
3. Что было обсуждено (ключевые моменты)
4. Результат/решение
5. Следующее действие (если есть): что, кто, когда
6. Тональность клиента: позитивная/нейтральная/негативная
Формат: JSON"""
async def generate_call_summary(transcript: dict) -> dict:
dialog = "\n".join(
f"{t['speaker']}: {t['text']}"
for t in transcript["turns"]
)
response = await client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": SUMMARY_PROMPT},
{"role": "user", "content": dialog[:5000]}
],
response_format={"type": "json_object"}
)
data = json.loads(response.choices[0].message.content)
return {
"short": data.get("brief_summary", ""),
"reason": data.get("reason", ""),
"outcomes": data.get("key_points", []),
"next_action": data.get("next_action", ""),
"sentiment": data.get("sentiment", "neutral")
}
Интеграция с популярными CRM
# Bitrix24
async def update_bitrix24(contact_id: str, summary: dict):
await requests.post(
f"{BITRIX_URL}/crm.contact.update",
json={"id": contact_id, "fields": {"COMMENTS": summary["short"]}}
)
# amoCRM
async def update_amocrm(contact_id: str, summary: dict):
await amocrm_api.leads.add_note(
contact_id=contact_id,
text=summary["short"]
)
# Salesforce
async def update_salesforce(contact_id: str, summary: dict):
sf.Contact.update(contact_id, {
"Description": summary["short"],
"Last_Call_Summary__c": summary["short"]
})
Сроки: pipeline с одной CRM — 2–3 недели. Мультиплатформенная система — 1.5 месяца.







