

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Connect 客服人員事件串流
<a name="agent-event-streams"></a>

Amazon Connect 客服人員事件串流為 Amazon Kinesis Data Streams，可近乎即時回報 Amazon Connect 執行個體中的客服人員活動。發佈到串流的事件 (包含這些 CCP 事件)：
+ 客服人員登入
+ 客服人員登出
+ 客服人員與聯絡案例連線
+ 客服人員狀態變更，例如變更為可處理聯絡案例、休息時間或培訓。

可使用客服人員事件串流來建立儀表板，以顯示客服人員的資訊與事件、將事件串流整合至人力管理 (WFM) 解決方案，以及設定會觸發特定客服人員活動自訂通知的提醒工具。客服人員事件串流可協助您管理客服人員的人力分配和效率。

**Topics**
+ [在 Amazon Connect 中啟用客服人員事件串流以報告客服人員活動](agent-event-streams-enable.md)
+ [Amazon Connect 中的範例客服人員事件串流](sample-agent-event-stream.md)
+ [確認聯絡中心客服人員的 ACW (聯絡後工作) 時間](determine-acw-time.md)
+ [Amazon Connect 中的客服人員事件串流資料模型](agent-event-stream-model.md)

# 在 Amazon Connect 中啟用客服人員事件串流以報告客服人員活動
<a name="agent-event-streams-enable"></a>

