Настройка передачи в любой общий центр взаимодействия

Copilot Studio позволяет бесшовно и контекстно передавать разговоры агентов человеческому агенту через центр взаимодействия.

С помощью некоторых пользовательских разработок вы можете настроить свой агент на передачу разговоров в любой центр взаимодействия.

Предварительные требования

Важно

В этой статье требуется определённые навыки разработки программного обеспечения. Шаги в этой статье предназначены для опытных IT-специалистов с глубоким пониманием инструментов для разработчиков, утилит и интегрированных сред разработки (IDE).

Обзор

Скриншот универсального адаптерного потока данных для передачи данных на хаб взаимодействия.

Полная передача в центр взаимодействия следует этой схеме:

  1. Клиент взаимодействует с холстом чата центра взаимодействия.
  2. Центр взаимодействия направляет входящий чат через встроенные возможности маршрутизации чата агенту.
  3. Пользовательский адаптер передает входящие сообщения чата из центра взаимодействия в агент Copilot Studio.
  4. После того как клиент запускает передачу, Copilot Studio начинает передачу с полным разговорным контекстом.
  5. Пользовательский адаптер перехватывает сообщение о передаче обслуживания, анализирует полный контекст диалога и плавно перенаправляет эскалированный диалог квалифицированному агенту-человеку в зависимости от доступности.
  6. Чат клиента легко и контекстно передается человеку-агенту, который может возобновить разговор.

Чтобы передать разговор агенту-человеку, вам нужно создать специальный адаптер для передачи.

Создание пользовательского адаптера передачи обслуживания

Адаптер соединяет разговоры с центром обслуживания вашего агента, передавая и преобразовывая сообщения между клиентами, агентами и агентами-людьми.

Самые популярные центры взаимодействия с агентами предоставляют комплекты для разработки программного обеспечения (SDK) или публично документируют свои API, что позволяет создавать такие адаптеры.

Этот документ не охватывает, что может содержать пользовательский адаптер. Однако следующий пример сообщения о передаче, основанный на том, что Copilot Studio генерируется в рамках нашей стандартной передачи агенту-человеку, может помочь вам начать работу.

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

Пример полезной нагрузки сообщения о передаче

В настоящее время Handoff поддерживает только Direct Line. Для получения дополнительной информации см. взаимодействие с агентом по сравнению с Direct Line. При передаче адаптер вызывает событие handoff.initiate и отправляет его.

Вы можете увидеть полный пример действия сообщения передачи на нашем сайте GitHub.

Извлечение контекста из сообщения о передаче

Чтобы использовать разговорный контекст, анализируйте handoff.initiate активность события. Следующий фрагмент кода анализирует действие события handoff.initiate и извлекает контекст разговора. См. полный пример кода на GitHub.

public void InitiateHandoff(string botresponseJson)
{
    BotResponse response = JsonConvert.DeserializeObject<BotResponse>(botresponseJson);

    // Look for Handoff Initiate Activity. This indicates that conversation needs to be handed off to agent
    Activity handoffInitiateActivity = response.Activities.ToList().FirstOrDefault(
        item => string.Equals(item.Type, ActivityTypes.Event, System.StringComparison.Ordinal)
        && string.Equals(item.Name, HandoffInitiateActivityName, System.StringComparison.Ordinal));

    if (handoffInitiateActivity != null)
    {
        // Read transcript from attachment
        if (handoffInitiateActivity.Attachments?.Any() == true)
        {
            Attachment transcriptAttachment = handoffInitiateActivity.Attachments.FirstOrDefault(a => string.Equals(a.Name.ToLowerInvariant(), TranscriptAttachmentName, System.StringComparison.Ordinal));
            if (transcriptAttachment != null)
            {
                Transcript transcript = JsonConvert.DeserializeObject<Transcript>(transcriptAttachment.Content.ToString());
            }
        }

        // Read handoff context
        HandoffContext context = JsonConvert.DeserializeObject<HandoffContext>(handoffInitiateActivity.Value.ToString());

        // Connect to Agent Hub
        // <YOUR CUSTOM ADAPTER CODE GOES HERE>
    }
}