Перейти к основному содержимому

Как запланировать повторный звонок

Во время разговора бота с клиентом может потребоваться запланировать новый звонок — например, если клиент просит перезвонить ему позже. Это можно предусмотреть в сценарии для обзвона:

  1. Добавьте интент, распознающий просьбу перезвонить.
  2. Добавьте интенты, чтобы уточнить у клиента время, в которое ему будет удобно принять звонок.
  3. Добавьте блок Код, чтобы бот перезвонил клиенту в указанное время.
предупреждение
В одном диалоге можно запланировать повторную серию попыток дозвониться только один раз.

Распознавание просьбы перезвонить

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

  2. Нажмите Выбрать готовый интент и выберите Запрос на повторный звонок. При помощи этого интента бот будет распознавать просьбы клиентов перезвонить. ? > Перечень шаблонов фраз в интенте Запрос на повторный звонок

  3. При желании дополните интент своими шаблонами или примерами фраз и сохраните блок.

    У вас получится такой экран:

    Интент Запрос на повторный звонок

Уточнение времени повторного звонка

  1. От интента Запрос на повторный звонок создайте новый экран и добавьте на него блок Синтез речи с текстом Когда вам перезвонить?.

  2. На тот же экран добавьте блок Интенты.

  3. Добавьте шаблоны фраз, при помощи которых бот будет распознавать ответ клиента. Например, чтобы бот распознал просьбу перезвонить через час, добавьте фразу * через час* *.

  4. Нажмите напротив фразы. Иконка изменится на  — это сделает фразу шаблоном.

    Блок Интенты

  5. Сохраните блок.

    Участок сценария

Настройка повторного звонка

Чтобы запланировать повторный звонок, бот должен выполнить определенный JavaScript-код.

  1. От шаблона * через час* * создайте новый экран с блоком Код.

  2. Бот будет использовать метод $dialer.redial. Этот метод позволяет запланировать новую серию попыток дозвониться до абонента, а также переопределить политику звонков на данный номер из сценария.

    Чтобы бот перезвонил клиенту через час, вставьте в блок следующий код:

    var now = new Date();
    $dialer.redial({
    startDateTime: new Date(now.getTime() + 60 * 60000), // Повторный звонок через час
    finishDateTime: new Date(now.getTime() + 75 * 60000), // В течение 15 минут
    maxAttempts: 2, // 2 попытки дозвониться
    retryIntervalInMinutes: 5 // Пауза между попытками 5 минут
    });

    Блок Код

    В данном случае бот будет звонить клиенту через 60 минут. Бот сделает две попытки дозвониться с паузой не менее 5 минут между попытками и не будет звонить позднее, чем через 75 минут от текущего момента, — то есть будет звонить в течение 15 минут.

    Вы можете отредактировать параметры объекта для метода $dialer.redial самостоятельно.

  3. Чтобы бот попрощался с клиентом, добавьте на экран блок Переход и создайте от него новый экран с блоком Синтез речи: Я перезвоню вам позже. До свидания!.

  4. На тот же экран добавьте блок Завершение сценария.

В итоге у вас получится такой участок сценария:

Сценарий

подсказка
Чтобы осуществлять гибкую настройку повторного звонка, воспользуйтесь другим нашим продуктом — JAICP. Боты JAICP могут использовать специальные сущности, чтобы извлекать из ответа клиента произвольное время для повторного звонка.

Параметры

Метод $dialer.redial принимает в качестве аргумента объект со следующими полями:

ПолеТипОписаниеПример
startDateTimeДатаНачальное время звонка. Звонок будет совершен в интервале от startDateTime до finishDateTime.new Date("2020-03-23T00:00:00")
finishDateTimeДатаКонечное время звонка. После finishDateTime звонки совершаться не будут.new Date("2020-03-23T00:00:00")
allowedDaysМассивДни недели, в которые звонок может быть совершен.["mon", "wed", "fri"]
allowedTimeОбъектВременные интервалы для каждого дня недели, в которые может быть совершен звонок.{"default": [{"localTimeFrom": "10:00", "localTimeTo": "18:00"}]}
retryIntervalInMinutesЧислоПауза между попытками дозвониться в минутах.120
maxAttemptsЧислоКоличество попыток дозвониться в новой серии.1
dialerPriorityЧислоПриоритет номера телефона.2
предупреждение
Передаваемый объект обязательно должен содержать поля startDateTime или allowedTime. Если прочие поля не указаны, их значения будут взяты из настроек обзвона.
подсказка
Формат значений полей allowedDays и allowedTime полностью аналогичен одноименным полям в теле запроса к методу POST /addPhones API для звонков.