Голосовой ИИ / article

Автоматический обзвон клиентов с ИИ: как управлять кампанией

Настройте очередь контактов, состояния попыток, повторы при недозвоне и остановку после результата. Методика помогает проверить кампанию и восстановить её после сбоя без лишних вызовов.

ЕСЛИ КОРОТКО

Автоматический обзвон клиентов с ИИ требует управления всем списком контактов, а не только сценарием разговора. Разберите состояния каждого контакта и звонка, правила параллельной очереди, повтор при недозвоне, обработку ответного вызова, остановку после результата и безопасный перезапуск кампании после сбоя.

Управление ИИ-обзвоном: жизненный цикл контактаОткрыть схему крупнее ↗

Автоматический обзвон клиентов с ИИ становится управляемым, когда система хранит состояние каждого контакта и каждой попытки отдельно. До запуска определите, кого можно включить в список по правилам вашей компании, какой результат закрывает задачу, когда допустим повтор и какие события останавливают дальнейшие вызовы. Сценарий разговора описывает отдельный звонок; этот материал — про очередь контактов во времени.

Подготовьте список и идентификатор кампании

Сохраните отдельную запись кампании: цель, период запуска, сценарий, правила попыток, ответственного и источник списка. Для каждого контакта храните устойчивый ID, телефон в нормализованном виде, статус, время последней попытки, запланированный следующий шаг и итог разговора. Если один номер есть у нескольких контактов, предусмотрьте проверку дублей до постановки в очередь.

До старта проверьте, что в список попали только контакты, соответствующие выбранной задаче и внутренним правилам компании. Исключите записи без нужного номера, завершённые обращения и тех, кому уже не требуется звонок. Не копируйте базу в несколько независимых очередей без единого статуса: одна копия может не знать, что вопрос уже решён в другой.

Сначала проверьте систему на небольшом тестовом списке. Сверьте формат номера, порядок приветствия, реакцию на просьбу остановить разговор, распознавание результата и запись события в CRM. Объём параллельных звонков настройте по ограничениям используемой телефонии и системы; универсального безопасного значения для разных подключений нет.

Разделите статусы контакта и попытки

Храните состояние контакта отдельно от результата конкретного звонка. Контакт может быть готов к вызову, стоять в очереди, иметь выполняющуюся попытку, ожидать подтверждения результата, иметь запланированный повтор, ожидать сотрудника, быть завершённым или остановленным. У каждой попытки храните свой исход: разговор завершён, ответа не было, линия занята, вызов завершился подтверждённой ошибкой или итог пока неизвестен.

Не приравнивайте команду на вызов к состоявшемуся разговору. В документации Azure Communication Services исходящий вызов создаётся запросом, а событие подключения приходит отдельно; у конкретного поставщика телефонии события и названия будут отличаться. Это иллюстрация событийной архитектуры, а не готовая настройка для любой АТС. Посмотрите руководство Microsoft по исходящему вызову Call Automation.

Записывайте ID кампании, контакта, попытки и вызова, чтобы связать действие с результатом. Повторно пришедшее уведомление не должно создавать новую попытку или возвращать закрытый контакт в активную очередь. Проверьте это правило на выбранной телефонии и CRM.

Задайте правила повтора и остановки

До запуска задайте правила для каждого списка контактов: допустимые дни и местное время вызова, исключённые даты, минимальный интервал между попытками и предел попыток. Уточните эти значения по правилам компании и применимым к кампании требованиям; универсального расписания для всех баз нет.

Для каждого контакта храните его часовой пояс. Не подменяйте его часовым поясом сервера или кампании. Если часовой пояс неизвестен, не выпускайте попытку, пока его не уточнят или пока ответственный не задаст подтверждённое правило для этого контакта. Время следующей попытки рассчитывайте по местному времени контакта. Если интервал истекает за пределами разрешённого окна или приходится на исключённую дату, перенесите попытку на ближайшее следующее разрешённое окно.

Непосредственно перед каждым вызовом повторно проверьте кампанию и контакт: кампания активна, срок попытки наступил, местное время контакта находится внутри допустимого окна, дата не исключена, контакт не завершён и не остановлен, нет активного вызова, лимит попыток не исчерпан и доступен заданный предел параллельных звонков. Если проверка окна не пройдена, вызов не выпускайте: сохраните новое время следующей попытки. Эти проверки выполняйте и для первого звонка, и для каждого повтора.

Таблица задаёт переходы контакта после события. Типовой подтверждённый результат — например, вопрос решён или заказ оформлен в пределах сценария — закрывается автоматически. Передавайте контекст сотруднику, только если клиент попросил человека, случай требует решения или выходит за утверждённые правила. Сам факт состоявшегося разговора не означает передачу.

