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

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

Обзор

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

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

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

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

Problem with the current solution

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

Questions

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

  • person milosz    schedule 30.01.2018    source источник


    Ответы (2)


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

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

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

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

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

    Чтобы создать голосовую почту, вы можете объединить <Say> и _ 6_. Убедитесь, что вы установили для recordingStatusCallback атрибута значение URL-адрес в вашем приложении, вы можете затем использовать результаты, чтобы отправить ссылку на запись голосовой почты по электронной почте.

    Сообщите мне, поможет ли это вообще.

    person philnash    schedule 31.01.2018
    comment
    Спасибо! Я попробую и свяжусь с вами как можно скорее! - person milosz; 31.01.2018
    comment
    Привет, филнаш! спасибо, что уделили время, чтобы ответить на мои вопросы. Ниже мой ответ: - person milosz; 08.02.2018

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

    person milosz    schedule 08.02.2018
    comment
    1. Если это не работает в консоли, я рекомендую вам разработать или найти кого-нибудь для разработки, как использовать API, чтобы установить это за вас. Я также рекомендую создать заявку в службу поддержки, чтобы добавить ее в консоль. 2. Если вы обрабатываете обратный вызов назначения с помощью веб-перехватчика, тогда атрибуты задачи отправляются в обратном вызове как TaskAttributes параметр. 3. Это не совсем работа для консоли, вам нужно настроить нового worker и TwiML для веб-перехватчика. - person philnash; 09.02.2018