提供: Bright Pattern Documentation
移動先: 案内、 検索
• English

AIを活用したメール処理の自動化方法

Ask AI シナリオブロックを使用すると、お好みのAIを活用して、やり取りのほぼすべての部分を自動化することができます。例えば、メールシナリオではAIを使用して、顧客からのメールを自動的に分類、下書き作成、分析することができ、生産性の向上や手動による受信トレイ管理の負担軽減につながります。

このメールシナリオの例では、AIを使用して受信メールを分類し、エージェントの介入が必要なものをエスカレーションし、その他のメールには自動的に返信します。

こちら をクリックしてAIによるメール処理のサンプルシナリオをダウンロードし、その後コンタクトセンターにインポートしてください。

前提条件

  • 受信および送信メール用にメールサービスを設定してください。

    • AIが区別することが想定される受信メールのカテゴリーごとに個別のサービスを設定し、さらに既定で使用するサービスを1つ設定してください。これにより、シナリオが複雑なケースを関連するチームにルーティングできるようになります。

  • 以下のいずれかを実行してください:

    • サービスプロバイダーに依頼し、コンタクトセンターに割り当てられた選択済みのAIパッケージの一部として、AIアカウントを設定してもらってください。

    • コンタクトセンター内でAIプロバイダーの連携アカウントを設定してください。


AIに会社を代表して返信する権限をどの程度与えるか決定する際は、慎重にご検討ください。ユースケースによっては、AIによるメールを人が監督したり、特定のケースにのみAIを使用したりすることが望ましい場合があります。AIツールを導入する前に、会社のAIポリシーをご確認ください。



シナリオの流れ

Screenshot of an AI email handling scenario

AIに、メールの分類、エスカレーションの必要性の判断、および関連データの抽出を依頼します。その後、AIはその分類に基づいて自動返信メールの下書きを作成します。最後に、このシナリオでは、メールの下書きを送信するか、人間のエージェントにエスカレーションを行います。エスカレーションが行われた場合、メールの下書きの内容は、返信案としてケースに追加されます。

メールの分類

Ask AI シナリオブロックを追加し、メールの分類、データ抽出、評価を目的としてメールを分析します。

  1. 「AIプロバイダー」ドロップダウンメニューから、ご希望のAIプロバイダーを選択してください。

  2. 「AIへの指示」フィールドで、$(item.body)に保存されているメールを読み、一連のタスクを実行できるよう準備するようAIに指示します。プロンプトの例を以下に示します:

    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. この例の指示では、提供されたメールからカテゴリー、顧客が質問をしているかどうか、注文ID(存在する場合)など、いくつかのデータポイントをAIに抽出するよう指示しています。各データポイントについて、対応する変数を「抽出するデータ」セクションに追加してください。変数を定義する際は、この情報がAIのプロンプトに提供されるため、正確かつ具体的に記述してください。

    1. 「出力データを追加」を押してください。

    2. 「category」という名前の変数を追加してください。「データの説明」フィールドに、その変数を簡単な言葉で説明してください。「例示値」には、予測可能な結果が得られるよう、「AIへの指示」フィールドに記載されているカテゴリーとまったく同じものをリストしてください。

      Screenshot of the Add Output Data modal of an Ask AI scenario block

    3. 保存するには、緑色のチェックマークアイコンを押してください。

    4. 残りの抽出データは、次のように設定してください:

      • escalate:

        • データの説明:そのメールを人間のエージェントにエスカレーションする必要があるかどうか。

        • 値の例:true、false

      • customer_name:

        • データの説明:顧客の名前です。

        • 値の例:John Doe

      • language:

        • データの説明:メールで使用されている言語です。

        • 値の例:English、German

      • customer_question:

        • データの説明:メール内で尋ねられている質問を識別します。

        • 値の例:パスワードを復元するにはどうすればよいですか?

      • question_search_terms:

        • データの説明:顧客から質問があった場合、ナレッジベースを検索するための検索用語をいくつか抽出します。

        • 値の例:保証の有効化、新規ユーザーの作成

      • order_no:

        • データの説明:注文ID番号です。

        • 値の例:001000



