> ## 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.

# Contact Lens data

> The Amazon Connect Contact Lens fields Operata captures — real-time events, post-call events, and post-processing summaries delivered by the Cloud Collector.

Contact Lens is Amazon Connect's conversational-analytics feature: it scores sentiment, detects categories, and produces transcript-level analytics. The Cloud Collector ingests three Contact Lens payloads per Contact — a real-time event (per rule match), a post-call event (when the Contact ends), and a summary (when AWS finishes processing). Contact Lens collection is optional and requires the [Contact Lens integration](/docs/contact-lens-installation).

<Warning>
  Operata does not capture the Contact Lens call transcription content beyond the per-utterance entries shown in the summary payload schema below. To exclude transcript content entirely, configure the Contact Lens transcript redaction rule in your Amazon Connect instance.
</Warning>

## Schema

Contact Lens for Amazon Connect emits three distinct payload shapes. The Cloud Collector forwards each to Operata as it arrives.

### Real-time event

A real-time event fires every time a Contact Lens rule matches during an active Contact.

```json theme={null}
{
  "groupId": "a28453f9-abab-cdcd-efef-84d9e67ac297",
  "data": {
    "account": "012345678910",
    "detail": {
      "actionName": "TestRealTimeEvent",
      "agentArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5/agent/af6342c3-aaaa-bbbb-cccc-1871e5844c29",
      "contactArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5/contact/f5aece6d-aaaa-bbbb-cccc-232fefce309a",
      "instanceArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5",
      "queueArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5/queue/af6342c3-aaaa-bbbb-cccc-1871e5844c29",
      "ruleName": "realTimeTest",
      "version": "1.0"
    },
    "detail-type": "Contact Lens Realtime Rules Matched",
    "id": "5ea9dae1-aaaa-bbbb-cccc-3475b9b51465",
    "region": "ap-southeast-2",
    "resources": [],
    "source": "aws.connect",
    "time": "2026-05-18T10:14:33Z",
    "version": "0"
  }
}
```

### Post-call event

A post-call event fires once per matched rule after the Contact disconnects.

```json theme={null}
{
  "groupId": "a28453f9-abab-cdcd-efef-84d9e67ac297",
  "data": {
    "version": "0",
    "id": "33ad0712-aaaa-bbbb-cccc-0e7dd9b77c0a",
    "detail-type": "Contact Lens Post Call Rules Matched",
    "source": "aws.connect",
    "account": "012345678910",
    "time": "2026-05-18T10:27:11Z",
    "region": "ap-southeast-2",
    "resources": [],
    "detail": {
      "ruleName": "postCallTest",
      "actionName": "testpostcall",
      "instanceArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5",
      "version": "1.0",
      "contactArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5/contact/b21e4aae-aaaa-bbbb-cccc-3c517e3dc922",
      "agentArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5/agent/af6342c3-aaaa-bbbb-cccc-1871e5844c29",
      "queueArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-aaaa-bbbb-cccc-5a1508195aa5/queue/8092a344-aaaa-bbbb-cccc-2176c5aa0afe"
    }
  }
}
```

### Summary

A summary payload arrives once Contact Lens finishes processing the Contact (typically within 15 minutes of disconnect).

```json theme={null}
{
  "AccountId": "012345678910",
  "Categories": {
    "MatchedCategories": [],
    "MatchedDetails": {}
  },
  "Channel": "VOICE",
  "ContentMetadata": { "Output": "Raw" },
  "ConversationCharacteristics": {
    "Interruptions": {
      "InterruptionsByInterrupter": {},
      "TotalCount": 0,
      "TotalTimeMillis": 0
    },
    "NonTalkTime": {
      "Instances": [],
      "TotalTimeMillis": 0
    },
    "Sentiment": {
      "OverallSentiment": { "CUSTOMER": 0 },
      "SentimentByPeriod": {
        "QUARTER": {
          "CUSTOMER": [
            { "BeginOffsetMillis": 0, "EndOffsetMillis": 3743, "Score": 0 }
          ]
        }
      }
    },
    "TalkSpeed": {
      "DetailsByParticipant": {
        "AGENT": { "AverageWordsPerMinute": 0 },
        "CUSTOMER": { "AverageWordsPerMinute": 138 }
      }
    },
    "TalkTime": {
      "DetailsByParticipant": {
        "AGENT": { "TotalTimeMillis": 0 },
        "CUSTOMER": { "TotalTimeMillis": 435 }
      },
      "TotalTimeMillis": 435
    },
    "TotalConversationDurationMillis": 14975
  },
  "CustomerMetadata": {
    "InputS3Uri": "s3://op.performance.sampling/connect/operata-prod/2026/05/18/139fb487_20260518T1014_UTC.wav",
    "ContactId": "139fb487-aaaa-bbbb-cccc-ea068b242bbc",
    "InstanceId": "62e2306a-aaaa-bbbb-cccc-5a1508195aa5"
  },
  "CustomModels": [],
  "JobStatus": "COMPLETED",
  "LanguageCode": "en-AU",
  "Participants": [
    { "ParticipantId": "CUSTOMER", "ParticipantRole": "CUSTOMER" },
    { "ParticipantId": "AGENT", "ParticipantRole": "AGENT" }
  ],
  "Transcript": [
    {
      "BeginOffsetMillis": 14540,
      "Content": "Mhm.",
      "EndOffsetMillis": 14975,
      "Id": "f483ae5e-aaaa-bbbb-cccc-f1fe3b1fead3",
      "LoudnessScore": [83.78],
      "ParticipantId": "CUSTOMER",
      "Sentiment": "NEUTRAL"
    }
  ],
  "Version": "1.1.0"
}
```

