Как автоматизировать обработку электронной почты с помощью ИИ

Блок сценария Запросить ИИ (Ask AI) позволяет использовать выбранный ИИ для автоматизации практически любой части взаимодействия. Например, в сценариях электронной почты ИИ может автоматически определять категории писем клиентов, готовить ответы и анализировать письма. Это повышает производительность и сокращает объем ручной обработки входящей почты.

В этом примере ИИ сортирует входящие письма, передает оператору те, которые требуют его участия, и автоматически отвечает на остальные.

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

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

  • Настройте сервисы для входящей и исходящей электронной почты.

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

  • Выполните одно из следующих действий:

    • Поручите поставщику услуг настроить учетную запись ИИ в составе выбранного пакета ИИ (AI Package), назначенного вашему контакт-центру.

    • Настройте в контакт-центре учетную запись интеграции с поставщиком ИИ.

Внимательно определите, какую свободу действий получит ИИ при ответах от имени вашей компании. В зависимости от задачи может потребоваться проверка ответов ИИ сотрудниками либо использование ИИ только для отдельных типов обращений. Перед внедрением инструментов ИИ ознакомьтесь с политиками вашей компании в этой области.

Логика сценария

Пример сценария обработки электронной почты с помощью ИИ

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

Определите категорию письма

Добавьте блок сценария Запросить ИИ (Ask AI) для анализа письма: определения категории, извлечения данных и оценки обращения.

  1. Выберите нужного поставщика ИИ в раскрывающемся списке Поставщик ИИ.

  2. В поле Инструкции для ИИ поручите ИИ прочитать письмо из $(item.body) и выполнить несколько задач. Пример запроса приведен ниже:

    Here's the body of an email thread potentially containing multiple back and forth messages: $(item.body)
    
    Read the whole email thread and then do the following:
    
    1. Categorize this email into one of the listed categories, selecting only values from among the provided options:  
      - Information request  
      - Order status request  
      - Other
    
    2. If the customer is asking a general question:
      a. Identify the question that the customer is asking.
      b. Extract relevant search terms from the email.
    
    3. If an order ID is mentioned, extract it from the email.
    
    4. Flag the email for escalation to a human agent if it is highly complex, contains emotionally charged issues (such as severe complaints, VIP client requests, or troubleshooting requiring empathy), or falls into the "other" category.
    
    5. Extract the customer's name from the email body (such as their signoff or signature). Otherwise, our CRM shows their full name as $(item.firstName) $(item.lastName).
    
    6. Detect what language the email is in.

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

    1. Нажмите Добавить выходные данные (add Output Data).

    2. Добавьте переменную с именем category. Кратко опишите ее в поле Описание данных. В поле Примеры значений (Example values)перечислите те же категории, что и в Instructions to AI, чтобы получать предсказуемые результаты.

      Окно добавления выходных данных (Add Output Data) блока сценария Ask AI

    3. Нажмите значок зеленой галочки для сохранения.

    4. Настройте остальные извлекаемые данные следующим образом:

      • escalate:

        • Описание данных: требуется ли передать письмо оператору.

        • Пример значений: true, false

      • customer_name:

        • Описание данных: имя клиента.

        • Пример значения: John Doe

      • language:

        • Описание данных: язык письма.

        • Примеры значений: English, German

      • customer_question:

        • Описание данных: определите вопрос, заданный в письме.

        • Пример значения: как восстановить пароль?

      • question_search_terms:

        • Описание данных: если у клиента есть вопрос, выделите несколько поисковых слов для запроса к базе знаний.

        • Примеры значений: активировать гарантию, создать нового пользователя

      • order_no:

        • Описание данных: Идентификационный номер заказа.

        • Пример значения: 001000

Добавьте отдельную ветвь для каждой категории

Теперь ИИ должен заполнить переменную $(category). С помощью блока If задайте отдельную ветвь для каждого ожидаемого значения и ветвь на случай, если категория не определена. В зависимости от категории, выбранной ИИ, сценарий назначит соответствующий сервис и подготовит подходящий ответ. Настройте каждую ветвь, как описано ниже.

