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

$dialer.redial

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

подсказка
Метод $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ЧислоКоличество попыток дозвониться в новой серии.
Максимальное значение — 5. Если указать значение больше, то будет 5 попыток дозвониться.
1
dialerPriorityЧислоПриоритет номера телефона.2
предупреждение
Передаваемый объект обязательно должен содержать поля startDateTime или allowedTime. Если прочие поля не указаны, их значения будут взяты из параметров обзвона.
подсказка
Формат значений полей allowedDays и allowedTime полностью аналогичен одноименным полям в теле запроса к методу Calls API POST /addPhones.

Ограничения

  1. В одном диалоге можно запланировать повторную серию попыток дозвониться только один раз. Последующие вызовы $dialer.redial в этом диалоге будут проигнорированы.

  2. Число повторных попыток дозвониться на каждый номер в рамках одного обзвона ограничено значением параметра Максимальное количество, указанного при создании обзвона.

Использование в сценарии

Рассмотрим пример, как можно обработать просьбу перезвонить через час:

state: CallbackInAnHour
q!: * перезвони* * через час* *
a: Хорошо! Я перезвоню вам через час.
script:
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 минут
});
$dialer.hangUp();
подсказка
Вы можете извлекать из запроса произвольное время при помощи сущностей Duckling, а также использовать слот-филлинг для обязательного уточнения у клиента времени повторного звонка.