## Fields

### Real-time event and post-call event

Both events share the same outer envelope. The description column flags any per-event differences.

| Name                      | Type              | Required | Description                                                                                                                                                                                       | Example                                     |
| ------------------------- | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| `groupId`                 | string (UUID)     | yes      | Operata Group ID this event belongs to.                                                                                                                                                           | `a28453f9-abab-cdcd-efef-84d9e67ac297`      |
| `data.account`            | string            | yes      | AWS account ID that owns the Amazon Connect instance.                                                                                                                                             | `012345678910`                              |
| `data.detail.actionName`  | string            | yes      | The Contact Lens rule action name configured in your Amazon Connect instance.                                                                                                                     | `TestRealTimeEvent`                         |
| `data.detail.agentArn`    | string (ARN)      | yes      | ARN of the agent assigned to the Contact at the moment the rule matched.                                                                                                                          | `arn:aws:connect:...:agent/af6342c3-...`    |
| `data.detail.contactArn`  | string (ARN)      | yes      | ARN of the Amazon Connect Contact.                                                                                                                                                                | `arn:aws:connect:...:contact/f5aece6d-...`  |
| `data.detail.instanceArn` | string (ARN)      | yes      | ARN of the Amazon Connect instance.                                                                                                                                                               | `arn:aws:connect:...:instance/62e2306a-...` |
| `data.detail.queueArn`    | string (ARN)      | yes      | ARN of the queue handling the Contact.                                                                                                                                                            | `arn:aws:connect:...:queue/af6342c3-...`    |
| `data.detail.ruleName`    | string            | yes      | The Contact Lens rule name that matched.                                                                                                                                                          | `realTimeTest`                              |
| `data.detail.version`     | string            | yes      | Contact Lens rule schema version.                                                                                                                                                                 | `1.0`                                       |
| `data.detail-type`        | string            | yes      | Event type. `Contact Lens Realtime Rules Matched` for real-time events, `Contact Lens Post Call Rules Matched` for post-call events.                                                              | `Contact Lens Realtime Rules Matched`       |
| `data.id`                 | string (UUID)     | yes      | Unique ID of the EventBridge event.                                                                                                                                                               | `5ea9dae1-aaaa-bbbb-cccc-3475b9b51465`      |
| `data.region`             | string            | yes      | AWS region the Amazon Connect instance runs in.                                                                                                                                                   | `ap-southeast-2`                            |
| `data.resources`          | string\[]         | yes      | EventBridge resources array. Empty for Contact Lens events.                                                                                                                                       | `[]`                                        |
| `data.source`             | string            | yes      | EventBridge event source. Always `aws.connect`.                                                                                                                                                   | `aws.connect`                               |
| `data.time`               | string (ISO 8601) | yes      | When AWS emitted the event. UTC.                                                                                                                                                                  | `2026-05-18T10:14:33Z`                      |
| `data.version`            | string            | yes      | EventBridge envelope version.                                                                                                                                                                     | `0`                                         |
| `contactId`               | string (UUID)     | no       | Operata-derived Contact ID. Present only when the Cloud Collector can match the event to an existing Contact record; absent on standalone real-time events that arrive before the Contact record. | `b0c9d4d1-aaaa-bbbb-cccc-ee75d4240340`      |
| `eventId`                 | string (UUID)     | no       | Operata-assigned event identifier. Present on post-call events.                                                                                                                                   | `33ad0712-aaaa-bbbb-cccc-0e7dd9b77c0a`      |
| `timestamp`               | string (ISO 8601) | no       | Operata-assigned ingest timestamp. Present once the Cloud Collector receives the event.                                                                                                           | `2026-05-18T10:14:34Z`                      |

