The CTR is the finished contact. Real-time metrics are a picture of now. They answer different questions.
Fields you should be able to point at: ContactId, Channel, InitiationMethod, the endpoints, queue duration, the agent timestamps, ACW, disconnect reason, attributes, and the recording location. Transfers create another contact. PreviousContactId and NextContactId are the chain.
Delivery to Firehose or a stream is near real time and can duplicate. Consumers must be idempotent. Five minutes of silence is when you check the error prefix.
DisconnectReason is the first field when someone says the carrier dropped the call.
Attributes are whatever you wrote. They are not infinite.
A missing Recording.Location means recording was off or the write failed.
Do not average a day from real-time screenshots.
Number on this page: Join key ContactId. Across logs, audio, and events
You cannot staff, coach, or dispute a contact you cannot join back to one ContactId.
Config and troubleshooting
Building a warehouse table that keeps only the last contact in a transfer chain.
Contact trace records leave the instance through AWS::Connect::InstanceStorageConfig. ResourceType CONTACT_TRACE_RECORDS and StorageType KINESIS_STREAM is the fan-out path. Contact Lens is an instance attribute plus the recording and analytics block in the flow.
Join records on ContactId. The integration map room lists the seams.
Cross-platform bridges
A CUCM calling search space is not a routing profile, but the profile is the closest idea of 'who can receive what'. A partition is not a Connect object. A UCCX CSQ and a UCCE skill group map to a queue. Precision steps map to routing criteria. A script, an Architect flow, and an Avaya vector map to a contact flow.
Hooks you can adopt later: EventBridge contact events, the CTR stream, agent events, Kinesis Video, Customer Profiles events, Cases, Show view, data tables, External Tool, and the flow language JSON in your pipeline. Live Sync and Agentic CX are the 2026 hooks for guided and agentic experiences.