$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, а также использовать слот-филлинг для обязательного уточнения у клиента времени повторного звонка.