> ## Documentation Index
> Fetch the complete documentation index at: https://docs.operata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Install CTR collection for Amazon Connect

> Deploy the Cloud Collector CloudFormation stack to stream Amazon Connect Contact Trace Records into Operata.

Deploy the Cloud Collector CloudFormation stack so your Amazon Connect instance
streams Contact Trace Records (CTRs) to Operata — a test contact you place
appears in the Operata console within five minutes of contact end.

## Before you start

* An [Operata account](/docs/get-started-overview) with Admin role and
  your Operata Group ID.
* An AWS account with the [IAM permissions](/docs/iam-policies)
  required to deploy CloudFormation in your Amazon Connect region.
* An Amazon Connect instance with CTRs enabled to a Kinesis stream.
  Firehose-only setups need a Kinesis stream first; see
  [Why Kinesis Streams, not Firehose](/docs/concepts-why-kinesis-streams).
* Familiarity with the [Cloud Collector](/docs/concepts-cloud-collector)
  data path.

## Steps

### 1. Send Operata the install details

Operata generates a custom CloudFormation template per integration.
Send Operata Support these three values:

* **CTR Kinesis stream ARN** — for example,
  `arn:aws:kinesis:ap-southeast-2:083560123456:stream/Connect_CTR_Prod`.
* **Amazon Connect instance alias** — 32 characters or fewer (for
  example, `operata-prod`).
* **Redaction enablement** — whether the redactor Lambda runs. If yes,
  provide the VPC ID and private subnet IDs to deploy it into.

Operata returns a quick-create CloudFormation link and your Operata
Group ID.

### 2. Open the quick-create link

Click the link Operata sent. AWS opens the
[CloudFormation console](https://console.aws.amazon.com/cloudformation)
with the template pre-filled.

### 3. Enter your Operata API token

Paste an Operata API token into the **API key** parameter. Create a
token in the Operata console under **Settings → Config → API** and
label it `AWS_Integration`.

This is the only parameter you fill in by hand. Every other field is
pre-populated.

### 4. (Optional) Configure CTR upsert

To enrich CTRs with agent-hierarchy or other lookup data before delivery,
set the two upsert parameters:

* `agentDataS3BucketName` — S3 bucket holding JSON-line or JSON-array
  data files. Format: `bucket-name/prefix`.
* `agentLookupKey` — the CTR field used to look up enrichment data
  (for example, `USERNAME` or `userId`).

Leave both blank to skip enrichment.

### 5. Deploy the stack

Acknowledge the IAM acknowledgement, then click **Create stack**. The stack
takes around five minutes to deploy. CloudFormation creates the
Amazon EventBridge Pipe, the redactor Lambda (if enabled), the API
destination, the Secrets Manager secret, and the IAM roles.

### 6. Place a test contact

Make or receive a call through your Amazon Connect CCP. Make sure:

* The [Agent Experience Collector](/docs/collector-overview) Chrome
  extension is installed in the agent's browser.
* The CCP URL matches the Amazon Connect instance you just installed
  the stack against.
* You **close the contact** when the call ends — CTRs are only emitted
  on close.

## Verify

In the [Operata console](https://app.operata.io), open **Get the
Details** and filter to the last five minutes. Your test contact
appears with a `traceRecord` payload similar to:

```json theme={null}
{
  "traceRecord": {
    "ContactId": "0772a43f-65dc-4936-a51a-bf291bced3ab",
    "InitiationTimestamp": "2026-05-18T10:14:22Z",
    "DisconnectTimestamp": "2026-05-18T10:15:08Z",
    "InitiationMethod": "INBOUND",
    "Channel": "VOICE",
    "Queue": {
      "Name": "operata-prod-queue",
      "EnqueueTimestamp": "2026-05-18T10:14:23Z",
      "DequeueTimestamp": "2026-05-18T10:14:25Z"
    },
    "Agent": {
      "Username": "operataAgent",
      "ConnectedToAgentTimestamp": "2026-05-18T10:14:25Z",
      "AgentInteractionDuration": 33
    },
    "Attributes": {
      "contactId": "0772a43f-65dc-4936-a51a-bf291bced3ab"
    },
    "AWSContactTraceRecordFormatVersion": "2017-03-10"
  },
  "contactDurationSummary": {
    "contactDurationRoundedMin": 1,
    "contactDurationActualSec": 46
  }
}
```

CTRs can take up to five minutes to land. If nothing appears after
that, work through [Troubleshooting](/docs/aws-troubleshooting).

## Related

* [Configure CTR redaction](/docs/guides-configure-ctr-redaction) — strip PII fields before they leave your AWS account.
* [Tag your AWS resources](/docs/aws-tagging) — apply cost-allocation and access-control tags to the deployed stack.
* [Concept: Cloud Collector](/docs/concepts-cloud-collector) — the runtime that processes each CTR.
* [Troubleshoot the integration](/docs/aws-troubleshooting) — missing records, CloudFormation failures, secret management.
