この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
事業開発部の酒匂です。
先日、コンタクト履歴情報(Contact Trace Record)をKinesis firehose経由でS3に保存する手順について書いたので、今回はAgent Event StreamsをKinesis streamに送る手順について書いていきたいと思います。
Amazon Connectのデータストリーミング機能でコンタクト履歴情報をKinesis Firehose経由でS3に保存する
データストリーミングの設定
Amazon Connectインスタンスの設定メニューの「データストリーミング」を選択します。「データストリーミングの有効化」にチェックをつけます。
エージェントイベントの「新しいKinesis Streamを作成する」を選択します。今回の手順ではKinesis Streamを作成します。
ちなみにKinesis Streamはエージェントイベント用と問い合わせ追跡レコード用と共用することも可能ですが、別々に分けることが推奨されております。
Kinesisストリームの作成
下記の画面が表示されたら、kinesisストリームの作成を選択します。
Kinesisストリームの名前に任意の名前を入力します。
シャード数は、今回は検証用なので、1で作成することにします。入力したら、Kinesisストリームの作成を選択します。
作成されるまで、待ちます。
作成されました。
データストリーミングの設定(続き)
先ほど作成したkinesisストリームを設定し、「保存」を選択します。
動作確認
amazon connectにログインし、CCP上でエージェントのステータス変更などを行います。そのあとにKinesisストリームのデータを参照してみます。
Kinesisストリームの情報を参照します。
aws kinesis --profile amazon-connect describe-stream --stream-name amazon-connect-event-streams-test
{
"StreamDescription": {
"KeyId": null,
"EncryptionType": "NONE",
"StreamStatus": "ACTIVE",
"StreamName": "amazon-connect-event-streams-test",
"Shards": [
{
"ShardId": "shardId-000000000000",
"HashKeyRange": {
"EndingHashKey": "340282366920938463463374607431768211455",
"StartingHashKey": "0"
},
"SequenceNumberRange": {
"StartingSequenceNumber": "49585140691622066774210269436656396257631218903742939138"
}
}
],
"StreamARN": "arn:aws:kinesis:ap-southeast-2:************:stream/amazon-connect-event-streams-test",
"EnhancedMonitoring": [
{
"ShardLevelMetrics": []
}
],
"StreamCreationTimestamp": 1528209540.0,
"RetentionPeriodHours": 24
}
}
下記のコマンドでデータの中身を確認します。
aws kinesis --profile amazon-connect get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name amazon-connect-event-streams-test | jq -r '.ShardIterator' |xargs aws kinesis --profile amazon-connect get-records --shard-iterator | jq -r '.Records[].Data' | base64 --decode | jq
{
"AWSAccountId": "************",
"AgentARN": "arn:aws:connect:ap-southeast-2:************:instance/e7ea8566-****-****-****-2ba1b1917d1a/agent/88849252-6525-450b-9c92-ab804080517a",
"CurrentAgentSnapshot": {
"AgentStatus": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/e7ea8566-****-****-****-2ba1b1917d1a/agent-state/f5c57fc6-39bb-4c06-993a-10348e6fe73a",
"Name": "受付可",
"StartTimestamp": "2018-06-04T15:41:28.028Z"
},
"Configuration": {
"AgentHierarchyGroups": null,
"FirstName": "太郎",
"LastName": "田和",
"RoutingProfile": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/routing-profile/a4600719-b42e-4ed2-9c36-08222b8a0ef6",
"DefaultOutboundQueue": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/queue/49962424-ed87-4091-a2bc-652b76d7e0be",
"Name": "問い合わせ受付"
},
"InboundQueues": [
{
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/queue/49962424-ed87-4091-a2bc-652b76d7e0be",
"Name": "問い合わせ受付"
}
],
"Name": "問い合わせチーム"
},
"Username": "*****001"
},
"Contacts": [
{
"Channel": "VOICE",
"ConnectedToAgentTimestamp": "2018-06-04T15:43:39.039Z",
"ContactId": "c8bf3cb0-7aa7-4ac9-8977-b740e5289a2c",
"InitialContactId": "5f3929f9-d175-4453-ae29-4dd0f97b347b",
"InitiationMethod": "CALLBACK",
"Queue": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/queue/49962424-ed87-4091-a2bc-652b76d7e0be",
"Name": "問い合わせ受付"
},
"QueueTimestamp": "2018-06-04T15:40:27.027Z",
"State": "ENDED",
"StateStartTimestamp": "2018-06-04T15:43:42.042Z"
}
]
},
"EventId": "74d86e68-5769-47eb-8272-2bd27952f9bf",
"EventTimestamp": "2018-06-05T14:53:07.007Z",
"EventType": "HEART_BEAT",
"InstanceARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************",
"PreviousAgentSnapshot": {
"AgentStatus": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/agent-state/f5c57fc6-39bb-4c06-993a-10348e6fe73a",
"Name": "受付可",
"StartTimestamp": "2018-06-04T15:41:28.028Z"
},
"Configuration": {
"AgentHierarchyGroups": null,
"FirstName": "太郎",
"LastName": "田和",
"RoutingProfile": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/routing-profile/a4600719-b42e-4ed2-9c36-08222b8a0ef6",
"DefaultOutboundQueue": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/queue/49962424-ed87-4091-a2bc-652b76d7e0be",
"Name": "問い合わせ受付"
},
"InboundQueues": [
{
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/queue/49962424-ed87-4091-a2bc-652b76d7e0be",
"Name": "問い合わせ受付"
}
],
"Name": "問い合わせチーム"
},
"Username": "*****001"
},
"Contacts": [
{
"Channel": "VOICE",
"ConnectedToAgentTimestamp": "2018-06-04T15:43:39.039Z",
"ContactId": "c8bf3cb0-7aa7-4ac9-8977-b740e5289a2c",
"InitialContactId": "5f3929f9-d175-4453-ae29-4dd0f97b347b",
"InitiationMethod": "CALLBACK",
"Queue": {
"ARN": "arn:aws:connect:ap-southeast-2:************:instance/********-****-****-****-************/queue/49962424-ed87-4091-a2bc-652b76d7e0be",
"Name": "問い合わせ受付"
},
"QueueTimestamp": "2018-06-04T15:40:27.027Z",
"State": "ENDED",
"StateStartTimestamp": "2018-06-04T15:43:42.042Z"
}
]
},
"Version": "2017-10-01"
}
こんな感じでデータが登録されていることが分かりました。
さいごに
コンタクト履歴情報(Contact Trace Record)と同様に簡単な設定でデータ連携をすることができました。今後は実際にこれらのデータをどう活用していけるのか?ということについて書いてみたいと思います。