客服人員事件串流並未預設為啟用。在啟用 Amazon Connect 內的客服人員事件串流前，請先在 Amazon Kinesis Data Streams 建立資料串流。然後請選擇 Kinesis 串流做為客服人員事件串流要使用的串流。雖然客服人員事件串流和聯絡記錄可以使用相同的串流，但若各使用獨立的串流，串流資料的管理和取得會輕鬆許多。如需詳細資訊，請參閱《[Amazon Kinesis Data Streams 開發人員指南](https://docs.aws.amazon.com/streams/latest/dev/)》。

當資料傳送至 Kinesis 時，所用的分割區索引鍵是客服人員的 ARN。一位客服人員的所有事件會傳送至相同的碎片，且會忽略同個串流中的重新分片事件。

**注意**  
如果您為客服人員事件串流選擇的 Kinesis 串流啟用伺服器端加密，則 Amazon Connect 將無法發佈到串流。原因在於它沒有 Kinesis `kms:GenerateDataKey` 的許可。若要解決這個問題，請先為排定的報告啟用加密或記錄交談。接著， AWS KMS key 使用 KMS 建立 進行加密。最後，為您用於排程報告加密或交談紀錄的 Kinesis 資料串流選擇相同的 KMS 金鑰，以便 Amazon Connect 具備適當許可來加密傳送到 Kinesis 的資料。如需建立 KMS 金鑰的詳細資訊，請參閱[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。

**啟用客服人員事件串流**

1. 在 [https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/connect/) 開啟 Amazon Connect 主控台。

1. 請至主控台，在要啟用客服人員事件串流的執行個體資料欄上，選擇**執行個體別名**中的名稱。

1. 選擇**資料串流**，再選擇**啟用資料串流**。

1. 在 **客服人員事件** 之下，選擇要使用的 Kinesis 串流，再選擇 **儲存**。

# Amazon Connect 中的範例客服人員事件串流
<a name="sample-agent-event-stream"></a>

在下列客服人員事件串流範例中，系統會將客服人員指派至轉接描述檔，要求他們同時接聽聊天和通話。他們可以一次接聽一個通話，以及最多三個聊天。

**注意**  
有關客服人員可以同時進行多少聊天和任務，請參閱 [Amazon Connect 服務配額](amazon-connect-service-limits.md)。

```
{
    "AWSAccountId": "012345678901",
    "AgentARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent/agent-ARN",
    "CurrentAgentSnapshot": 
      {
    "AgentStatus": {
            "ARN": "example-ARN", //The ARN for the agent's current agent status (not for the agent).
            "Name": "Available",  //This shows the agent status in the CCP is set to Available. 
            "StartTimestamp": "2019-08-13T20:52:30.704Z"
        },
     "NextAgentStatus": {
            "Name": "Lunch", //They set their next status, which pauses new contacts being routed to them while they finish their current contacts.
            "ARN": "example-ARN2",  //The ARN of the agent status that the agent has set as their next status. 
            "EnqueuedTimestamp": "2019-08-13T20:58:00.004Z",   //When the agent set their next status and paused routing of incoming contacts.
        }
      } ,
        "Configuration": {
            "AgentHierarchyGroups": null,
            "FirstName": "AgentEventStreamTest",
            "LastName": "Agent",
            "Proficiencies": [{
                 "Level": 3.0,
                 "Name": "Technology",
                 "Value": "Kinesis"
             }, {
                 "Level": 1.0,
                 "Name": "Location",
                 "Value": "WA"
             }],
            "RoutingProfile": {
                "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN",
                "Concurrency": [
                    {
                        "AvailableSlots": 3, //This shows the agent has 3 slots available. 
                                            //They aren't on any chats right now.
                        "Channel": "CHAT",
                        "MaximumSlots": 3  //The agent's routing profile allows them to take up to 3 chats.
                    },
                    {
                        "AvailableSlots": 1, //The agent has 1 slot available to take a call.
                        "Channel": "VOICE",
                        "MaximumSlots": 1  //The agent's routing profile allows them to take 1 call at a time.
                    }
                ],
                "DefaultOutboundQueue": {
                    "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN",
                    "Channels": [
                        "VOICE"  //This outbound queue only works for calls. 
                    ],
                    "Name": "OutboundQueue"  
                },
                "InboundQueues": [
                    {
                        "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/agent/agent-ARN",
                        "Channels": [
                            "VOICE",
                            "CHAT"
                        ],
                        "Name": null  //This queue has a name of "null" because it's an agent queue, 
                                      //and agent queues don't have names.
                    },
                    {
                        "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN",
                        "Channels": [
                            "CHAT",
                            "VOICE"
                        ],
                        "Name": "Omni-channel-queue" //This inbound queue takes both chats and calls. 
                    }
                ],
                "Name": "AgentEventStreamProfile"
            },
            "Username": "aestest"
        },
        "Contacts": [ ]
    },
    "EventId": "EventId-1",
    "EventTimestamp": "2019-08-13T20:58:44.031Z",
    "EventType": "HEART_BEAT",
    "InstanceARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111",
    "PreviousAgentSnapshot": {
        "AgentStatus": {
            "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN",
            "Name": "Offline",
            "StartTimestamp": "2019-08-13T20:52:30.704Z"
        },
        "Configuration": {
            "AgentHierarchyGroups": null,
            "FirstName": "AgentEventStreamTest",
            "LastName": "Agent",
            "Proficiencies": [{
                 "Level": 3.0,
                 "Name": "Technology",
                 "Value": "Kinesis"
             }, {
                 "Level": 1.0,
                 "Name": "Location",
                 "Value": "WA"
             }],
            "RoutingProfile": {
                "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN",
                "Concurrency": [
                    {
                        "AvailableSlots": 3,
                        "Channel": "CHAT",
                        "MaximumSlots": 3
                    },
                    {
                        "AvailableSlots": 1,
                        "Channel": "VOICE",
                        "MaximumSlots": 1
                    }
                ],
                "DefaultOutboundQueue": {
                    "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN",
                    "Channels": [
                        "VOICE"
                    ],
                    "Name": "OutboundQueue"
                },
                "InboundQueues": [
                    {
                        "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/agent/agent-ARN",
                        "Channels": [
                            "VOICE",
                            "CHAT"
                        ],
                        "Name": null
                    },
                    {
                        "ARN": "arn:aws:connect:us-west-2:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN",
                        "Channels": [
                            "CHAT",
                            "VOICE"
                        ],
                        "Name": "Omni-channel-queue"
                    }
                ],
                "Name": "AgentEventStreamProfile"
            },
            "Username": "aestest"
        },
        "Contacts": [ ]
    },
    "Version": "2017-10-01"
}
```

# 確認聯絡中心客服人員的 ACW (聯絡後工作) 時間
<a name="determine-acw-time"></a>

客服人員事件串流中並沒有任何事件可指出聯絡處於「聯絡後工作 (ACW)」狀態的時間長度，以及客服人員執行 ACW 的時間長度。不過，客服人員事件串流中還有其他資料可供您用來了解這個項目。

首先，辨別聯絡案例何時進入 ACW。以下是執行方法：

1. 辨別聯絡案例和客服人員之間的對話何時`ENDED`。

1. 檢視事件的 `StateStartTimeStamp`。

例如，在下列的客服人員事件串流輸出中，聯絡案例是在「**StateStartTimestamp**」：「2019-05-25T18:55:27.017Z」進入 ACW。

**提示**  
在客服人員事件串流中，事件會以反向時間順序列出。我們建議從每個範例的底部開始，閱讀以下範例。

```
{
    "AWSAccountId": "012345678901",
    "AgentARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent/agent-ARN",
    "CurrentAgentSnapshot": {
        "AgentStatus": {
            "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN",
            "Name": "Available",  //This just refers to the status that the agent sets manually in the CCP. 
                It means they are ready to handle contacts, not say, on Break.  
            "StartTimestamp": "2019-05-25T18:43:59.049Z"
        },
        "Configuration": {
            "AgentHierarchyGroups": null,
            "FirstName": "(Removed)",
            "LastName": "(Removed)",
            "RoutingProfile": {
                "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN",
                "DefaultOutboundQueue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "InboundQueues": [
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                        "Name": "BasicQueue"
                    },
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue",
                        "Name": "PrimaryQueue"
                    }
                ],
                "Name": "Basic Routing Profile"
            },
            "Username": "(Removed)"
        },
        "Contacts": [
            {
                "Channel": "VOICE",
                "ConnectedToAgentTimestamp": "2019-05-25T18:55:21.011Z",
                "ContactId": "ContactId-1",  //This is the same contact the agent was working on when their state was CONNECTED (below). 
                    Since it's still the same contact but they aren't connected, we know the contact is now in ACW state.
                "InitialContactId": null,
                "InitiationMethod": "OUTBOUND",  //This indicates how the contact was initiated. OUTBOUND means the agent initiated contact with the customer. 
                    INBOUND means the customer initiated contact with your center.
                "Queue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "QueueTimestamp": null,
                "State": "ENDED",  //This shows the conversation has ended. 
                "StateStartTimestamp": "2019-05-25T18:55:27.017Z"  //This is the timestamp for the ENDED event (above), 
                    which is when the contact entered ACW state.
            }
        ]
    },
    "EventId": "EventId-1",
    "EventTimestamp": "2019-05-25T18:55:27.017Z",
    "EventType": "STATE_CHANGE",  //This shows that the state of the contact has changed; above we can see the conversation ENDED. 
    "InstanceARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111",
    "PreviousAgentSnapshot": {
        "AgentStatus": {
            "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN",
            "Name": "Available", //This just refers to the status that the agent sets manually in the CCP. 
                It means they were ready to handle contacts, not say, on Break.  
            "StartTimestamp": "2019-05-25T18:43:59.049Z"
        },
        "Configuration": {
            "AgentHierarchyGroups": null,
            "FirstName": "(Removed)",
            "LastName": "(Removed)",
            "RoutingProfile": {
                "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN",
                "DefaultOutboundQueue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "InboundQueues": [
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                        "Name": "BasicQueue"
                    },
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue",
                        "Name": "PrimaryQueue"
                    }
                ],
                "Name": "Basic Routing Profile"
            },
            "Username": "(Removed)"
        },
        "Contacts": [
            {
                "Channel": "VOICE",  //This shows the agent and contact were talking on the phone. 
                "ConnectedToAgentTimestamp": "2019-05-25T18:55:21.011Z",
                "ContactId": "ContactId-1",  //This shows the agent was working with a contact identified as "ContactId-1".
                "InitialContactId": null,
                "InitiationMethod": "OUTBOUND",
                "Queue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "QueueTimestamp": null,
                "State": "CONNECTED",  //This shows the contact was CONNECTED to the agent, instead of say, MISSED. 
                "StateStartTimestamp": "2019-05-25T18:55:21.011Z"  //This shows when the contact was connected to the agent.
            }
        ]
    },
    "Version": "2019-05-25"
}
```

接著，判斷聯絡案例何時離開 ACW。以下是執行方法：

1. 尋找 `CurrentAgentSnapshot` 中哪裡沒有聯絡案例，以及 `PreviousAgentSnapshot` 中哪裡列出的聯絡案例狀態等於已結束。

   由於 STATE\$1CHANGE 事件也會在客服人員的組態變更時發生 (例如指派不同的轉接描述檔)，因此此步驟可確認您擁有正確的事件。

1. 尋找何處的 `EventType` =「STATE\$1CHANGE」。

1. 檢視它的 `EventTimeStamp`。

例如，在下列的客服人員事件串流檔案中，聯絡人是在「**EventTimestamp**」：「2019-05-25T18:55:32.022Z」離開 ACW。

```
{
    "AWSAccountId": "012345678901",
    "AgentARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent/agent-ARN",
    "CurrentAgentSnapshot": {
        "AgentStatus": {
            "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN",
            "Name": "Available",  //This just refers to the status that the agent sets manually in the CCP. It means they 
                are ready to handle contacts, not say, on Break. 
            "StartTimestamp": "2019-05-25T18:43:59.049Z"
        },
        "Configuration": {
            "AgentHierarchyGroups": null,
            "FirstName": "(Removed)",
            "LastName": "(Removed)",
            "RoutingProfile": {
                "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN",
                "DefaultOutboundQueue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "InboundQueues": [
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                        "Name": "BasicQueue"
                    },
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue",
                        "Name": "PrimaryQueue"
                    }
                ],
                "Name": "Basic Routing Profile"
            },
            "Username": "(Removed)"
        },
        "Contacts": []  //Since a contact isn't listed here, it means ACW for ContactId-1 (below)
            is finished, and the agent is ready for a new contact to be routed to them. 
    },
    "EventId": "477f2c4f-cd1a-4785-b1a8-97023dc1229d",
    "EventTimestamp": "2019-05-25T18:55:32.022Z",  //Here's the EventTimestamp for the STATE_CHANGE event. This is when
        the contact left ACW.
    "EventType": "STATE_CHANGE",  //Here's the STATE_CHANGE
    "InstanceARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111",
    "PreviousAgentSnapshot": {
        "AgentStatus": {
            "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/agent-state/agent-state-ARN",
            "Name": "Available",  //This just refers to the status that the agent sets manually in the CCP. 
                It means they were at work, not say, on Break. 
            "StartTimestamp": "2019-05-25T18:43:59.049Z"
        },
        "Configuration": {
            "AgentHierarchyGroups": null,
            "FirstName": "(Removed)",
            "LastName": "(Removed)",
            "RoutingProfile": {
                "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/routing-profile/routing-profile-ARN",
                "DefaultOutboundQueue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "InboundQueues": [
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                        "Name": "BasicQueue"
                    },
                    {
                        "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-PrimaryQueue",
                        "Name": "PrimaryQueue"
                    }
                ],
                "Name": "Basic Routing Profile"
            },
            "Username": "(Removed)"
        },
        "Contacts": [
            {
                "Channel": "VOICE",
                "ConnectedToAgentTimestamp": "2019-05-25T18:55:21.011Z",
                "ContactId": "ContactId-1",  //This is the ContactId of the customer the agent was working on previously. 
                "InitialContactId": null,
                "InitiationMethod": "OUTBOUND",
                "Queue": {
                    "ARN": "arn:aws:connect:us-east-1:012345678901:instance/aaaaaaaa-bbbb-cccc-dddd-111111111111/queue/queue-ARN-for-BasicQueue",
                    "Name": "BasicQueue"
                },
                "QueueTimestamp": null,
                "State": "ENDED", //The ACW for ContactId-1 has ended.  
                "StateStartTimestamp": "2019-05-25T18:55:27.017Z"
            }
        ]
    },
    "Version": "2019-05-25"
}
```

最後，計算聯絡案例處於 ACW 狀態的時間，以及客服人員在此狀態的工作時間：
+ 從「**EventTimestamp**」：「2019-05-25T18:55:32.022Z」減去「**StateStartTimestamp**」：「2019-05-25T18:55:27.017Z」。

在此範例中，客服人員為 ContactId-1 花了 5.005 秒的時間執行 ACW。

# Amazon Connect 中的客服人員事件串流資料模型
<a name="agent-event-stream-model"></a>

會以 JavaScript Object Notation (JSON) 格式建立客服人員事件串流。每個事件類型都會傳送 JSON blob 至 Kinesis 資料串流。客服人員事件串流包含了以下幾種事件類型：
+ LOGIN 客服人員登入聯絡中心。
+ LOGOUT 客服人員登出聯絡中心。
+ STATE\$1CHANGE 會變更為以下其中一項：
  + 客服人員在聯絡控制面板 (CCP) 中變更其狀態。例如，他們從可用變更為休息時間。
  + 客服人員與聯絡案例之間的對話狀態已變更。例如，他們已連上線，接著保留通話。
  + 客服人員組態的下列其中一個設定已變更：
    + 其路由設定檔
    + 其路由設定檔中的佇列
    + 自動接聽電話
    + Sip 地址
    + 客服人員階層群組
    + CCP 中的語言偏好設定設定
+ HEART\$1BEAT 在間隔期間內未發佈任何其他事件的情況下，此事件每 120 秒會發佈一次。
**注意**  
這些事件會在客服人員登出後一小時內繼續發佈。

**Topics**
+ [AgentEvent](#AgentEvent)
+ [AgentSnapshot](#AgentSnapshot)
+ [Configuration](#Configuration)
+ [聯絡物件](#Contact)
+ [HierarchyGroup 物件](#Hierarchygroup-object)
+ [AgentHierarchyGroups 物件](#Hierarchygroups-object)
+ [熟練度](#proficiency-object)
+ [佇列物件](#queue-object)
+ [RoutingProfile 物件](#routingprofile)

## AgentEvent
<a name="AgentEvent"></a>

`AgentEvent` 物件含有以下屬性：

**AgentARN**  
客服人員帳戶的 Amazon Resource Name (ARN)。  
類型：ARN

**AWSAccountId**  
與 Amazon Connect 執行個體相關聯之 AWS 帳戶的 12 位數 AWS 帳戶 ID。  
類型：字串

**CurrentAgentSnapshot**  
含有客服人員設定，例如使用者名稱、姓氏、名字、轉接設定檔、階層群組、客服人員狀態。  
類型：`AgentSnapshot` 物件

**EventId**  
事件的全域唯一識別符 (UUID)。  
類型：字串

**EventTimestamp**  
世界的時間戳記，採 ISO 8601 標準格式。  
類型：字串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*:*sss*Z)

**EventType**  
事件的類型。  
有效值：`STATE_CHANGE` \$1 `HEART_BEAT` \$1 `LOGIN` \$1 `LOGOUT` 

**InstanceARN**  
Amazon Connect 執行個體的 Amazon Resource Name，會在其中建立客服人員的使用者帳戶。  
類型：ARN

**PreviousAgentSnapshot**  
含有客服人員設定，例如使用者名稱、姓氏、名字、轉接設定檔、階層群組、客服人員狀態。  
類型：`AgentSnapshot` 物件

**版本**  
日期格式的客服人員事件串流版本，如 2019-05-25。  
類型：字串

## AgentSnapshot
<a name="AgentSnapshot"></a>

`AgentSnapshot` 物件含有以下屬性：

**AgentStatus**  
客服人員狀態資料，包括：  
+ ARN 客服人員目前狀態的 ARN (不適用於客服人員)。
+ Name 這是[在 CCP 中手動設定之客服人員的狀態](metrics-agent-status.md)，或主管手動[在即時指標報告中變更的狀態](rtm-change-agent-activity-state.md)。

  例如，其狀態可能是**可用**，這表示他們已準備好接受轉接給他們的來電聯絡案例。或者，可能是自訂狀態，例如休息或培訓，這表示無法轉接來電聯絡案例給他們，但他們仍然可以撥出電話。

  若狀態為 `Error`，表示有內部 Amazon Connect 錯誤。
+ StartTimestamp 客服人員進入該狀態時，當下時間的 ISO 8601 標準格式時間戳記。

  類型：字串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*:*sss*Z)
+ Type ROUTABLE、CUSTOM 或 OFFLINE
類型：`AgentStatus` 物件。

**NextAgentStatus**  
如果客服人員設定下一個客服人員，則在此顯示資料。  
+ ARN 客服人員已將下一個客服人員狀態設定為 ARN。
+ Name 這是客服人員已為下一個客服人員狀態設定的名稱。
+ EnqueuedTimestamp 以 ISO 8601 標準格式顯示的時間戳記，客服人員設定其下一個狀態並暫停接收聯絡人路由的時間戳記。

  類型：字串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*:*sss*Z)
類型：`NextAgentStatus` 物件。

**Configuration**  
客服人員的相關資訊，包括：  
+ FirstName 客服人員的名字。
+ HierarchyGroups 指派給客服人員的階層群組 (若有)。
+ LastName 客服人員的姓氏。
+ RoutingProfile 指派給客服人員的轉接描述檔。
+ Username 客服人員的 Amazon Connect 使用者名稱。
類型：`Configuration` 物件

**聯絡人**  
聯絡人  
類型：`List of Contact Objects` 物件

## Configuration
<a name="Configuration"></a>

`Configuration` 物件含有以下屬性：

**FirstName**  
於客服人員 Amazon Connect 帳戶輸入的姓名。  
類型：字串  
長度：1 - 100

**AgentHierarchyGroups**  
事件相關客服人員的階層群組，最多可有五個群組層級。  
類型：`AgentHierarchyGroups` 物件

**LastName**  
於客服人員 Amazon Connect 帳戶輸入的姓氏。  
類型：字串  
長度：1 - 100

**熟練度**  
分配給客服人員的所有熟練度的清單。  
類型：熟練度對象清單

**RoutingProfile**  
指派給事件相關客服人員的轉接設定檔。  
類型：`RoutingProfile` 物件。

**使用者名稱**  
客服人員 Amazon Connect 使用者帳戶的使用者名稱。  
類型：字串  
長度：1 - 100

## 聯絡物件
<a name="Contact"></a>

`Contact` 物件含有以下屬性：

**ContactId**  
聯絡人的識別碼。  
類型：字串  
長度：1 - 256

**InitialContactId**  
已轉接聯絡人的原始識別碼。  
類型：字串  
長度：1 - 256

**Channel**  
通訊的方式。  
有效值：`VOICE`、`CHAT`、`TASKS`

**InitiationMethod**  
代表聯絡案例最初啟動的方式。  
有效值：  
+  `INBOUND`：客戶啟動與您聯絡中心的語音 (電話) 聯絡。
+  `OUTBOUND`：客服人員使用 CCP 撥打客戶的號碼，藉此啟動與客戶的語音 (電話) 聯絡。這個啟動方法會呼叫 [StartOutboundVoiceContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundVoiceContact.html) API。
+  `TRANSFER`：客服人員使用 CCP 中的快速連線，已將客戶轉接至另一個客服人員或佇列。這將建立新的聯絡記錄。
+  `CALLBACK`：在回撥流程的過程中已聯絡客戶。

  如需此案例中 InitiationMethod 的詳細資訊，請參閱 [Amazon Connect 即時指標中排入佇列的回撥](about-queued-callbacks.md)。
+  `API`：由 API 使用 Amazon Connect 啟動聯絡。這可能是您使用 [StartOutboundVoiceContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartOutboundVoiceContact.html) API 建立並排入客服人員佇列的外撥聯絡，也可能是由客戶對您的聯絡中心起始的即時聊天，此時您呼叫了 [StartChatContact](https://docs.aws.amazon.com/connect/latest/APIReference/API_StartChatContact.html) API。
+  `WEBRTC_API`：聯絡使用通訊小工具對客服人員進行應用程式內語音/視訊通話。
+  `QUEUE_TRANSFER`：當客戶位於一個佇列 (聆聽客戶佇列流程) 時，系統使用聯絡流程區塊將其轉接至另一個佇列。
+  `MONITOR`：主管已啟動客服人員監視。主管可以靜靜監視客服人員和客戶，或是介入對話。
**注意**  
只有當您主動選擇[加入多方通話和加強監視](update-instance-settings.md#update-telephony-options)時，才會顯示此狀態。
+  `DISCONNECT`：當 [設定中斷連線流程](set-disconnect-flow.md) 區塊觸發時，會指定聯絡期間中斷連線事件發生後執行的流程。

  中斷連線事件是指：
  + 聊天或任務已中斷連線。
  + 由於流程動作，任務會中斷連線。
  + 任務到期。當任務完成其到期計時器時，會自動中斷連線。預設值為 7 天，任務到期最多可設定 90 天。

  如果在中斷連線流程期間建立新的聯絡人，則新聯絡人的啟動方法是中斷連線。
+  `EXTERNAL_OUTBOUND`：客服人員使用 CCP 中的快速連線或流程區塊，與您聯絡中心的外部參與者發起語音 (電話) 聯絡。
+  `AGENT_REPLY`：客服人員已回覆傳入電子郵件聯絡，以建立傳出電子郵件回覆。
+  `FLOW`：由流程區塊啟動的電子郵件。
+  `CAMPAIGN_PREVIEW`：聯絡人是由使用預覽撥號模式的對外行銷活動起始。客服人員會在撥出通話之前預覽客戶資訊。

**State**  
聯絡人的狀態。  
有效值：`INCOMING` \$1 `PENDING` \$1 `CONNECTING` \$1 `CONNECTED` \$1 `CONNECTED_ONHOLD` \$1 `MISSED` \$1 `PAUSED` \$1 `REJECTED` \$1 `ERROR` \$1 `ENDED`   
`PAUSED` 狀態僅適用於任務。

**StateStartTimestamp**  
聯絡人輸入目前狀態時的時間。  
類型：字串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*:*sss*Z)

**ConnectedToAgentTimestamp**  
聯絡人連接至客服人員時的時間。  
類型：字串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*:*sss*Z)

**QueueTimestamp**  
聯絡人放入佇列時的時間。  
類型：字串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*:*sss*Z)

**佇列**  
排入聯絡人的佇列。  
類型：`Queue` 物件

## HierarchyGroup 物件
<a name="Hierarchygroup-object"></a>

`HierarchyGroup` 物件含有以下屬性：

**ARN**  
客服人員階層的 Amazon Resource Name (ARN)。  
類型：字串

**名稱**  
階層群組的名稱。  
類型：字串

## AgentHierarchyGroups 物件
<a name="Hierarchygroups-object"></a>

`AgentHierarchyGroups` 物件含有以下屬性：

**Level1**  
包含指派給客服人員的階層 Level1 詳細資訊。  
類型：`HierarchyGroup` 物件

**Level2**  
包含指派給客服人員的階層 Level2 詳細資訊。  
類型：`HierarchyGroup` 物件

**Level3**  
包含指派給客服人員的階層 Level3 詳細資訊。  
類型：`HierarchyGroup` 物件

**Level4**  
包含指派給客服人員的階層 Level4 詳細資訊。  
類型：`HierarchyGroup` 物件

**Level5**  
包含指派給客服人員的階層 Level5 詳細資訊。  
類型：`HierarchyGroup` 物件

## 熟練度
<a name="proficiency-object"></a>

`Proficiency` 物件含有以下屬性：

**名稱**  
預先定義的屬性名稱。  
類型：字串  
長度：1-64

**Value**  
預先定義的屬性值。  
類型：字串

**熟練度等級**  
客服人員的熟練度。  
類型：浮點數  
有效值：1.0、2.0、3.0、4.0 和 5.0

## 佇列物件
<a name="queue-object"></a>

`Queue` 物件含有以下屬性：

**ARN**  
佇列的 Amazon Resource Name (ARN)。  
類型：字串

**名稱**  
佇列的名稱。  
類型：字串

**頻道**  
通訊頻道的類型。  
類型：清單或頻道物件

## RoutingProfile 物件
<a name="routingprofile"></a>

`RoutingProfile` 物件含有以下屬性：

**ARN**  
客服人員轉接設定檔的 Amazon Resource Name (ARN)。  
類型：字串

**名稱**  
轉接設定檔的名稱。  
類型：字串

**InboundQueues**  
與客服人員轉接描述檔相關聯的 `Queue` 物件。  
類型：`Queue` 物件的清單

**DefaultOutboundQueue**  
客服人員轉接設定檔的預設外撥佇列。  
類型：`Queue` 物件

**並行**  
並行資訊的清單。並行資訊物件具有 AvailableSlots (數字)、Channel (頻道物件) 和 MaximumSlots (數字) 值。