Amazon Web Services ブログ
Amazon ConnectとSalesforce Service Cloudによる自動化されたAIエクスペリエンスの構築
昨年我々 は Salesforce のAmazon Connect CTIアダプタの最初のリリースを発表しました。我々 は、多くの企業のお客様が革新的な顧客体験を提供するこのインテグレーションを活用するのを見てきました。お客様からのフィードバックに基づいて、以下の追加機能を備えた CTI アダプタのバージョン 2(訳注)もすでにリリースされています:
訳注)本日時点で最新のCTIアダプタのバージョンは3.1です。
- Salesforce 画面ポップアップの機能追加:Caller IDに加え、Amazon Connectの問い合わせフローで設定したコンタクト属性に基づいてポップアップさせる機能をサポート。
- Salesforce オムニチャネルのサポート:Amazon Connectの音声チャネルをSalesforceチャット、電子メール、SMS チャネルと連携させることが可能に。
- ロギングと録音のサポート:自動的にAmazon Connectの通話をログに記録し、Salesforce の通話記録に表示します。
- Lambdaによるデータ活用:事前に構築済みのLambdaファンクションを使うことによってSalesforceの顧客データをカスタマーエクスペリエンスの向上のために活用することが出来ます。
- SSO/SAML サポート:シームレスなシングル サインオンをAmazon Connectと Salesforce で有効に出来ます。
Aamzon Connectをはじめてセットアップする場合は、こちらのgetting started guideをご覧ください。また、CTIアダプタインストールガイド ではSalesforce AppExchangeのCTIアダプタの設定方法についてご案内しております。本ブログでは、作成済みのAamzon Connectインスタンスに対して設定済みのCTIアダプタがSalesforceインスタンスにセットアップされていることを前提にしております。また、Amazon Lex ボットのセットアップについての一定の知識も前提にしております。
CRMエージェントルーティングによる自動化されたAIエクスペリエンスの構築
あなたは小規模な再生可能エネルギー関連企業におけるコンタクトセンターの責任者だとしましょう。そのコンタクトセンターでは、エージェントはセールスについてとサービスについての両方の問い合わせを受けることとします。両方の問い合わせを受けるため、エージェントは顧客が問い合わせをしている理由を知る必要があり、また、ケースや連絡先情報のようなキーとなる情報がスクリーンにポップアップする必要があります。
Amazon Connectインスタンスでは、Amazon Lex ボットを活用したシンプルな問い合わせフローを設定します。この問い合わせフローは、顧客が問い合わせをしている理由、つまりインテントとしてAmazon Lexに定義するもの、が何かを尋ねるためのものです。顧客の言葉に応じて、Amazon Lexはその言葉を定義済みのインテントの一つにマッチさせます。セールスについての問い合わせか、サービスについての問い合わせかが確定したら、ケース番号を尋ねてそれをスロットに格納します。ボットがデータを収集したら、Amazon Connectはそれをその顧客の既知の何らかの情報とともにスクリーンにポップアップし、エージェントに伝えます。
初めのステップは二つのAmazon Lexボットの作成です:GetCustomerCallReasonとGetCaseNumberです。GetCustomerCallReasonは二つのインテントを持っています:SalesCallとSupportCallです。いずれのインテントについても、それぞれの問い合わせの理由についての発話をこれらのインテントにあてはめたいと思うでしょう。以下のスクリーンショットはそれぞれのインテントについての作り方を示すものです。
SalesCall インテント
SupportCall インテント
これらのボットとインテントの名前は問い合わせフローの中で参照しますので、上の図と同じ名前で作成するようにしましょう。つぎに、Amazon LexボットGetCustomerCallReasonを作成し、発行します。ここで、prodというエイリアスを使用しました。
次のAmazon LexボットはGetCaseNumberで、顧客にケース番号を尋ねるために使います。このボットGetCaseNumberは、二つのインテントを持っています:CaptureCaseNumberとUnknownCaseです。CaptureCaseNumberインテントはCaseNumberのスロットの値を取得します。UnknownCaseインテントは顧客がケース番号を知らない場合に用いられます。インテントにマッチした発話を顧客ができるようにするためにどのようにガイドすることができるか、のちほど見ていきましょう。
こちらは二つのインテントのスクリーンショットです。
CaptureCaseNumberインテント
UnknownCaseインテント
Amazon LexボットGetCaseNumberを作成し、発行します。prodというエイリアスを使用しています。つぎに、これらのボットをAmazon Connectのインスタンスの問い合わせフローの中の設定に追加します。
次のステップはAmazon Connectの問い合わせフローを作成することです。以下はこのフローの概要です:
問い合わせフローの作成
- Amazon Connectインスタンスにログインします。
- ルーティングから問い合わせフローを選択します。
- 問い合わせフローの作成を選びます。
- 問い合わせフローの名前を入力します。
- 問い合わせフローの中に上の図のようにブロックを追加します。
はじめに、顧客の入力を取得する(上図Get customer input)ブロックを設定します。このブロックでは、先ほど作成したGetCustomerCallReasonボットを呼び出し、顧客からの入力を取得します。ここで、以下の設定をアップデートします。
- テキスト読み上げ機能 (アドホック) – テキストの入力:Hello, welcome to Cirrus Energy, how can I help you?
- Amazon Lex:リストからGetCustomerCallReasonボットを選択します。
- エイリアス:Prod
- インテントの追加を選び、このボットのために作成した二つのインテントを追加します:SupportCallとServiceCall
ブロックの設定はこのようになります。
Amazon ConnectはAmazon Pollyを使ってテキストを音声に変換し、顧客に対してテキストを”話しかけ”ます。ボットのインテントをいずれもブロックに追加していきます。追加されたそれぞれのインテントはそのブロックの中で分岐したアウトプットを生成し、顧客がAmazon Lexボットに伝えたインテントに基づき問い合わせをルーティングします。
Amazon Lexからインテントを取得したら、それを問い合わせ属性として保存し、以後の問い合わせフローの中で参照できるようにします。問い合わせ属性の設定(Set contact attributes)ブロックの中で、テキストの使用を選択し、宛先キーとしてCallReason、値として$.Lex.IntentNameを入力します。
次のステップは問い合わせフローを設定して二つ目のAmazon Lexボットを使えるようにすることです。これは二つ目の顧客の入力を取得する(Get customer input)ブロックで行います。一つ目のブロックと同様に、二つ目のブロックを以下を参照してAmazon LexボットGetCaseNumberを使うように設定します:
- テキスト読み上げ機能 (アドホック) – テキストの入力:If you know your case number, please say it now. Otherwise say I don’t know.
- Amazon Lex:リストからGetCaseNumberボットを選択。
- エイリアス:Prod
- インテント – インテントの追加を選択し、作成済みの二つのインテントを追加します:CaptureCaseNumberとUnknownCase
顧客がケース番号を知らない場合に”I don’t know(わかりません)”と発話するのをどのような言葉で促しているかに注目してください。ベストプラクティスとして、ボットが指示的な方法で顧客とコミュニケーションするためにどのようにガイド出来るかを考えてください。顧客がケース番号を伝えてきたら、それを二つの属性に保存します。問い合わせ属性の設定(Set contact attributes)ブロックでテキストの使用を選択し、宛先キーとしてACCaseNumber、値として$.Lex.Slots.CaseNumberを入力します。同じブロックの中で二つ目の属性を追加し、テキストの使用を選択し、宛先キーとしてacsf-screenpop-search、値として$.Lex.Slots.CaseNumberを入力します。ここで、二つのキーがあることは重要です。
- Salesforce Lambda Packageを使ってGetCaseNumber Lexボットにバリデーションを追加します。これによりデータをSalesforceに連携し、ケースのバリデーションと再度の問いかけを必要に応じて実施します。このブログのためにシンプルな構成にしてあります。
- acsf-screenpop-searchは、問い合わせがエージェントに到達したときにSalesforceにスクリーンポップアップする属性としてケース番号をセットします。これはこのCTIアダプタの主要な特徴の一つであり、データをAmazon ConnectからSalesforceに簡単に渡すことが出来ます。
顧客がケース番号を知らない場合のために、もう一つの問い合わせ属性の設定(Set contact attributes )ブロックを追加し、テキストを使用を選択し宛先キーとしてACCaseNumberを、値としてUnknownを入力します。
ケース番号を取得したら、プロンプトの再生(Play prompt)ブロックでそれを読み上げます。:
テキスト読み上げ機能 (アドホック)– テキストの入力:<speak>Thanks – your case number is <prosody rate=”x-slow”><say-as interpret-as=”digits”>$.Attributes.ACCaseNumber</say-as></prosody></speak>
解釈する:SSML
ケース番号を正しく数字として認識し、顧客に対してゆっくりと読み上げるためにPollyのSSMLタグを用いています。
最後に、キューの設定(Set working queue)ブロックでBasicQueueを選択し、キューへ転送(Transfer to queue )ブロックと切断/ハングアップ(disconnect / hang up)ブロックをセットします。ここで問い合わせは、BasicQueueのスキルセットを持つルーティングプロファイルにアサインされたエージェントの中で次に利用可能なものへルーティングされます。問い合わせフローを保存して発行し、テストのために電話番号へアサインすることを忘れないで実施しましょう。
Salesforce Lightningにおけるエージェント体験の設定
すでにお伝えしたように、CTIアダプタのセットアップガイドに従って適切にSalesforceの環境を設定する必要があります。上にあげたスクリーンショットはAmazon Connect Control Panel(CCP)をLightningサービスコンソールに組み込んだものです。Salesforceオムニチャネルは同様に有効化され、このエージェントのために設定されています。
このCTIアダプタの新機能の一つは、発信者の重要な情報をエージェントに伝えるためにCCPへ属性を伝えることができることです。このデモでは、Amazon Connectの中で認識されたセールスあるいはサービスという問い合わせのタイプとケース番号(不明な場合を含む)を渡しています。
SETUPの中でCustom Metadata Typesページに行き、Manage Recordsをクリックします。:
Call Attributes Configurationの中で、NewをクリックしてAC Case NumberとCall Reasonを作成してください。
Amaon Connectの問い合わせフローの中でセットした属性が、インバウンドコールを受信したときにCCPに表示される内容へどのようにマッピングされるのかをここで見ることができます。
最後の詳細な確認として、Call Centersの中のSoftphone Layoutsを見て、スクリーンにポップアップさせたいデータが含まれていることを確認しましょう。問い合わせフローの中で設定したacsf-screenpop-search属性で登録済のSalesforceオブジェクトを検索します。今回の設定では、Contact Case、Account、そしてLead Objectを検索します。
End to End テスト
これで全て設定できましたので、End-to-Endでのテストを実行する準備が整いました。Amazon Connectに電話すると、Lexボットが問い合わせの理由を特定し、ケース情報を収集します。問い合わせのタイプとケース番号はエージェントに渡され、顧客が電話をしてきた理由を完全なコンテキストとしてSalesforceの環境の中で与えます。もし顧客がケース番号を伝えなかったら、次に発信者番号が情報として使用され、スクリーンにポップアップします。問い合わせが終了したら、エージェントは問い合わせの記録を記入するように自動的に促されます。
以上です!自動化されたAIによって顧客の意図を特定し、エージェントにコンテキストを伝えるような音声体験を構築することが出来ました。このブログのゴールはいかに早くAmazon ConnectとSalesforceをインテグレーションすることができるかをお伝えすることでした。他にも多数の機能があり、これらを活用することによって機能を拡張することができます。:
- 顧客とエージェントの会話を録音し、再生することが出来ます。
- オムニチャネル、Lex、Einsteinの使用による顧客とエージェント間でのマルチチャネルでのインタラクション(音声、チャット、Eメール、SMS)。
- Lexを使うことでSalesforce Knowledgebaseへデータを連携し、さらなるセルフサービスを提供します。これによりエージェントへの問い合わせ件数が減少します。
- シングルサインオンによって、エージェントにAmazon ConnectとSalesforceのシームレスなログイン体験を提供します。
さらなる機能が近日中に公開されます。例えば、統合されたレポート機能や通話の文字への書き起こしです。Amazon Connect CTI Adapterをお試し頂き、ケースオープンしフィードバックを頂けますと幸いです。皆さまからのフィードバックを尊重して、次の新機能を検討いたします。
翻訳:ソリューションアーキテクト 深森 広英