[Amazon Connect]CTRにある「InitiationTimestamp」と「ConnectedToSystemTimestamp」の違いについて

Amazon ConnectのCTRにある「InitiationTimestamp」と「ConnectedToSystemTimestamp」の違いについて調べてみた
2023.04.25

こんにちは、洲崎です。
Amazon ConnectのCTRにある「InitiationTimestamp」と「ConnectedToSystemTimestamp」の違いについて確認したので共有します。

いきなりまとめ

  • 「InitiationTimestamp」は問い合わせがスタートした時点の日時(UTC)
  • 「ConnectedToSystemTimestamp」は顧客と電話がつながった時点の日時(UTC)
  • 着信時
    • 顧客からコールがかかってきた時点で、「InitiationTimestamp」と「ConnectedToSystemTimestamp」が記録される(内容は一致する)
  • 発信時
    • 顧客側で電話を取らずに切断された場合、「InitiationTimestamp」は記録されるが、「ConnectedToSystemTimestamp」はnull(記録されない)となる

Amazon ConnectのCTR

Amazon Connectは1通話あたりCTR(問い合わせレコード)を最低1回配信します。
CTRには問い合わせを受けたエージェントの情報や、問い合わせ先情報、音声録音の情報等、様々な情報が含まれます。

このCTRはAmazon ConnectからKinesis経由でS3やOpenSearch Service等に保存し分析に利用することができます。
CTRを利用したアーキテクチャは下記ブログ等を参考にしてみてください。

CTRのタイムスタンプ

CTRに入っているタイムスタンプは8つあります。(全てUTCです)

  • InitiationTimestamp
    • 問い合わせが開始された日時
  • ConnectedToSystemTimestamp
    • お客様のエンドポイントがAmazon Connect に接続された日時
  • EnqueueTimestamp
    • 問い合わせがキューに追加された日時
  • ConnectedToAgentTimestamp
    • 問い合わせがエージェントに接続された日時
  • DisconnectTimestamp
    • お客様のエンドポイントが Amazon Connect から切断された日時
  • ScheduledTimestamp
    • 問い合わせがフローの実行をトリガーするようにスケジュールされた日時
  • GreetingStartTimestamp
    • アウトバウンド音声コールからの顧客のあいさつの開始を測定する日時
  • GreetingEndTimestamp
    • アウトバウンド音声コールからの顧客のあいさつの終了を測定する日時

この中で、「InitiationTimestamp」と「ConnectedToSystemTimestamp」の違いをあまり分かっていませんでした。
ドキュメントを見ると、INBOUND(着信)の時は、「InitiationTimestamp」と「ConnectedToSystemTimestamp」の内容が一致し、OUTBOUNDの際は挙動が異なるとのことです。

InitiationTimestamp

この問い合わせが開始された日時 (UTC 時間)。INBOUND の場合、これはリクエストが入ったときです。OUTBOUND は、エージェントがダイヤルを開始したときです。
CALLBACK は、コールバックの問い合わせが作成されたときです。TRANSFER および QUEUE_TRANSFER は、転送が開始されたときです。API の場合、これはリクエストが入ったときです。

ConnectedToSystemTimestamp

顧客のエンドポイントが Amazon Connect に接続された日時 (UTC 時間)。INBOUND の場合、これは InitiationTimestamp に一致します。
OUTBOUND、CALLBACK、および API の場合、これは顧客のエンドポイントが応答するときです。

「InitiationTimestamp」は問い合わせが開始された日時なので、受発信かかわらず、基本的にタイムスタンプが記載されるとのことです。
一方、「ConnectedToSystemTimestamp」は顧客のエンドポイント(電話番号)が接続された時で、発信の場合は通話が開始されないとタイムスタンプが記載されませんと読めます。

比較

実際に2パターン試してみたので、CTRの出力を例にみてみます。

エージェントから発信して顧客と通話した場合

CTRの中身から抜粋します。

  "Channel": "VOICE",
  "ConnectedToSystemTimestamp": "2023-04-25T10:43:25Z",
  "ContactDetails": {},
  "ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "CustomerEndpoint": {
    "Address": "+81xxxxxxxxxxxx",
    "Type": "TELEPHONE_NUMBER"
  },
  "DisconnectReason": "AGENT_DISCONNECT",
  "DisconnectTimestamp": "2023-04-25T10:43:28Z",
  "InitialContactId": null,
  "InitiationMethod": "OUTBOUND",
  "InitiationTimestamp": "2023-04-25T10:43:13Z",
  "InstanceARN": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "LastUpdateTimestamp": "2023-04-25T10:44:36Z",

「ConnectedToSystemTimestamp」と「InitiationTimestamp」がそれぞれあり内容が一致しているのがわかります。

エージェントから発信して顧客と通話せずに切断した場合

CTRの中身から抜粋します。

  "Channel": "VOICE",
  "ConnectedToSystemTimestamp": null,
  "ContactDetails": {},
  "ContactId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "CustomerEndpoint": {
    "Address": "+81xxxxxxxxxxxx",
    "Type": "TELEPHONE_NUMBER"
  },
  "DisconnectReason": "AGENT_DISCONNECT",
  "DisconnectTimestamp": "2023-04-25T10:39:22Z",
  "InitialContactId": null,
  "InitiationMethod": "OUTBOUND",
  "InitiationTimestamp": "2023-04-25T10:39:11Z",
  "InstanceARN": "arn:aws:connect:ap-northeast-1:xxxxxxxxxxxxx:instance/xxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "LastUpdateTimestamp": "2023-04-25T10:40:30Z",

「InitiationTimestamp」はありますが、通話せずに切断した場合は「ConnectedToSystemTimestamp」がNullになっている確認がとれました。

最後に

Amazon ConnectのCTRにある「InitiationTimestamp」と「ConnectedToSystemTimestamp」の違いについて確認しました。
CTRはデータ分析等で利用することが多いと思いますが、タイムスタンプの値でフィルターを行う際はnullのデータが含まれる可能性があるので、気をつけたいポイントだと考えます。

使い分けとしては、全件のCTRをタイムスタンプ順にソートしたりフィルタしたい場合は「InitiationTimestamp」を利用し、通話したデータのみを重点に分析したい場合は「ConnectedToSystemTimestamp」を利用すると良いと思いました。

ではまた!コンサルティング部の洲崎でした。