Элегантная обработка трех очередей вызовов в twilio

Мне бы хотелось получить несколько советов по настройке twilio для решения проблемы, которую я пытаюсь решить.

обзор

Клиент может позвонить по нашему номеру twilio и выполнить один из трех случаев: - является нашим клиентом и имеет вопрос - должен быть переведен в очередь CC (2ppl), - хочет купить наши услуги - должен быть переведен в очередь Sales (7ppl), - имеет какой-то другой случай - должен быть перенесен в другую очередь, давайте назовем его Другой (1 человек)

Текущее решение

Клиент звонит:

  • приветственное сообщение
  • мы собираем его цифру ввода
  • поставить в очередь вызов в соответствующую очередь
  • назначить задачу доступному работнику с инструкцией конференции

Проблема с текущим решением

Если в офисе нет работников, которые могли бы справиться с вызовом, клиент будет ждать вечно, пока он сам не положит трубку. Ответивший на вопрос wroker не знает номер телефона клиента, поэтому он не может при необходимости разобраться.

Вопросы

  • После того, как клиент выбирает очередь, я хотел бы проверить, есть ли у меня работники в офисе в этой очереди (не в автономном режиме). Если все в автономном режиме, перенаправьте на голосовую почту, и на указанный адрес электронной почты будет отправлено электронное письмо с номером телефона вызывающего абонента и адресом записи голосовой почты.
  • После того, как работник заберет (примет бронирование), отправьте ему сообщение с номером телефона клиента.
  • Если ни один работник не отвечает в течение определенного времени (например, 5 минут), вызов перенаправляется на голосовую почту, и на указанный адрес электронной почты отправляется электронное письмо с номером телефона вызывающего абонента и URL-адресом записи голосовой почты.
  • 2 ответа

    Twilio разработчик евангелист здесь.

    Ответы по порядку, в частях 1 и 3 нужно поговорить о голосовой почте, о которой я расскажу внизу:

    1. Вы можете использовать skip_if выражение для пропуска очереди, если нет доступных рабочих.
    2. Я предполагаю, что это использует reservation.conference инструкция в JavaScript SDK. Вы можете проверить reservation объект на этом этапе тоже, проверить reservation.task.attributes для всех атрибутов задачи, которые должны включать атрибуты вызова. Вы можете использовать это, чтобы показать своего агента на экране или отправить им сообщение другим способом.
    3. Для этого вы должны установить время ожидания в вашей очереди. Когда истекает время ожидания, задача должна перейти в следующую очередь в рабочем процессе.

    Голосовая почта

    Для частей 1 и 3 мы извлекаем задачу из одной очереди, но она должна идти куда-то еще, чтобы иметь дело с ней. Вы хотите отправлять вызовы на голосовую почту, для которой не требуется агент, чтобы с ней справиться. В настоящее время лучший способ справиться с этим - направить задачу в очередь, в которой есть один бот-работник. Работа работника заключается в том, чтобы перенаправлять входящие бронирования прямо в какой-то TwiML. Вы достигаете этого, мгновенно отвечая на обратный вызов присваивания инструкцией перенаправления.

    Для создания голосовой почты вы можете комбинировать <Say> а также <Record>, Убедитесь, что вы установили recordingStatusCallback Присвойте URL-адрес в своем приложении, затем вы можете использовать результаты, чтобы отправить ссылку на запись голосовой почты.

    Дайте мне знать, если это поможет.

    Спасибо, что пришло время ответить на мои вопросы. Ниже, пожалуйста, найдите мой ответ: 1. Кажется, что это не работает в консоли - я нахожу эту информацию в документации "skip_if не может быть настроен через консоль - она ​​должна быть опубликована в API рабочего процесса". Поскольку я не использую API рабочего процесса, это, вероятно, не решение для меня. 2. Я использую этот учебник: https://www.twilio.com/docs/quickstart/php/taskrouter/twiml-dequeue-call но вместо использования инструкции dequeue я использую конференцию. Я не понимаю, как "проверить бронирование" - может быть, у вас есть учебник по этому вопросу? При поиске других решений я придумал функцию обратного вызова событий рабочей области, но я не уверен, сработает ли это. 3) Как я могу сделать это в консоли?

    Другие вопросы по тегам