Статус заказа

Если переменная $(category) имеет значение order_status_request, сценарий попытается получить сведения о заказе из базы данных по извлеченному значению $(order_no) и поручит ИИ составить ответное письмо.

  1. В блоке If нажмите кнопку Добавить ветвь.

  2. Задайте название ветви в поле Метка выхода. В примере используется название Order Status.

  3. Нажмите Добавить условие.

  4. Настройте поля так, чтобы получилось Scenario variable (string) category is = order_status_request. Затем нажмите зеленую галочку.

    Окно добавления условия (Add Condition) блока If. Выбранные поля: Scenario variable (string) category is = order_status_request

  5. В этой ветви с помощью блока Установить сервис (Set Service) выберите сервис Orders.

  6. В примере используется база данных с таблицей заказов. Поэтому с помощью блока Выполнить запрос к базе данных (DB Execute) можно запросить сведения о заказе по указанному номеру.
    Примечание: на практике перед запросом к базе данных рекомендуется проверить, что $(order_no) содержит корректное значение, отличное от null.

    Блок сценария DB Execute с подключением к базе данных All orders. Инструкция SQL: SELECT * FROM orders WHERE id=$(order_no). Имя набора записей: orders.

  7. Используйте блок Запросить ИИ (Ask AI), чтобы подготовить ответное письмо со сведениями о заказе клиента. Пример запроса приведен ниже:

    Reference the customer's order information: $(order)
    
    As a support agent, draft an email reply (in $(language)) updating the customer on the status of their order, including delivery information if available.
    
    Only use information from the provided source. If no status or delivery information is available, draft an email requesting additional information.
    
    Begin your response with "Dear $(customer_name), \n".

  8. Настройте извлекаемые данные следующим образом:

    • reply:

      • Описание данных: автоматический ответ по электронной почте.

Общий вопрос

Если переменная $(category) имеет значение information_request, сценарий поручит ИИ ответить на вопрос клиента на основе сведений из базы знаний.

  1. Добавьте ветвь General Question в блок If с условием Scenario variable (string) category is = information_request. См. шаги 1–4 раздела «Статус заказа» выше.

  2. В этой ветви с помощью блока Установить сервис (Set Service) выберите сервис Knowledge Base.

  3. С помощью блока Выполнить запрос по URL (Fetch URL) выполните запрос API к внешней базе знаний для поиска по $(question_search_terms).
    Примечание: В этом примере jsdata — префикс переменных сценария для возвращаемых данных JSON.

  4. Используйте блок Запросить ИИ (Ask AI), чтобы разобрать результаты поиска в базе знаний и составить ответ. Пример запроса приведен ниже.

    Reference the knowledge base information at $(jsdata) to find the answer to the following question: $(customer_question)
    
    As a support agent, draft the answer (in $(language)) to the customer's question. Begin your response with "Dear $(customer_name), \n".
    
    Only use information from the provided source. If the answer is not in the provided source, the email needs to be escalated to a human agent.
  5. Настройте извлекаемые данные следующим образом:

    • reply:

      • Описание данных: автоматический ответ по электронной почте.

    • escalate_question:

      • Описание данных: требуется ли передать вопрос оператору.

      • Пример значений: true, false

Другое

Если переменная $(category) имеет значение other либо пуста (то есть ИИ не смог выбрать категорию), сценарий передаст письмо оператору сервиса Default.

  1. Добавьте ветвь Other в блок If с двумя условиями: Scenario variable (string) category is Is empty или Scenario variable (string) category is = other. См. шаги 1–4 раздела «Статус заказа» выше.

  2. В этой ветви с помощью блока Установить сервис (Set Service) выберите сервис электронной почты Default.

  3. Используйте блок Найти оператора (Find Agent), чтобы направить письмо клиента оператору сервиса Default.

  4. Завершите (Exit) сценарий.

Автоматический ответ или передача оператору

