Contact Trace Records
Each contact in Amazon Connect creates one or more Contact Trace Records (CTRs). These contain information such as the initiation time, the agent who dealt with the contact, how many times the contact was put on hold, the type of contact (Voice, Chat or Task) and much more.
Users with suitable permissions can search and view CTRs using the following user interfaces:
- SmartAgent Contact History
- SmartAgent Contact Search
- Amazon Connect Contact Search
Data Model
The Amazon Connect documentation shows the full data model for Contact Trace records:
Separate CTRs for the same contact
Separate CTRs will sometimes be created for the same contact, for example, in the following cases:
- when an agent transfers the contact to a new queue or agent
- when the customer enters a disconnection flow (eg. a CSAT survey after a chat)
These separate CTRs can be linked back to the main CTR using their InitialContactId
field, which will match the ContactId
field of the initial CTR.
SmartAgent Data Warehouse
For Contact Trace Records, the following data is available in Athena:
Type | Name | Description |
---|---|---|
Table | contact_trace_record_raw | All CTR data delivered from Amazon Connect via Kinesis. |
View | latest_ctr | A de-duplicated view including only the latest version of each CTR. |
Data Model
The data model for CTRs in the SmartAgent data warehouse is identical to the Amazon Connect Contact Trace Record data model, except for the differences noted here:
- All field names are stored in lowercase
Subscribing to CTRs via Amazon Kinesis
CTRs are streamed from Amazon Connect using Kinesis data streams; this is also how we populate the SmartAgent data warehouse. It is possible to have multiple delivery streams connected to the data stream using either Amazon Kinesis Firehose or other external services.
Records delivered at least once
Records will be sent at least once via the Kinesis stream. A record will be sent multiple times when it is updated after the record was initially sent via the stream. Examples of when this would happen include:
- The agent ends the contact and then fills out the Contact Log form during ACW
- The customer resumes an asynchronous chat after a period of time
It is possible to de-duplicate records by using the ContactId
field as a unique ID and taking the most recent LastUpdateTimestamp
.