### Summary

The summary payload mirrors the [AWS Contact Lens for Amazon Connect output schema](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-output.html).

| Name                                                                                           | Type              | Required | Description                                                                                                                                                                            | Example                                         |
| ---------------------------------------------------------------------------------------------- | ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| `AccountId`                                                                                    | string            | yes      | AWS account ID that owns the Amazon Connect instance.                                                                                                                                  | `012345678910`                                  |
| `Categories.MatchedCategories`                                                                 | string\[]         | yes      | Category rules matched during the Contact. Empty when no rule matched.                                                                                                                 | `["BillingComplaint"]`                          |
| `Categories.MatchedDetails`                                                                    | object            | yes      | For each matched category, the points in the transcript where the match occurred. Keyed by category name; each value lists `PointsOfInterest.BeginOffsetMillis` and `EndOffsetMillis`. | `{}`                                            |
| `Channel`                                                                                      | string            | yes      | Contact channel. One of `VOICE`, `CHAT`.                                                                                                                                               | `VOICE`                                         |
| `ContentMetadata.Output`                                                                       | string            | yes      | Whether the analysis output is raw or redacted. One of `Raw`, `Redacted`. Set per Contact Lens configuration.                                                                          | `Raw`                                           |
| `ConversationCharacteristics.Interruptions.InterruptionsByInterrupter`                         | object            | yes      | Per-participant interruption breakdown. Keys are participant roles (`AGENT`, `CUSTOMER`), values are lists of interruption instances with offset and duration.                         | `{}`                                            |
| `ConversationCharacteristics.Interruptions.TotalCount`                                         | integer           | yes      | Total number of interruptions across the Contact.                                                                                                                                      | `0`                                             |
| `ConversationCharacteristics.Interruptions.TotalTimeMillis`                                    | integer           | yes      | Total interruption time in milliseconds.                                                                                                                                               | `0`                                             |
| `ConversationCharacteristics.NonTalkTime.Instances`                                            | object\[]         | yes      | List of non-talk segments. Each entry has `BeginOffsetMillis`, `EndOffsetMillis`, and `DurationMillis`.                                                                                | `[]`                                            |
| `ConversationCharacteristics.NonTalkTime.TotalTimeMillis`                                      | integer           | yes      | Total non-talk time in milliseconds.                                                                                                                                                   | `0`                                             |
| `ConversationCharacteristics.Sentiment.OverallSentiment.CUSTOMER`                              | number            | yes      | Customer overall sentiment score across the Contact, in the range -5 (most negative) to +5 (most positive).                                                                            | `0`                                             |
| `ConversationCharacteristics.Sentiment.SentimentByPeriod.QUARTER.CUSTOMER[].BeginOffsetMillis` | integer           | yes      | Start of this conversation quarter in milliseconds from Contact start.                                                                                                                 | `0`                                             |
| `ConversationCharacteristics.Sentiment.SentimentByPeriod.QUARTER.CUSTOMER[].EndOffsetMillis`   | integer           | yes      | End of this conversation quarter in milliseconds from Contact start.                                                                                                                   | `3743`                                          |
| `ConversationCharacteristics.Sentiment.SentimentByPeriod.QUARTER.CUSTOMER[].Score`             | number            | yes      | Customer sentiment score for this quarter, in the range -5 to +5.                                                                                                                      | `0`                                             |
| `ConversationCharacteristics.TalkSpeed.DetailsByParticipant.AGENT.AverageWordsPerMinute`       | integer           | yes      | Agent's average speaking rate in words per minute.                                                                                                                                     | `0`                                             |
| `ConversationCharacteristics.TalkSpeed.DetailsByParticipant.CUSTOMER.AverageWordsPerMinute`    | integer           | yes      | Customer's average speaking rate in words per minute.                                                                                                                                  | `138`                                           |
| `ConversationCharacteristics.TalkTime.DetailsByParticipant.AGENT.TotalTimeMillis`              | integer           | yes      | Total time the agent was speaking, in milliseconds.                                                                                                                                    | `0`                                             |
| `ConversationCharacteristics.TalkTime.DetailsByParticipant.CUSTOMER.TotalTimeMillis`           | integer           | yes      | Total time the customer was speaking, in milliseconds.                                                                                                                                 | `435`                                           |
| `ConversationCharacteristics.TalkTime.TotalTimeMillis`                                         | integer           | yes      | Total talk time across both participants, in milliseconds.                                                                                                                             | `435`                                           |
| `ConversationCharacteristics.TotalConversationDurationMillis`                                  | integer           | yes      | Total Contact duration in milliseconds, as measured by Contact Lens.                                                                                                                   | `14975`                                         |
| `CustomerMetadata.InputS3Uri`                                                                  | string            | yes      | S3 URI of the input recording Contact Lens analyzed.                                                                                                                                   | `s3://op.performance.sampling/.../139fb487.wav` |
| `CustomerMetadata.ContactId`                                                                   | string (UUID)     | yes      | Amazon Connect Contact ID this summary applies to.                                                                                                                                     | `139fb487-aaaa-bbbb-cccc-ea068b242bbc`          |
| `CustomerMetadata.InstanceId`                                                                  | string (UUID)     | yes      | Amazon Connect instance ID.                                                                                                                                                            | `62e2306a-aaaa-bbbb-cccc-5a1508195aa5`          |
| `CustomModels`                                                                                 | object\[]         | yes      | Custom-vocabulary models applied during analysis. Empty when none are configured.                                                                                                      | `[]`                                            |
| `JobStatus`                                                                                    | string            | yes      | Contact Lens job status. One of `COMPLETED`, `FAILED`, `PARTIAL_SUCCESS`.                                                                                                              | `COMPLETED`                                     |
| `LanguageCode`                                                                                 | string (BCP 47)   | yes      | Language Contact Lens used to transcribe and analyze the Contact.                                                                                                                      | `en-AU`                                         |
| `Participants[].ParticipantId`                                                                 | string            | yes      | Participant role identifier. One of `CUSTOMER`, `AGENT`, `SYSTEM`.                                                                                                                     | `CUSTOMER`                                      |
| `Participants[].ParticipantRole`                                                               | string            | yes      | Participant role. One of `CUSTOMER`, `AGENT`, `SYSTEM`.                                                                                                                                | `CUSTOMER`                                      |
| `Transcript[].BeginOffsetMillis`                                                               | integer           | yes      | Start of this utterance in milliseconds from Contact start.                                                                                                                            | `14540`                                         |
| `Transcript[].Content`                                                                         | string            | yes      | Transcribed text for this utterance.                                                                                                                                                   | `Mhm.`                                          |
| `Transcript[].EndOffsetMillis`                                                                 | integer           | yes      | End of this utterance in milliseconds from Contact start.                                                                                                                              | `14975`                                         |
| `Transcript[].Id`                                                                              | string (UUID)     | yes      | Unique ID of this transcript entry.                                                                                                                                                    | `f483ae5e-aaaa-bbbb-cccc-f1fe3b1fead3`          |
| `Transcript[].LoudnessScore`                                                                   | number\[]         | yes      | Loudness samples (in decibels) measured across the utterance window.                                                                                                                   | `[83.78]`                                       |
| `Transcript[].ParticipantId`                                                                   | string            | yes      | Which participant spoke this utterance.                                                                                                                                                | `CUSTOMER`                                      |
| `Transcript[].Sentiment`                                                                       | string            | yes      | Sentiment classification for this utterance. One of `POSITIVE`, `NEUTRAL`, `NEGATIVE`, `MIXED`.                                                                                        | `NEUTRAL`                                       |
| `Version`                                                                                      | string            | yes      | Contact Lens output schema version.                                                                                                                                                    | `1.1.0`                                         |
| `groupId`                                                                                      | string (UUID)     | no       | Operata Group ID. Operata appends this on ingest; not present in the raw AWS payload.                                                                                                  | `a28453f9-abab-cdcd-efef-84d9e67ac297`          |
| `eventId`                                                                                      | string (UUID)     | no       | Operata-assigned event identifier. Operata appends this on ingest.                                                                                                                     | `33ad0712-aaaa-bbbb-cccc-0e7dd9b77c0a`          |
| `contactId`                                                                                    | string (UUID)     | no       | Operata-derived Contact ID matching `CustomerMetadata.ContactId`. Operata appends this on ingest.                                                                                      | `139fb487-aaaa-bbbb-cccc-ea068b242bbc`          |
| `timestamp`                                                                                    | string (ISO 8601) | no       | Operata-assigned ingest timestamp.                                                                                                                                                     | `2026-05-18T10:30:14Z`                          |

For the canonical Contact Lens output schema, see the [AWS Contact Lens for Amazon Connect documentation](https://docs.aws.amazon.com/connect/latest/adminguide/contact-lens-output.html). For the upstream Customer Journey Trace concept, see [Customer Journey Trace](/docs/concepts-customer-journey-trace).
