

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 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. 打开 Amazon Connect 控制台，网址为[https://console.aws.amazon.com/connect/](https://console.aws.amazon.com/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`。

例如，在以下代理事件流输出中，联系人在 “” 处进入 ACW 状态：**StateStartTimestamp**“2019-05-25T 18:55:27.017 Z”。

**提示**  
在座席事件流中，事件会按时间倒序列出。建议从每个示例的底部开始通读以下示例。

```
{
    "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` 中列出的联系的状态等于 ENDED。

   因为更改座席的配置时（例如，为他们分配了不同的路由配置文件时）也会发生 STATE\$1CHANGE 事件，所以此步骤将确认您具有正确的事件。

1. 找到 `EventType` = "STATE\$1CHANGE" 的位置。

1. 查看它的 `EventTimeStamp`。

例如，在以下代理事件流文件中，联系人将 ACW 留在 “”: **EventTimestamp**“2019-05-25T 18:55:32.022 Z”。

```
{
    "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 状态的时间，并由此计算座席为其进行工作所花费的时间：
+ 从 **StateStartTimestamp**“”: “2019-05-25T 18:55:32.022 Z” 中减去 “: 2019-05-25T 18:55:32.022 Z”。**EventTimestamp**

在此示例中，代理花了 5.005 秒完成 ACW，结果为 -1。 ContactId

# Amazon Connect 的座席活动流数据模型
<a name="agent-event-stream-model"></a>

代理事件流以 JavaScript 对象表示法 (JSON) 格式创建。对于每个事件类型，发送一个 JSON blob 到 Kinesis 数据流。以下事件类型包含在座席事件流中：
+ LOGIN — 座席登录到联络中心。
+ LOGOUT — 座席从联络中心注销。
+ STATE\$1CHANGE — 将更改为下列状态之一：
  + 座席已在联系人控制面板 (CCP) 中更改其状态。例如，他们将其从“有空”更改为“在休息”。
  + 座席和联系人之间的对话状态发生了更改。例如，他们建立连接，然后搁置。
  + 已在座席的配置中更改下列设置之一：
    + 其路由配置文件
    + 其路由配置文件中的队列
    + 自动接听呼叫
    + Sip 地址
    + 座席层次结构组
    + CCP 中的语言首选项设置
+ HEART\$1BEAT — 如果在 120 秒的间隔中没有发布任何其他事件，则发布此事件。
**注意**  
这些事件将在座席注销后最长一小时内继续发布。

**Topics**
+ [AgentEvent](#AgentEvent)
+ [AgentSnapshot](#AgentSnapshot)
+ [配置](#Configuration)
+ [联系对象](#Contact)
+ [HierarchyGroup 对象](#Hierarchygroup-object)
+ [AgentHierarchyGroups 对象](#Hierarchygroups-object)
+ [熟练度](#proficiency-object)
+ [队列对象](#queue-object)
+ [RoutingProfile 对象](#routingprofile)

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

`AgentEvent` 对象包括以下属性：

**AgentARN**  
客服账户的 Amazon 资源名称（ARN）。  
类型：ARN

**AWSAccount我是**  
与 Amazon Connect 实例关联的 AWS 账户的 12 位数 AWS 账户编号。  
类型：字符串

**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 资源名称。  
类型：ARN

**PreviousAgentSnapshot**  
包含座席配置，如用户名、名字、姓氏、路由配置文件、层次结构组、联系人和座席状态。  
类型：`AgentSnapshot` 对象

**Version**  
座席事件流的版本，采用日期格式，例如 2019-05-25。  
类型：字符串

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

`AgentSnapshot` 对象包括以下属性：

**AgentStatus**  
座席状态数据，包括：  
+ ARN — 座席当前座席状态的 ARN（不适用于座席）。
+ 名称 — 这是[他们在 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)
+ 类型 — 可路由、自定义或离线
类型：`AgentStatus` 对象。

**NextAgentStatus**  
如果座席设置了下一个座席状态，则此处会显示相关数据。  
+ ARN — 座席设置为其下一个状态的座席状态的 ARN。
+ 名称 — 这是座席设置为其下一个状态的座席状态的名称。
+ EnqueuedTimestamp— ISO 8601 标准格式的时间戳，表示代理设置下一个状态和暂停传入联系人路由的时间。

  类型：字符串 (*yyyy*-*mm*-*dd*T*hh*:*mm*:*ss*.*sss*Z)
类型：`NextAgentStatus` 对象。

**配置**  
有关座席的信息，包括：  
+ FirstName—代理人的名字。
+ HierarchyGroups— 代理分配到的层次结构组（如果有）。
+ LastName—代理人的姓氏。
+ RoutingProfile—代理分配到的路由配置文件。
+ Username — 座席的 Amazon Connect 用户名。
类型：`Configuration` 对象

**联系人**  
联系人  
类型：`List of Contact Objects` 对象

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

`Configuration` 对象包括以下属性：

**FirstName**  
在座席的 Amazon Connect 账户中输入的名字。  
类型：字符串  
长度：1-100

**AgentHierarchyGroups**  
与事件关联的座席的层次结构组，最多为五个级别的分组。  
类型：`AgentHierarchyGroups` 对象

**LastName**  
在座席的 Amazon Connect 账户中输入的姓氏。  
类型：字符串  
长度：1-100

**熟练度**  
分配给座席的所有熟练度列表。  
类型：熟练度对象列表

**RoutingProfile**  
分配给与事件关联的座席的路由配置文件。  
类型：`RoutingProfile` 对象。

**Username**  
座席的 Amazon Connect 用户账户的用户名。  
类型：字符串  
长度：1-100

## 联系对象
<a name="Contact"></a>

`Contact` 对象包括以下属性：

**ContactId**  
联系标识符。  
类型：字符串  
长度：1-256

**InitialContactId**  
转接联系的原始标识符。  
类型：字符串  
长度：1-256

**频道**  
通信方法。  
有效值：`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`：联系人使用通信小部件在应用程序内向代理 voice/video 拨打电话。
+  `QUEUE_TRANSFER`：当客户处于一个队列中（监听客户队列流）时，系统使用流数据块将其转接到另一个队列。
+  `MONITOR`：主管启动了对座席的监控。主管可以静默监视座席和客户，也可以插入谈话。
**注意**  
仅当您选择了[多方通话和增强监控](update-instance-settings.md#update-telephony-options)时，才会显示此状态。
+  `DISCONNECT`：当触发 [设置断开连接流](set-disconnect-flow.md) 数据块时，它会指定在联系期间发生断开连接事件后要运行哪个流。

  断开连接事件是指：
  + 聊天或任务断开连接。
  + 任务因流操作而断开连接。
  + 任务过期。任务在其到期计时器结束时会自动断开连接。默认值为 7 天，任务到期时间最长可配置为 90 天。

  如果在运行断开连接流时创建了新联系，则针对该新联系的启动方法为 DISCONNECT。
+  `EXTERNAL_OUTBOUND`：座席使用 CCP 或流数据块中的快速连接发起的与联络中心的外部参与者的语音（电话）联系。
+  `AGENT_REPLY`：座席已回复入站电子邮件联系人，以创建出站电子邮件回复。
+  `FLOW`：由流量屏蔽发起的电子邮件。
+  `CAMPAIGN_PREVIEW`: 该联系是由使用预览拨号模式的出站活动发起的。在拨打电话之前，代理会预览客户信息。

**州**  
联系状态。  
有效值：`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` 对象包括以下属性：

**进行筛选**  
座席层次结构的 Amazon 资源名称（ARN）。  
类型：字符串

**Name**  
层次结构组的名称。  
类型：字符串

## AgentHierarchyGroups 对象
<a name="Hierarchygroups-object"></a>

`AgentHierarchyGroups` 对象包括以下属性：

**Level1**  
包含分配到座席的级别 1 的层次结构详细信息。  
类型：`HierarchyGroup` 对象

**Level2**  
包含分配到座席的级别 2 的层次结构详细信息。  
类型：`HierarchyGroup` 对象

**Level3**  
包含分配到座席的级别 3 的层次结构详细信息。  
类型：`HierarchyGroup` 对象

**Level4**  
包含分配到座席的级别 4 的层次结构详细信息。  
类型：`HierarchyGroup` 对象

**Level5**  
包含分配到座席的级别 5 的层次结构详细信息。  
类型：`HierarchyGroup` 对象

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

`Proficiency` 对象包括以下属性：

**Name**  
预定义的属性的名称。  
类型：字符串  
长度：1-64

**值**  
预定义的属性的值。  
类型：字符串

**ProficiencyLevel**  
座席的熟练程度。  
类型：浮点值  
有效值：1.0、2.0、3.0、4.0 和 5.0

## 队列对象
<a name="queue-object"></a>

`Queue` 对象包括以下属性：

**进行筛选**  
队列的 Amazon 资源名称（ARN）。  
类型：字符串

**Name**  
队列的名称。  
类型：字符串

**渠道**  
通信渠道的类型。  
类型：通道对象的列表

## RoutingProfile 对象
<a name="routingprofile"></a>

`RoutingProfile` 对象包括以下属性：

**进行筛选**  
座席的路由配置文件的 Amazon 资源名称（ARN）。  
类型：字符串

**Name**  
路由配置文件的名称。  
类型：字符串

**InboundQueues**  
与座席的路由配置文件关联的 `Queue` 对象。  
类型：`Queue` 对象的列表

**DefaultOutboundQueue**  
座席路由配置文件的默认出站队列。  
类型：`Queue` 对象

**并发**  
并发信息列表。并发信息对象有 AvailableSlots （数字）、通道（通道对象）和 MaximumSlots （数字）值。