Amazon Web Services ブログ

Amazon Connectで統合化した顧客プロファイルを構築する

コール中、コンタクトセンターのエージェントは、多くの場合、顧客の問題を解決するために必要な情報を検索するために、複数のアプリケーションを切り替えます。これは、カスタムのエージェントアプリケーションから顧客関係管理 (CRM) まで、最大 10 種類のアプリケーションを切り替えることを意味します。この問題に対処するために、企業によっては、異なるアプリケーションからの顧客データを自社開発の顧客データベースにまとめて、コンタクトセンターのアプリケーションに供給する複雑な統合に投資しています。これらの統合は、さまざまなアプリケーションでデータをさまざまな形式で保存し、異なる顧客識別子(アカウント ID、電話番号、電子メールアドレスなど)を使用するため、困難でコストがかかります。

Amazon Connect Customer Profiles を使用すると、問い合わせの時点でエージェントに提示された、すべての顧客データを統一したビューにより、より少ない労力でよりパーソナライズされた顧客体験を提供できるようになりました。Amazon Connect Customer Profiles は、Salesforce、Service Now、自社開発のアプリケーションなどのさまざまなデータソースからの顧客データを Amazon Connect の問い合わせ履歴と組み合わせて、統一された顧客プロファイルを作成します。詳細については、管理者ガイドAPI ドキュメントを参照してください。

以前のブログでは、数回クリックするだけで、サードパーティ製アプリケーションへのコネクタを設定する方法を学びました。事前に構成されたコネクタの仕組みを理解できたので、このブログでは、統一された顧客プロファイルの作成、パーソナライズされたルーティングの設定、およびエージェントデスクトップへの顧客プロファイルの埋め込み方法について説明します。

ソリューション概要

前提
この手順では、以下の前提があります:

統一された顧客プロファイルを作成する

まず、AnyCompanyは、さまざまなソースからのデータを含む、カスタマージャーニーの全体像をエージェントに提供したいと考えていました。AnyCompany は最大 50 のカスタム統合を追加し、製品の試用やサブスクリプション情報、製品更新オファーやマーケティングチームによって割り当てられたその他のインセンティブなどの顧客データを取り込むことができます。これらの統合により、エージェントは、顧客がトライアルまたはサブスクリプションの終了間近であったかどうかを迅速に検出したり、お客様に電子メールで送信された正確なオファーの詳細を確認したりできます。

  1. Amazon Connect API の PutProfileObjectType を使用して、MarketingAssignedOffers プロファイルオブジェクトなどのカスタムオブジェクトを作成します。
client.putProfileObjectType({
  "DomainName": "AnyCompanyDomain",
  "ObjectTypeName": "MarketingAssignedOffers",
  "Description": "Marketing Managed Offers",
  "AllowProfileCreation": true,
  "ExpirationDays": 1000,
  "Fields": {
    "UserId" : {
      "ContentType": "STRING",
      "Source": "_source.UserId",
      "Target": "_profile.AccountNumber"
    },
    "email" : {
      "ContentType": "EMAIL_ADDRESS",
      "Source": "_source.email",
      "Target": "_profile.EmailAddress"
    },
    "phone" : {
      "ContentType": "PHONE_NUMBER",
      "Source": "_source.phone",
      "Target": "_profile.PhoneNumber"
    },
    "offer" : {
      "ContentType": "STRING",
      "Source": "_source.offerName",
      "Target": "_profile.Attributes.offerName"
    },
    "offerView" : {
      "ContentType": "STRING",
      "Source": "_source.offerViewed",
      "Target": "_profile.Attributes.offerViewed"
    }
  },
  "Keys": {
    "_account" : [
      {
        "FieldNames": ["UserId"],
        "StandardIdentifiers" : [ "PROFILE", "UNIQUE" ]
      }
    ],
    "_email": [
      {
        "FieldNames": [
          "email"
        ]
      }
    ],
    "_phone": [
      {
        "FieldNames": [
          "phone"
        ]
      }
    ]
  }
}).promise();
  1. 外部アプリケーションから更新がトリガーされたときに新しい MarketingAssignedOffers プロファイルオブジェクトを作成するには、PutProfileObject API を使用します。
const marketerAssignedObject = {
    UserId: '00001',
    email: 'test@test.com',
    offerName: '30% Renewal',
    offerViewed: 'false'
};
client.putProfileObject({
    "DomainName": "AnyCompanyDomain",
    "ObjectTypeName": "MarketingAssignedOffers",
    "Object": JSON.stringify(marketerAssignedObject)
}).promise();

