はじめに

Amazon Connectは、AWSが提供するクラウド型のコールセンターサービスです。低コストで素早くコールセンターをセットアップできる便利なサービスですが、デフォルトの機能だけでは既存のウェブアプリケーションに統合することはできません。そのような場面で役立つのが、Amazon Connect Streams APIです。
Amazon Connect Streams APIを使用すると、ウェブアプリに簡単に組み込むことができるだけでなく、顧客の電話番号や名前などの情報を表示することが可能になり、自由にカスタマイズすることができます。
今回はVueを使用したWebアプリにAmazon ConnectのCCP(Contact Control Pannel)を組み込みます。

導入

作業用ディレクトリ作成

npm create vue@latest
cd connect-streams-practice
npm install

Amazon Connect Streams APIインストール

npm install amazon-connect-streams

App.vueにCCP追加

instanceURLにはAmazon ConnectのインスタンスのURLを、regionには作成したAmazon Connectのインスタンスがあるリージョンを指定してください。

<div class="connect-widget">
 <div id="container-div"></div>
</div>

<script setup type="ts">
 import { onMounted } from 'vue';
 import 'amazon-connect-streams';

 const instanceURL = "https://my-instance-domain.my.connect.aws/ccp-v2/";

 onMounted(() => {
  const containerDiv = document.getElementById("container-div");

  connect.core.initCCP(containerDiv, {
   ccpUrl: instanceURL, // REQUIRED
   loginPopup: true, // optional, defaults to `true`
   loginPopupAutoClose: true, // optional, defaults to `false`
   loginOptions: { // optional, if provided opens login in new window
    autoClose: true, // optional, defaults to `false`
    height: 600, // optional, defaults to 578
    width: 400, // optional, defaults to 433
    top: 0, // optional, defaults to 0
    left: 0 // optional, defaults to 0
   },
   region: "ap-northeast-1", // REQUIRED for `CHAT`, optional otherwise
   softphone: { // optional, defaults below apply if not provided
    allowFramedSoftphone: true, // optional, defaults to false
    disableRingtone: false, // optional, defaults to false
    allowFramedVideoCall: true, // optional, default to false
    allowEarlyGum: true // optional, default to true
   },
   task: {
    disableRingtone: false, // optional, defaults to false
   },
   pageOptions: { // optional
    enableAudioDeviceSettings: false, // optional, defaults to 'false'
    enableVideoDeviceSettings: false, // optional, defaults to 'false'
    enablePhoneTypeSettings: true // optional, defaults to 'true'
   },
   shouldAddNamespaceToLogs: false, // optional, defaults to 'false'
   ccpAckTimeout: 1000, // optional, defaults to 3000 (ms)
   ccpSynTimeout: 3000, // optional, defaults to 1000 (ms)
   ccpLoadTimeout: 5000 // optional, defaults to 5000 (ms)
  });
 });
</script>

ドメインの承認

ドメインの認証を行う必要があります。
Amazon Connectのコンソール上で「承認済みのオリジン」に入り「ドメインを追加ボタン」でドメインを追加してください。

起動確認

Vueを起動するとCCPが表示されます!

通話確認

電話をかけるとCCPに着信が来ます

通話時の画面

通話終了時の画面

「連絡先を閉じる」を押した後の画面

まとめ

Amazon Connect Streamsを使用すると簡単にWebアプリにコールセンター機能を実装できることが分かりました!
皆さんも是非使ってみてください!