Текущее состояниеСобытиеДействиеНовое состояниеПовтор исходящего вызова
Готов или повтор запланированНаступил срок; проверка окна и остальных условий пройденаСоздать ID попытки, зафиксировать вызов и выдать его один разПопытка выполняетсяНет, пока текущая попытка не закрыта
Попытка выполняетсяПодтверждён типовой итог: вопрос решён или заказ оформленСохранить итог и отменить будущие попыткиЗавершёнНет
Попытка выполняетсяКлиент просит сотрудника, сценарий не позволяет решить запрос или требуется согласование исключенияСохранить контекст, поставить задачу и приостановить исходящие вызовыОжидает сотрудникаНет до решения задачи и разрешённого возобновления
Попытка выполняется или повтор запланированКлиент просит прекратить звонкиЗаписать отказ и отменить все запланированные попыткиОстановленНет
Попытка выполняетсяПодтверждены занято, недозвон или ошибка вызоваЕсли правила кампании разрешают и лимит не исчерпан, назначить следующий срок; иначе закрыть попытки по лимитуПовтор запланирован или остановлен по лимитуТолько по правилам кампании и в разрешённом окне
Попытка выполняетсяНет итогового события, событие задержано или данные противоречат друг другуПриостановить повтор и сверить ID вызова у поставщика и в CRMРезультат неизвестенНет до подтверждения исхода
Результат неизвестенПоставщик подтвердил итог или то, что вызов не был начатПрименить переход для подтверждённого исхода; если вызов не был начат, вернуть контакт в очередь после проверки и устранения дубля; при неясном результате оставить на паузеСостояние по подтверждённому исходу, готов или результат неизвестенТолько если вызов подтверждённо не начался либо неуспешный исход позволяет повтор по правилам
Повтор запланированКлиент сам позвонил, и звонок связан с контактом кампанииОтменить исходящий повтор и зарегистрировать входящий разговорВходящий разговорИсходящий вызов приостановлен до результата входящего разговора
Входящий разговорВопрос решён по типовому сценариюСохранить результат и закрыть контактЗавершёнНет
Входящий разговорКлиент просит сотрудника или требуется решение вне сценарияСохранить контекст и поставить задачу; исходящие попытки оставить на паузеОжидает сотрудникаНет до решения задачи и разрешённого возобновления
Попытка выполнялась при сбое процессаКампания восстановленаОстановить новые вызовы, сверить каждый активный ID попытки с телефонией и CRM; неизвестный итог не считать недозвономПодтверждённый исход или результат неизвестенНет до сверки; затем применить правила выше

Ограничьте очередь и восстановление после сбоя

Очередь должна выпускать только попытки, срок которых наступил и которые прошли проверку часового пояса, окна вызова, статуса контакта и предела параллельных звонков. Перед выдачей сохраните состояние и ID попытки так, чтобы повторный запуск задания не создавал второй звонок.

После сбоя остановите новые вызовы и сохраните состояния уже начатых. Сверьте незавершённые попытки с поставщиком телефонии и CRM по ID вызова. Подтверждённый итог обработайте по таблице переходов; если итог пока неизвестен, оставьте контакт на паузе. Возвращайте в очередь только те записи, для которых повтор подтверждён правилами кампании и перенесён в допустимое местное окно. Не сбрасывайте исходный список в состояние «готов».

Документация Microsoft по обработке событий Call Automation отмечает, что последующие изменения состояния вызова приходят отдельными callback-событиями; обработчик связывает их с конкретным звонком. Это платформенный пример, но он показывает, почему результат попытки следует подтверждать событием и журналом, а не фактом запуска. Подробности приведены в руководстве Microsoft по обработке событий вызова.

Проверьте сценарии до старта

  • Типовой подтверждённый результат закрывает контакт автоматически и отменяет повторы.
  • Недозвон создаёт повтор только при разрешённом лимите и назначает его на допустимое местное окно.
  • Перед каждой попыткой проверяются часовой пояс контакта, дата и окно вызова.
  • Запрос сотрудника или исключение ставит задачу и приостанавливает исходящие попытки; типовой исход не уходит человеку без причины.
  • Отказ клиента отменяет все будущие попытки.
  • Ответный звонок связывается с кампанией и отменяет исходящий повтор на время обработки.
  • Задержанное или повторное событие не создаёт лишний звонок; неизвестный итог не считается недозвоном.
  • После сбоя завершённые контакты не возвращаются в очередь, а неизвестные попытки сверяются до повтора.

Ограничения и следующий шаг

Телефония может задержать событие, неверно классифицировать итог или потерять связь с CRM. Пока исход вызова неизвестен, не делайте предположений о результате и не отправляйте повтор автоматически. Подключение телефонии и поддерживаемые события нужно проверить в выбранном проекте: документация Microsoft предупреждает о текущих изменениях в Azure Communication Services, поэтому конкретные версии и API следует сверять перед реализацией.

Для сценария первого разговора и подготовки данных используйте отдельный материал об обзвоне заявок с ИИ; связь событий с карточкой клиента рассмотрена в статье об интеграции ИИ и CRM. На странице внедрения можно обсудить исходный список, правила очереди, исходы попытки и проверку перезапуска до запуска кампании.

Частые вопросы

Нужно ли повторять звонок, если система не получила ответ от телефонии?

Сначала проверьте состояние попытки у поставщика связи и в журнале событий. Отсутствие callback не подтверждает, что вызов не состоялся, поэтому автоматический повтор может создать дубликат.

Что делать с контактом после успешного разговора?

Сохраните итог и следующий шаг. Если вопрос решён, отмените будущие попытки; если требуется сотрудник, передайте контекст и приостановите контакт до обработки.

Как перезапустить кампанию после сбоя?

Сверьте активные попытки, результаты телефонии и последние записи CRM. Затем возобновляйте очередь по сохранённым статусам, не сбрасывая завершённые контакты в начало.

Обсудим внедрение

Расскажите о бизнесе и обращениях, которые хотите передать ИИ. Начнём с одного процесса.