Теперь переменная $(escalate) должна содержать признак того, требуется ли участие оператора или можно отправить автоматический ответ. В зависимости от ранее выбранной ветви сценария может быть заполнена и переменная $(escalate_knowledge). Проверьте обе переменные с помощью блока If. Если ни одна из них не указывает на необходимость передачи оператору, сценарий отправит клиенту автоматический ответ, подготовленный на предыдущем этапе, и завершится. Во всех остальных случаях сценарий сохранит черновик ответа в примечаниях к заявке и назначит письмо оператору. Такая логика отдает предпочтение передаче оператору и не позволяет ИИ обрабатывать неоднозначные обращения без участия человека.

Автоматический ответ

Если $(escalate) равно false и $(escalate_question) равно false либо пусто (то есть не задано), сценарий использует эту ветвь.

  1. Добавьте в блок If одну ветвь с двумя группами условий. Подробнее о добавлении условий см. в шагах 1–4 раздела «Статус заказа» выше.

    Две группы условий для выхода блока сценария If

    • Добавьте следующую группу условий, чтобы проверить, отметил ли ИИ необходимость передачи письма оператору при первоначальном анализе:
      Scenario variable (string) escalate is = false или Scenario variable (number) escalate is = 0 или Scenario variable (string) escalate is = 0.

    • Добавьте следующую группу условий, чтобы проверить, отметил ли ИИ необходимость передачи письма оператору на более позднем этапе сценария:
      Scenario variable (string) escalate_question is = false или Scenario variable (number) escalate_question is = 0 или Scenario variable (string) escalate_question is = 0 или Scenario variable (string) escalate_question is Is empty.
      Примечание: если $(escalate_question) равно false или 0, сценарий прошел по ветви General Question и успешно нашел ответ на вопрос клиента. Если $(escalate_question) пусто, сценарий прошел по другой ветви.

    • Объедините эти две группы оператором and, чтобы проверить, что обе переменные указывают на отсутствие необходимости передачи оператору.

  2. В этой ветви используйте блок Отправить электронное письмо (EMail), чтобы отправить клиенту автоматический ответ, составленный ИИ.
    Настройки блока сценария EMail

    • В разделе Отправитель (From) введите отображаемое имя контакт-центра и исходящий адрес электронной почты.

    • В разделе Получатель (To) задайте адрес получателя $(item.from).

    • В разделе Сообщение укажите тему письма RE: $(item.subject). Выберите формат HTML.

    • В редакторе добавьте $(reply), перенос строки и затем (в виде цитаты) $(item.body), чтобы ответ ИИ отображался над всеми предыдущими письмами в переписке.

    • Необязательно: нажмите кнопку Тестовая отправка (Test Send), чтобы отправить тестовое письмо выбранному получателю.

  3. Используйте блок Завершить обработку элемента (Item Completed), чтобы задать результат обработки Auto-reply.

  4. Завершите (Exit) сценарий.

Передать оператору

Если на любом этапе ИИ присвоил $(escalate) или $(escalate_question) значение, отличное от false или 0, сценарий полностью пропустит этот блок If и передаст письмо оператору.

  1. Используйте блок Установить заявку (Set Case), чтобы связать это взаимодействие с заявкой в Cloud Contact.
    Блок сценария Set Case: в поле Case ID указано $(item.caseId), флажок Replace установлен.

  2. Используйте блок Создать объект Cloud Contact, чтобы добавить ответ ИИ в историю действий по заявке: оператор сможет использовать его как справочный материал.

    Блок сценария Cloud Contact Create Object создает объект Activity history. Текст поля Notes: «Suggested answer (AI-generated): $(reply)»

  3. Используйте блок Найти оператора (Find Agent), чтобы направить письмо клиента оператору выбранного сервиса.

  4. Завершите (Exit) сценарий.

Заключительные шаги

  1. Сохраните сценарий под новым именем. Если закрыть вкладку или окно браузера до сохранения, выполненная работа будет потеряна.

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

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

    • Общие вопросы, ответы на которые есть в базе знаний.

    • Вопросы, для которых, по вашему мнению, требуется помощь оператора.

    • Корректно составленные запросы о статусе заказа.

    • Некорректные или расплывчатые запросы о статусе заказа.

    • Другие вопросы клиентов, не предусмотренные этим сценарием.

      |