Agent data in the Connect Customer data lake
The following tables contain agent data.
Agent queue statistic record
Table name:
agent_queue_statistic_record
Description: Contains queue-level statistics per agent, per interval. Tracks metrics like contacts offered, handled, handle time, and connecting times for each agent-queue combination.
Primary key:
aqsr_statistic_id, instance_id
Partition key:
interval_start_time (daily)
Join keys:
instance_id— Joins to all tablesuser_id— Joins to Agent Statistic Record, Agent Event, Contact Record (asagent_id), Contact Evaluation Record, usersqueue_id— Joins to Contact Record, Contact Statistic Recordrouting_profile_id— Joins to Agent Statistic Record, routing_profilesagent_hierarchy_level_*_id— Joins to agent_hierarchy_groups
| Column | Type | Nullable | Description |
|---|---|---|---|
| aqsr_statistic_id | string | No | Unique ID for the AQSR record |
| instance_id | string | No | The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. |
| user_id | string | Yes | The identifier of the user account. |
| routing_profile_id | string | Yes | ID of routing profile. |
| agent_hierarchy_level_1_id | string | Yes | ID of level 1 Hierarchy Group. |
| agent_hierarchy_level_2_id | string | Yes | ID of level 2 Hierarchy Group. |
| agent_hierarchy_level_3_id | string | Yes | ID of level 3 Hierarchy Group. |
| agent_hierarchy_level_4_id | string | Yes | ID of level 4 Hierarchy Group. |
| agent_hierarchy_level_5_id | string | Yes | ID of level 5 Hierarchy Group. |
| interval_start_time | Timestamp | Yes | Timestamp of the conversation when interval started. |
| interval_end_time | Timestamp | Yes | Timestamp of the conversation when interval ended. |
| published_date | Timestamp | Yes | |
| aws_account_id | string | Yes | The ID of the AWS account that owns the contact. |
| queue_id | string | Yes | The identifier of the queue. |
| channel | string | Yes | The method used to contact your contact center: VOICE, CHAT, TASK, EMAIL. |
| queue_type | string | Yes | QueueType specifies the classification of the queue, indicating its intended use and behavior. Valid values for QueueType are STANDARD, which is a general-purpose queue where contacts wait before they are routed to and accepted by agents, and AGENT, which are created automatically for every agent user you add Connect Customer. |
| agent_non_response | bigint | Yes | The count of contacts routed to an agent but not answered by that agent, including contacts abandoned by the customer. |
| contacts_offered | bigint | Yes | |
| contacts_handled | bigint | Yes | The count of contacts that were connected to an agent. It doesn't matter how the contact got to the agent. It could be a customer calling your contact center, or an agent calling the customer. It could be a contact transferred from one agent to another. It could be a contact where the agent answered it, but then they weren't sure what to do and they transferred the contact away again. As long as the agent was connected to the contact, it increments Contacts handled. |
| handle_time | bigint | Yes | The average time, from start to finish, that a contact was connected with an agent (average handled time). It includes talk time, hold time, After Contact Work (ACW) time, custom status time, and agent pause duration (which applies only to tasks). AHT is calculated by averaging the amount of time between the contact being answered by an agent and the conversation ending. It applies to both inbound and outbound calls. |
| agent_incoming_connecting_time | bigint | Yes | The total time between when a contact is initiated by Connect Customer reserving the agent for the contact, and the agent is connected. |
| agent_outbound_connecting_time | bigint | Yes | Total time between when an outbound contact is initiated by Connect Customer reserving the agent for the contact, and the agent is connected. |
| agent_callback_connecting_time | bigint | Yes | The total time between when a callback contact is initiated by Connect Customer reserving the agent for the contact, and the agent is connected. |
| agent_api_connecting_time | bigint | Yes | The total time between when a contact is initiated using an Connect Customer API, and the agent is connected. |
| incoming_connecting_attempts | bigint | Yes | The number of attempts initiated by Connect Customer reserving the agent for the contact for INBOUND initiation type contacts. |
| outbound_connecting_attempts | bigint | Yes | The number of attempts initiated by Connect Customer reserving the agent for the contact for outbound initiation type contacts. |
| callback_connecting_attempts | bigint | Yes | The number of contacts where a callback was attempted, but the customer did not pick up. |
| api_connecting_attempts | bigint | Yes | Used to calculate Average agent incoming connecting time. |
| data_lake_last_processed_Timestamp | Timestamp | Yes | Timestamp, which shows the last time the data lake processed the record. This can include transformation and backfill. This field cannot reliably be used to determine data freshness. |
Agent statistic record
Table name:
agent_statistic_record
Description: Contains aggregate agent-level statistics per interval, including online time, idle time, on-contact time, and up to 50 custom agent state durations.
Primary key:
asr_statistic_id, instance_id
Partition key:
interval_start_time (daily)
Join keys:
instance_id— Joins to all tablesuser_id— Joins to Agent Queue Statistic Record, Agent Event, Contact Record (asagent_id), Contact Evaluation Record, usersrouting_profile_id— Joins to Agent Queue Statistic Record, routing_profilesagent_hierarchy_level_*_id— Joins to agent_hierarchy_groups
| Column | Type | Nullable | Description |
|---|---|---|---|
| asr_statistic_id | string | No | Unique ID for the ASR record. |
| instance_id | string | No | The identifier of the Connect Customer instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance. |
| user_id | string | Yes | The identifier of the user account. |
| routing_profile_id | string | Yes | ID of routing profile. |
| agent_hierarchy_level_1_id | string | Yes | ID of level 1 Hierarchy Group. |
| agent_hierarchy_level_2_id | string | Yes | ID of level 2 Hierarchy Group. |
| agent_hierarchy_level_3_id | string | Yes | ID of level 3 Hierarchy Group. |
| agent_hierarchy_level_4_id | string | Yes | ID of level 4 Hierarchy Group. |
| agent_hierarchy_level_5_id | string | Yes | ID of level 5 Hierarchy Group. |
| interval_start_time | Timestamp | Yes | Timestamp of the conversation when interval started. |
| interval_end_time | Timestamp | Yes | Timestamp of the conversation when interval ended. |
| published_date | Timestamp | Yes | |
| aws_account_id | string | Yes | The ID of the AWS account that owns the contact. |
| online_time | bigint | Yes | Total time that an agent spent with their CCP set to a status other than Offline. This includes any time spent in a custom status. When you create a historical metrics reports, this metric can't be grouped or filtered by queue, phone number, or channels. |
| error_time | bigint | Yes | For a specific agent, the total time contacts were in an error status. This metric can't be grouped or filtered by queue. |
| non_productive_time | bigint | Yes | Total time that agents spent in a custom status. That is, their CCP status is other than Available or Offline. This metric doesn't mean that the agent was spending their time unproductively. |
| agent_idle_time | bigint | Yes | After the agent sets their status in the CCP to Available, this is the amount of time they weren't handling contacts + any time their contacts were in an Error state. Agent idle time doesn't include the amount of time from when Connect Customer starts routing the contact to the agent, to when agent picks up or declines the contact. |
| agent_on_contact_time | bigint | Yes | Total time that an agent spent on one or multiple contacts, including Customer hold time and After contact work time. This does not include time spent on a contact while in a custom status or Offline status. (Custom status = the agent's CCP status is other than Available or Offline. For example, Training would be a custom status). |
| custom_state_time_01 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_02 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_03 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_04 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_05 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_06 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_07 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_08 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_09 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_10 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_11 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_12 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_13 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_14 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_15 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_16 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_17 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_18 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_19 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_20 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_21 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_22 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_23 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_24 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_25 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_26 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_27 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_28 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_29 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_30 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_31 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_32 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_33 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_34 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_35 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_36 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_37 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_38 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_39 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_40 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_41 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_42 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_43 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_44 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_45 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_46 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_47 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_48 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_49 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| custom_state_time_50 | bigint | Yes | Represents custom agent states defined by a customer. For example: Coffee_break. |
| data_lake_last_processed_timestamp | Timestamp | Yes | Timestamp, which shows the last time the data lake processed the record. This can include transformation and backfill. This field cannot reliably be used to determine data freshness. |
Agent event
Table name:
agent_event
Description: Captures complete agent state snapshots including current and previous agent status, routing profile, hierarchy groups, and associated contacts for each agent event.
Primary key:
instance_id, event_id
Partition key:
event_timestamp (daily)
Join keys:
instance_id— Joins to all tablesagent_arn— Joins to Contact Record (asagent_arn), scheduling tables (asagent_arn), users (asuser_arn)current_routing_profile_arn— Joins to routing_profiles (asagent_routing_profile_arn)current_agent_hierarchy_groups_level_*_arn— Joins to agent_hierarchy_groups (asagent_hierarchy_group_arn)current_contacts(nested) — Joins to Contact Record (ascontact_id)
| Column | Type | Nullable | Description |
|---|---|---|---|
| instance_id | string | No | The ID of the Connect Customer instance. |
| aws_account_id | string | Yes | The ID of the AWS account that owns the agent event. |
| instance_arn | string | Yes | The ARN of the Connect Customer instance. |
| agent_arn | string | Yes | The ARN of the agent. |
| event_id | string | No | The unique event identifier. |
| event_timestamp | Timestamp | Yes | The timestamp when the event occurred. |
| event_type | string | Yes | The type of agent event. |
| version | string | Yes | The version of the agent event stream in date format. |
| current_agent_status_arn | string | Yes | The ARN of the current agent status. |
| current_agent_status_name | string | Yes | The name of the current agent status. |
| current_agent_status_start_timestamp | Timestamp | Yes | The timestamp when the current agent status started. |
| current_agent_status_type | string | Yes | The type classification of the current agent status. |
| current_next_agent_status_arn | string | Yes | The ARN of the next agent status. |
| current_next_agent_status_name | string | Yes | The name of the next agent status. |
| current_next_agent_status_enqueued_timestamp | Timestamp | Yes | The timestamp when the next agent status was enqueued. |
| current_next_agent_status_type | string | Yes | The type classification of the next agent status. |
| current_configuration_username | string | Yes | The username of the current agent. |
| current_configuration_first_name | string | Yes | The first name of the current agent. |
| current_configuration_last_name | string | Yes | The last name of the current agent. |
| current_configuration_sip_address | string | Yes | The SIP address for the agent's communication endpoint. |
| current_configuration_auto_accept | boolean | Yes | Whether the agent auto-accepts incoming contacts. |
| current_configuration_language_code | string | Yes | The language code for the agent's interface. |
| current_configuration_proficiencies | array(struct) | Yes | The agent proficiency attributes (name, value, level). |
| current_routing_profile_arn | string | Yes | The ARN of the current routing profile. |
| current_routing_profile_name | string | Yes | The name of the current routing profile. |
| current_routing_profile_concurrency | array(struct) | Yes | The current routing profile concurrency settings. |
| current_routing_profile_default_outbound_queue_arn | string | Yes | The ARN of the default outbound queue. |
| current_routing_profile_default_outbound_queue_name | string | Yes | The name of the default outbound queue. |
| current_routing_profile_default_outbound_queue_channels | array(string) | Yes | The channels of the default outbound queue. |
| current_routing_profile_inbound_queues | array(struct) | Yes | The inbound queues for the routing profile. |
| current_agent_hierarchy_groups_level_1_arn | string | Yes | The ARN of the agent hierarchy group level 1. |
| current_agent_hierarchy_groups_level_1_name | string | Yes | The name of the agent hierarchy group level 1. |
| current_agent_hierarchy_groups_level_2_arn | string | Yes | The ARN of the agent hierarchy group level 2. |
| current_agent_hierarchy_groups_level_2_name | string | Yes | The name of the agent hierarchy group level 2. |
| current_agent_hierarchy_groups_level_3_arn | string | Yes | The ARN of the agent hierarchy group level 3. |
| current_agent_hierarchy_groups_level_3_name | string | Yes | The name of the agent hierarchy group level 3. |
| current_agent_hierarchy_groups_level_4_arn | string | Yes | The ARN of the agent hierarchy group level 4. |
| current_agent_hierarchy_groups_level_4_name | string | Yes | The name of the agent hierarchy group level 4. |
| current_agent_hierarchy_groups_level_5_arn | string | Yes | The ARN of the agent hierarchy group level 5. |
| current_agent_hierarchy_groups_level_5_name | string | Yes | The name of the agent hierarchy group level 5. |
| current_contacts | array(struct) | Yes | The current contacts associated with the agent. |
| previous_agent_status_arn | string | Yes | The ARN of the previous agent status. |
| previous_agent_status_name | string | Yes | The name of the previous agent status. |
| previous_agent_status_start_timestamp | Timestamp | Yes | The timestamp when the previous agent status started. |
| previous_agent_status_type | string | Yes | The type classification of the previous agent status. |
| previous_configuration_proficiencies | array(struct) | Yes | The previous agent proficiency attributes. |
| previous_routing_profile_arn | string | Yes | The ARN of the previous routing profile. |
| previous_routing_profile_name | string | Yes | The name of the previous routing profile. |
| previous_routing_profile_concurrency | array(struct) | Yes | The previous routing profile concurrency settings. |
| previous_routing_profile_default_outbound_queue_arn | string | Yes | The ARN of the previous default outbound queue. |
| previous_routing_profile_default_outbound_queue_name | string | Yes | The name of the previous default outbound queue. |
| previous_routing_profile_default_outbound_queue_channels | array(string) | Yes | The channels of the previous default outbound queue. |
| previous_routing_profile_inbound_queues | array(struct) | Yes | The previous inbound queues for the routing profile. |
| previous_agent_hierarchy_groups_level_1_arn | string | Yes | The ARN of the previous agent hierarchy group level 1. |
| previous_agent_hierarchy_groups_level_1_name | string | Yes | The name of the previous agent hierarchy group level 1. |
| previous_agent_hierarchy_groups_level_2_arn | string | Yes | The ARN of the previous agent hierarchy group level 2. |
| previous_agent_hierarchy_groups_level_2_name | string | Yes | The name of the previous agent hierarchy group level 2. |
| previous_agent_hierarchy_groups_level_3_arn | string | Yes | The ARN of the previous agent hierarchy group level 3. |
| previous_agent_hierarchy_groups_level_3_name | string | Yes | The name of the previous agent hierarchy group level 3. |
| previous_agent_hierarchy_groups_level_4_arn | string | Yes | The ARN of the previous agent hierarchy group level 4. |
| previous_agent_hierarchy_groups_level_4_name | string | Yes | The name of the previous agent hierarchy group level 4. |
| previous_agent_hierarchy_groups_level_5_arn | string | Yes | The ARN of the previous agent hierarchy group level 5. |
| previous_agent_hierarchy_groups_level_5_name | string | Yes | The name of the previous agent hierarchy group level 5. |
| previous_contacts | array(struct) | Yes | The previous contacts associated with the agent. |
| data_lake_last_processed_timestamp | Timestamp | Yes | The timestamp, which shows the last time the record was touched by the data lake. This can include transformation and backfill. This field cannot reliably be used to determine data freshness. |