各カテゴリーの分岐パスを追加する

この時点で、$(category)変数にはAIによって値が設定されているはずです。Ifブロックを使用して、予想される各値ごとに異なるパスを設定し、さらにカテゴリーが設定されていない場合にたどるパスも設定してください。AIによって割り当てられたカテゴリーに応じて、シナリオは異なるサービスを割り当て、カスタマイズされた返信メールを作成します。各パスを次のように設定してください。


注文状況

$(category) が order_status_request に設定されている場合、シナリオは抽出された $(order_no) を使用してデータベースから注文情報を取得し、AIに返信メールの作成を促します。

  1. Ifブロック内で、「分岐を追加」ボタンを押してください。

  2. 「終了ラベル」フィールドで分岐の名前を入力してください。この例では、「Order Status」という名前を使用します。

  3. 「条件を追加」をクリックしてください。

  4. 各フィールドを、シナリオ変数(文字列) category が = order_status_request となるよう設定してください。その後、緑色のチェックマークをクリックしてください。

    Screenshot of the Add Condition modal of an If scenario block. The selected fields read Scenario variable (string) category is = order_status_request
  5. この分岐内で、Set Serviceブロックを使用して「Orders」サービスを選択してください。

  6. この例では、注文テーブルを含むデータベースがあります。そのため、DB Executeブロックを使用して、指定された注文番号についてそのデータベースにクエリを実行できます。
    注:実際には、データベースクエリで $(order_no) を使用する前に、$(order_no) がNULLではなく、正しい形式の値を含んでいることを確認することをお勧めします。

    Screenshot of a DB Execute scenario block that connects to the All orders database. SQL statement reads SELECT * FROM orders WHERE id=$(order_no). Recordset name is 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 に設定されている場合、このシナリオでは、AIがナレッジベースの情報を使用して顧客の質問に応答するよう促されます。

  1. Ifブロックに、条件 シナリオ変数(文字列) category が = information_request を指定した「General Question」分岐を追加してください。上記のOrder Statusの手順1~4をご参照ください。

  2. この分岐内で、Set Serviceブロックを使用して「Knowledge Base」サービスを選択してください。

  3. Fetch URLブロックを使用して、外部ナレッジベースで $(question_search_terms) を検索するためのAPIコールを行ってください。
    注:この例では、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であるか、空の場合(つまり、AIがカテゴリーを選択できなかった場合)、シナリオは「Default」サービスに割り当てられた人間のエージェントにエスカレーションされます。

  1. Ifブロックに、以下の2つの条件を設定した「Other」分岐を追加してください:シナリオ変数(文字列) category が Is empty または シナリオ変数(文字列) category が = other。上記のOrder Statusの手順1~4をご参照ください。

  2. この分岐内で、Set Serviceブロックを使用して「Default」メールサービスを選択してください。

  3. Find Agentブロックを使用して、顧客からのメールを「Default」サービスに割り当てられたエージェントにルーティングします。

  4. シナリオを終了します。

自動返信またはエスカレーション

この時点で、$(escalate)変数に値が設定され、エージェントを割り当てるか自動返信を送信するかが示されるはずです。シナリオの前の段階で選択された経路によっては、$(escalate_knowledge)変数にも値が設定される場合があります。Ifブロックを使用して、これら2つの変数の値を確認してください。いずれもエスカレーションが必要であることを示していない場合、シナリオは前のステップで下書きされた自動返信メールを顧客に送信し、終了します。それ以外の場合、シナリオは自動返信の下書きをケースノートに保存し、顧客のメールをエージェントに割り当てます。このロジックに従うことで、エスカレーションを優先する傾向が生まれ、人間の介入なしにAIが曖昧なケースを処理することを防ぎます。

自動返信

