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

$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.

Ограничения

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