Amazon Connectをご存知でしょうか?
アプリやウェブサービスでは有人チャット機能を見かける機会が増えています。ボットによる自動応答だけではカバーしきれない複雑な問い合わせや、よりパーソナライズされたサポートが求められる場面では、やはり人による対応が重要です。
Amazon Connectでは、そんな有人チャットの仕組みをクラウド上に構築することが可能です。Amazon ConnectはAWSが提供するコンタクトセンターサービスで電話やチャットなどで顧客に対応するコンタクトセンターを構築運用することができます。
またボットやAIを駆使してより良い顧客体験を提供することができます。
本記事では、Amazon Connectを使って「有人チャット」の仕組みを構築する方法について、解説したいと思います。
こちらの動画で活用事例を見ることもできます!
Amazon Connectの料金について
料金についてはこちらをご確認ください。
今回作成するチャット機能のみだと1件のメッセージあたり0.004USDになります。無料利用期間であれば1 か月あたり 500 件のメッセージまで無料でできます。
有人チャットの開発手順
インスタンスの作成
まずはインスタンスを作成する必要があります。AWSのコンソールにてAmazon Connectの画面に移動し、「インスタンスを作成」ボタンを押します。
アクセスURLを設定します。管理画面のURLになるものです。また管理者も作成します。


テレフォニーの設定やデータストレージの設定はデフォルトのままにしておき、確認画面にて誤りがないか確認したのちに作成します。インスタンスが作成されるまで少々時間がかかります。
完了したらアクセスURLが生成されるので、そのURLより管理画面に移動することができます。
有人チャットを体験してみる
管理画面にログインしましょう。最初はこんな感じの画面が確認できます。右上のユーザー名から言語を変更できるので日本語にしておくといいかと思います。

1つ目の項目にあるチャットをテストからすぐにチャットを体験することができます。
「Test Chat(チャットをテスト)」をクリックします。
以下のような画面が表示されます。テスト設定にて設定を変更できますが、一旦デフォルトのままで大丈夫です。顔のついた吹き出しアイコンをクリックし、顧客側のチャットを開きます。エージェント側はコントロールパネルをアクティベートします。

顧客側にはシステムメッセージが送られます。
エージェント側はofflineになっているので、コントロールパネル左上をクリックして「Available」に変更します。すると通知がきて、チャットを受け入れるか聞かれるので、受け入れるとやり取りをすることが可能となります。

アプリにチャットを追加する
左のナビゲーションからコミュニケーションウィジェットを選択してください。以下のような画面が表示されます。

「ウィジェットを追加」からチャットを作成します。
名前は任意のものを入力し、通話オプションのチェックを外します。
コンタクトフローには、「Sample inbound flow(first contact experience)」を選択しておきます。
これで「保存して続行」を押下します。

続いてウィジェットをカスタマイズする画面になりますが、ここではアイコンやヘッダーの色などスタイルを選択できます。こちらはお好みで設定してください。その後、「保存して続行」を押下します。
最後にドメインとセキュリティを設定します。表示するWebサイトのドメインを入力してください。セキュリティ追加は今回はデモなのでスキップします。
全て設定が終わると、ウィジェットのスクリプトが生成されます。アプリのHTMLlにscriptタグを貼り付けましょう。ブラウザでチャットが表示できるようになります。

エージェント側ですが、管理画面上部にあるエージェントWorkspaceを選択します。
以下のような画面が表示されます。ここで顧客とチャットでやり取りすることができます。

顧客がチャットを始めると以下のように通知が来るので顧客とチャットでのやり取りを開始できます。
プロファイルを作成することで対応した顧客の情報を残すことも可能です。いろいろ触ってみてください!

おまけ
ここまででAmazon Connectのチャットを体験することができたかと思います。当然ですが設定をもっと細かく指定することもできるので、いくつか紹介したいと思います!
フローについて
先ほどのコンタクトフローでは、「Sample inbound flow(first contact experience)」を選択しました。タブからフローを確認していただくと、選択したものと同じフローを含むいくつかのフローが確認できるかと思います。
Amazon Connectのインスタンスを作成すると自動的に作成されます。「sample~」は顧客がリクエストしてからエージェントにつながるまでの一般的なフローになります。「default~」のフローはAmazon Connectを利用する中で標準で使用されているフローです。
このフローを作成することで顧客がチャットや通話を開始してからエージェントと会話する流れを作成することができます。フローはブロックを矢印で繋いでいくことで直感的に作成することができます!
フローについての詳細は、Amazon Web Service Japan公式のYoutubeをチェックするのがおすすめです。
営業時間を設定したい場合
複数の国でサービスが利用される場合、国によって営業時間が変わってくるので国別に設定が必要になるかと思います。いろいろと設定が必要なので以下で説明いたします。
設定方法は、ルーティングのタブからオペレーション時間を選択し、新しい時間のセットから営業所別のオペレーション時間を設定します。
次に、同じくルーティングタブのキューを選択しキューを作成します。このキューで先ほど作成したオペレーション時間を設定し保存します。
例えば、アメリカのオペレーション時間を設定したらアメリカキューを作成し、オペレーション時間にアメリカを設定するようなイメージです。
キューが作成できたら、次はプロファイルを作成します。プロファイルのキューで、作成したキューを選択して下さい。
そしてこのプロファイルを各ユーザーに割り当てます。ユーザー管理のタブでユーザーを選択し、ルーティングプロファイルに、作成したプロファイルを設定して下さい。
フローを作成し、言語コードによってフローを分岐させることでキューを分け、どのプロファイルにリクエストを送るかを指定できます。こうすることでアメリカからのリクエストはアメリカキュー、日本からのリクエストは日本キューなどのように設定できます!

ユーザーによって言語を変える方法
営業時間の項で国ごとにエージェントを変えましたが、そうなるとチャットのメッセージなどもユーザーの言語によって変えたいかと思います。
そのためにはまずAPIを用意し、Attributesにlanguageを設定しAmazon Connectに言語コードを送る必要があります。
↓Lambdaで作成したAPIコードの一部
const params = {
InstanceId: "xxxxxx-xxxx-xxxx-xxxx-xxxxxx", // Amazon ConnectのインスタンスID
ContactFlowId: "xxxxxx-xxxx-xxxx-xxxx-xxxxxx",// チャット用コンタクトフローのID
Attributes: {
language,
},
};
const connect = new Connect({ region: "us-west-2" });
const response = await connect.startChatContact(params);
その後、フローの設定で「コンタクト属性を確認する」ブロックの設定でキーと値を設定し、各々のプロンプトが再生されるようにブロックを矢印で繋ぐと、英語や日本語などユーザーによって異なる言語を返すような設定が可能となります。

最後に
今回はデフォルトの設定でサクッと有人チャットを作成しました。Amazon connectを使用すれば簡単にカスタマーセンターを作成できます。
またフローをカスタマイズすることで色々なシチュエーションにも対応できます!
Amazon ConnectはAmazon Web Service Japanの公式Youtubeチャンネルで複数取り上げられているので、興味があれば見てみてください!