$(escalate) が false かつ $(escalate_question) が false または空(つまり設定されていない)の場合、シナリオはこの経路を進みます。

  1. Ifブロックに、2つの条件ブロックを含む分岐を1つ追加してください。条件の追加の詳細については、上記のOrder Statusの手順1~4をご参照ください。

    A screenshot of two blocks of conditions for an If scenario block exit.
    • AIが当初、顧客のメールを「エスカレーションが必要」とマークしたかどうかを確認するために、以下の条件ブロックを追加してください:
      シナリオ変数(文字列) escalate が = false または シナリオ変数(数値) escalate が = 0 または シナリオ変数(文字列) escalate が = 0。

    • シナリオの後半で、AIがメールを「エスカレーションが必要」とマークしたかどうかを確認するために、以下の条件ブロックを追加してください:
      シナリオ変数(文字列) escalate_question が = false または シナリオ変数(数値) escalate_question が = 0 または シナリオ変数(文字列) escalate_question が = 0 または シナリオ変数(文字列) escalate_question が Is empty。
      注:$(escalate_question) が false または 0 の場合、シナリオが「General Question」の経路をたどり、顧客の質問に対する答えを正常に見つけたことを示します。$(escalate_question) が空の場合、シナリオが別の経路をたどったことを示します。

    • これら2つのブロックを「and」演算子で結合し、両方の変数がエスカレーションの必要がないことを示しているかを確認してください。

  2. この分岐内で、EMailブロックを使用して、AIが作成した自動返信を顧客に送信してください。
    Screenshot of an EMail scenario block

    • 「From」セクションに、コンタクトセンターの表示名と送信用メールアドレスを入力してください。

    • 「To」セクションで、宛先メールアドレスを $(item.from) に設定してください。

    • 「Message」セクションで、メールの件名を「RE: $(item.subject)」と入力してください。HTML形式を選択してください。

    • エディタで、$(reply)、改行、そして(引用符ブロックで囲んだ)$(item.body)を追加してください。これにより、スレッド内の以前のすべてのメールより上にAI返信メールが表示されます。

    • オプション:「テスト送信」ボタンを押して、任意の宛先にテストメールを送信してください。

  3. Item Completedブロックを使用して、処理結果を「Auto-reply」に設定してください。

  4. シナリオを終了します。

人間のエージェントへのエスカレーション

AIが $(escalate) または $(escalate_question) を false または 0 以外の値に設定した場合、シナリオはこのIfブロックを完全にスキップし、メールを人間のエージェントにエスカレーションします。

  1. Set Caseブロックを使用して、このやり取りをBright Patternコンタクトセンターのケースに関連付けます。
    Screenshot of a Set Case scenario block with Case ID set to $(item.caseId) and the Replace checkbox enabled.

  2. Bright Pattern Create Objectブロックを使用して、AIが生成した返信をケースのアクティビティ履歴に追加し、人間のエージェントが参照できるようにします。

    Screenshot of a Bright Pattern Create Object scenario block that creates an Activity history object. Notes read "Suggested answer (AI-generated): $(reply)"
  3. Find Agentブロックを使用して、顧客からのメールを選択済みのサービスに割り当てられたエージェントにルーティングします。

  4. シナリオを終了します。

最終ステップ

  1. シナリオを新規の名前で保存します。保存する前にブラウザのタブまたはウィンドウを閉じると、作業内容が削除されます。

  2. このシナリオをメールサービスにリンクさせるシナリオエントリーを作成してください。

  3. そのサービスに、さまざまな言語やフォーマットのテストメールを送信し、このシナリオ内のすべての経路が意図したとおりに機能することを確認してください。以下のテストケースを含めてください:

    • ナレッジベースに回答が掲載されている一般的な質問

    • 人間のエージェントによる対応が必要と判断される質問

    • 形式が正しい注文状況の照会

    • 形式が不適切または曖昧な注文状況の照会

    • このシナリオでカバーされていないその他のお客様の問い合わせ

      < 前へ