Реализация голосового AI-бота для холодных звонков
Голосовой бот для холодных звонков квалифицирует лидов в масштабе: делает 1000+ звонков одновременно, не устаёт, работает по скрипту без отклонений. Применяется для первичной квалификации, назначения встреч, приглашений на вебинары.
Ключевые метрики кампании
- Contact Rate: % дозвонов (цель: 30–50%)
- Qualification Rate: % квалифицированных лидов из дозвонов (цель: 15–25%)
- Transfer Rate: % переданных операторам (цель: 10–20%)
- Cost per Qualified Lead: стоимость квалифицированного лида
Сценарий холодного звонка
COLD_CALL_SCRIPT = {
"hook": (
"Здравствуйте! Это {company_name}. "
"Мы помогаем компаниям в вашей отрасли [конкретная выгода]. "
"У вас есть буквально 30 секунд?"
),
"qualification_questions": [
"Сколько у вас сотрудников в отделе [X]?",
"Вы сейчас используете какие-то системы для [задача]?",
"Кто принимает решения о [покупке/внедрении] в вашей компании?"
],
"offer": (
"Исходя из вашего ответа, у нас есть решение, "
"которое поможет [конкретная выгода]. "
"Хотите, чтобы наш эксперт позвонил вам для короткой демонстрации?"
)
}
NLU для возражений
OBJECTION_HANDLERS = {
"not_interested": {
"detect": ["не интересует", "не нужно", "не актуально"],
"response": "Понимаю. А что было бы интересно в контексте [проблема]?"
},
"busy": {
"detect": ["занят", "не время", "перезвоните"],
"response": "Конечно! Когда лучше перезвонить — сегодня вечером или завтра утром?"
},
"we_have_solution": {
"detect": ["уже есть", "работаем с", "другой поставщик"],
"response": "Отлично! Многие клиенты используют нас параллельно с [конкурент] для [уникальная ценность]."
},
"send_info": {
"detect": ["пришлите", "отправьте", "на почту"],
"response": "С удовольствием! На какую почту отправить материалы?"
}
}
async def handle_objection(text: str) -> tuple[str, str]:
text_lower = text.lower()
for objection_type, handler in OBJECTION_HANDLERS.items():
if any(phrase in text_lower for phrase in handler["detect"]):
return objection_type, handler["response"]
return "unknown", await generate_response_with_llm(text)
Compliance и opt-out
OPT_OUT_PHRASES = ["уберите из базы", "не звоните", "внесите в стоп-лист",
"надоели", "не беспокойте"]
def detect_opt_out(text: str) -> bool:
return any(phrase in text.lower() for phrase in OPT_OUT_PHRASES)
async def process_opt_out(phone: str):
await blacklist.add(phone)
await crm.update_contact(phone, {"do_not_call": True})
Сроки: MVP с базовым сценарием — 3–4 недели. С обработкой возражений и CRM-интеграцией — 2 месяца.