プロファイルオブジェクトタイプの登録、プロファイルオブジェクトの更新の送信、およびプロファイルの検索の完全な例は、GitHub リポジトリにあります。

パーソナライズされた自動化を有効にする

顧客プロファイルが設定されると、AnyCompany は Amazon Connect Customer Profiles を使用して、エージェントに接続される前に発信元を識別するのに役立ちます。

  1. Lambda 関数を作成して、発信元の電話番号に基づいて顧客プロファイルを検索し、パーソナライズされたルーティングを実行します。
var searchResults  = await client.searchProfiles({
    "DomainName": "AnyCompanyDomain",
    "KeyName": "_phone",
    "Values": [customerNumber]
}).promise()

if (searchResults.Items.length > 1) {
    var profileid = searchResults.Items[0].ProfileId;
    var firstname = searchResults.Items[0].FirstName;
    var additionalInformation = searchResults.Items[0].AdditionalInformation;
}
var listObjectPayload = {
    "DomainName": "AnyCompanyDomain",
    "ObjectTypeName": "CTR",
    "ProfileId": profileid
}
var listObjectResults = await client.listProfileObjects(listObjectPayload).promise()

var mostRecentCtr = JSON.parse(listObjectResults.Items[0].Object);

var lastCallAbandoned = "false";
if (mostRecentCtr.agent === null){
    console.log("last call was abandoned")
    lastCallAbandoned = "true"
}
  1. 名前、プロファイル ID、その他の詳細などの発信元プロファイルデータを返す Contact Flow から関数を呼び出します。
  2. 問い合わせフローの 「Play Prompt」ブロックを使用して、発信元の名前で応じます。
  3. Lambda 関数によって返された lastCallRandon 属性を、「問い合わせ属性を確認する」 ブロックの分岐で使用します。
  4. 発信元が以前のコールを放棄した場合に、「ルーティングの優先順位/時間を変更する」 ブロックを使用して、問い合わせの優先順位を設定します。

注意:追加のユースケースをロジックに追加することができます。たとえば、過去 24 時間にコールが検出された場合、前のコールのセンチメントとコールの分類を使用して、発信元のルーティングをパーソナライズできます。たとえば、顧客の最後のやり取りに否定的なセンチメントがあった場合、より経験豊富なエージェントに接続されます。これは、Amazon Connect Contact Lens を有効にすることで決定できます。

AnyCompanyは、問い合わせフローで Customer Profiles API を活用することで、パーソナライズされた動的な顧客体験を作成し、顧客のニーズを満たす能力を持つエージェントに顧客を迅速につなぐことができます。

エージェント体験をシンプルに拡張する

AnyCompany は、問い合わせフローで顧客プロファイルを活用して、パーソナライズされた体験を顧客に提供するだけでなく、エージェント体験にも活用しました。エージェントがネイティブのエージェント体験の中で顧客プロファイルを表示できるようにするか、Amazon Connect Streams JS ライブラリを使用して、カスタムエージェントデスクトップに顧客プロファイルを埋め込むことができます。エージェントは、この情報をすぐに利用することで、よりパーソナライズされた顧客サービスを提供し、顧客の問題を迅速に解決できます。エージェントは、顧客のジャーニーを理解するために、さまざまなダッシュボードやタブを遷移する必要がなくなりました。代わりに、すべての情報を 1 か所で入手できます。

たとえば、AnyCompany を使用すると、エージェントは発信元の取引履歴をすばやく確認して、「製品の使用経験はどうでしたか? それに関連する質問にお答えしますがいかがですか?」といった質問をすることができます。エージェントは、記録やセンチメントなどの問い合わせ履歴属性を表示して、以前のコールの放棄を識別し、コンタクトセンターの最初のコール解決メトリックを増やすこともできます。

まとめ

Amazon Connect Customer Profilesをご利用のお客様は、エージェントが顧客データを収集するために異なるアプリケーション間を移動する必要がなくなり、平均チャネル時間が短縮されました。また、パーソナライズされたルーティング体験を顧客に提供することで、セルフサービスのワークフローが増加しました。組織で同様のエクスペリエンスをセットアップする方法については、このGitHub リポジトリを参照してください。エージェントのデスクトップでネイティブの顧客プロファイルウィジェットを使用できるようにする方法については、こちらの手順に従ってください。代わりに、カスタムCCPにカスタマープロファイルを追加する場合は、こちらの手順に従ってください。

 

原文: https://aws.amazon.com/jp/blogs/contact-center/building-unified-customer-profiles-with-amazon-connect/
翻訳: ソリューションアーキテクト 松本 和久