Contact Lens (CL)

Contract Lens data collection is optional and needs Contact Lens integration to be enabled.

Operata takes both real-time and post call details from Contact Lens.

📘

Contact Lens Data Elements

Full documentation for Contact Lens data model can be found here

Note: Operata does not capture the call transcription.

Contact Lens real-time event

Contact lens real-time event data is passed whenever a rule is matched.

  "groupId": "a28453f9-1111-2222-3333-84d9e67ac297",
    "data": {
        "account": "012345678910",
        "detail": {
            "actionName": "TestRealTimeEvent",
            "agentArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-1111-2222-3333-5a1508195aa5/agent/af6342c3-1111-2222-3333-1871e5844c29",
            "contactArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-1111-2222-3333-5a1508195aa5/contact/f5aece6d-1111-2222-3333-232fefce309a",
            "instanceArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-1111-2222-3333-5a1508195aa5",
            "queueArn": "arn:aws:connect:ap-southeast-2:012345678910:instance/62e2306a-1111-2222-3333-5a1508195aa5/queue/af6342c3-1111-2222-3333-1871e5844c29",
            "ruleName": "realTimeTest",
            "version": "1.0"
        },
        "detail-type": "Contact Lens Realtime Rules Matched",
        "id": "5ea9dae1-1111-2222-3333-3475b9b51465",
        "region": "ap-southeast-2",
        "resources": [],
        "source": "aws.connect",
        "time": "2023-08-15T07:14:33Z",
        "version": "0"
Field NameDescription
groupId
account
actionName
agentArn
contactArn
instanceArn
queueArn
ruleName
version
detail-type
id
region
resources
source
time
version
contactId
eventId
timestamp

Contact Lens post-call event

A Post call event is passed to Operata at the end of every call.

{
    "groupId": "a28453f9-c9d3-4c48-a7cd-84d9e67ac297",
    "data": {
        "version": "0",
        "id": "33ad0712-6795-dd1e-ebdd-0e7dd9b77c0a",
        "detail-type": "Contact Lens Post Call Rules Matched",
        "source": "aws.connect",
        "account": "083560837128",
        "time": "2023-08-20T23:27:11Z",
        "region": "ap-southeast-2",
        "resources": [],
        "detail": {
            "ruleName": "postCallTest",
            "actionName": "testpostcall",
            "instanceArn": "arn:aws:connect:ap-southeast-2:083560837128:instance/62e2306a-a6d6-43b5-ac53-5a1508195aa5",
            "version": "1.0",
            "contactArn": "arn:aws:connect:ap-southeast-2:083560837128:instance/62e2306a-a6d6-43b5-ac53-5a1508195aa5/contact/b21e4aae-5bb3-4482-b03c-3c517e3dc922",
            "agentArn": "arn:aws:connect:ap-southeast-2:083560837128:instance/62e2306a-a6d6-43b5-ac53-5a1508195aa5/agent/af6342c3-f7da-4968-8199-1871e5844c29",
            "queueArn": "arn:aws:connect:ap-southeast-2:083560837128:instance/62e2306a-a6d6-43b5-ac53-5a1508195aa5/queue/8092a344-02bb-4fba-ac74-2176c5aa0afe"
        }
    }
}
Field NameDescription
groupId
version
id
detail-type
source
account
time
region
resources
ruleName
actionName
instanceArn
version
contactArn
agentArn
queueArn
contactIdn/a
eventIdn/a
timestampn/a

Contact Lens summary

Summary data is passed to Operata once processed by AWS (can be up to 15 minutes later)

{
    "AccountId": "083560837128",
    "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
                        },
                        {
                            "BeginOffsetMillis": 3743,
                            "EndOffsetMillis": 7487,
                            "Score": 0
                        },
                        {
                            "BeginOffsetMillis": 7487,
                            "EndOffsetMillis": 11231,
                            "Score": 0
                        },
                        {
                            "BeginOffsetMillis": 11231,
                            "EndOffsetMillis": 14975,
                            "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/operata-prod/2023/08/22/139fb487-a829-48b1-8351-ea068b242bbc_20230822T00:06_UTC.wav",
        "ContactId": "139fb487-a829-48b1-8351-ea068b242bbc",
        "InstanceId": "62e2306a-a6d6-43b5-ac53-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-d17a-4da8-8c88-f1fe3b1fead3",
            "LoudnessScore": [
                83.78
            ],
            "ParticipantId": "CUSTOMER",
            "Sentiment": "NEUTRAL"
        }
    ],
    "Version": "1.1.0"
}
Field NameDescription
AccountId
MatchedCatgoriesThe category rules that have been matched in the analyzed segment
MatchedDetailsThe category rule that was matched and when it occurred in the transcript.
Channel
ContentMetadata.Output
Interuptions.InteruptionsByInterrupter
Interuptions.TotalCount
Interuptions.TotalTimeMillis
NonTalkTime.Instnces
NonTalkTime.TotalTimeMillis
Sentiment.OverallSentiment.CUSTOMER
SentimentByPeriod.QUARTER.CUSTOMER.BeginOffsetMills
SentimentByPeriod.QUARTER.CUSTOMER.EndOffsetMills
SentimentByPeriod.QUARTER.CUSTOMER.Score
TalkSpeed.DetailsByParticipant.AGENT.AverageWordsPerMinute
TalkSpeed.DetailsByParticipant.CUSTOMER.AverageWordsPerMinute
TalkTime.DetailsByParticipant.AGENT.TotalTimeMillis
TalkTime.TotalTimeMillis
TotalConversationDurationMillis
CustomerMetadata.InputS3Url
ContactId
InstanceId
CustomerModels
JobStatus
LanguageCode
Participants.ParticipantIDThe identifier of the participant, CUSTOMER or AGENT
ParticipantRoleThe role of participant, customer, agent, or system.
Transcript.BeginOffsetMillis
Transcript.ContentThe content of the transcript
Transcript.EndOffset.Miilis
Transcript.ID
Transcript.LoudnessScore
Transcript.ParticipantId
Transcript.SentimentThe sentiment detected for this piece of transcript. POSITIVE | NEUTRAL | NEGATIVE
Version
groupIdn/a
eventIdn/a
contactIdn/a
timestampn/a