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