Installation

How to install the Operata AWS Integration

AWS CloudFormation

Installation is orchestrated using AWS CloudFormation. More information on AWS CloudFormation can be found here.

🚧

Check your IAM permissions

In order to use CloudFormation, your AWS user needs the IAM permissions listed here to successfully run the CloudFormation template. Alternatively, you can also use a service role as described here.

Deployment Steps

Preparation

Provide Operata with the following three details needed to create a custom CloudFormation template for you:

  • CTR Kinesis Stream ARN
    • Example: arn:aws:kinesis:ap-southeast-2:083560123456:stream/Connect_CTR_Prod
      • Note If you are using a Kinesis Firehose only, you will need to create a Kinesis Stream and use this as the source for your Firehose - here's how.
  • Amazon Connect Instance alias, shown when you select Amazon Connect from the AWS console
    • Example: operata-prod (Note: must be 32 characters or less)
  • Whether Privacy Controls (Lambda Function) is to be enabled and if it is, details of any VPC it needs to be deployed into, specifically:
    • Lambda Deployment VPC ID
    • Lambda Deployment Private Subnet ID's

Optional CTR data upsert

There is the option to add data to the CTR record, before sending to Operata (see Operata for more details) two additional fields need to be populated to enable this feature:

  • agentDataS3BucketName- Agent Data S3 Bucket Name (JSON Line/JSON array files). format 'bucket-name''prefix'
  • agentLookupKey - The name of the agent field to use for agent data lookup (i.e. USERNAME, userId, etc)

Operata Quick-build URL

Operata will then provide the following two details needed to complete the integration:

  • Your custom CloudFormation quick-create link URL.
  • Your Operata GroupID

Now use Cloud Formation to create the Integration

  1. Click the hyperlink provided by Operata which will take you to the CloudFormation console in AWS.

    All parameters will be pre-filled for you except for the API Key - you will need to enter the API Key you have created to remain secure.

  2. Review the CloudFormation stack, agree to the terms and deploy.

  3. Wait until you see the stack fully deployed (up to 5 mins).

Post-Deployment Testing

  1. Make or receive a phone call using your Amazon Connect CCP.

    • Ensure you have Operata Chrome Extension deployed.
    • Be sure to use the correct Amazon Connect instance CCP URL.
    • Close the Contact when you have ended the call.
  2. Log into the Operata console

  3. Find your call in Get the Details and check the JSON payload under traceRecord. You should see information similar to below

{
"traceRecord": {
      "CustomerEndpoint": {
        "Address": "+14578965412",
        "Type": "TELEPHONE_NUMBER"
      },
      "MediaStreams": [
        {
          "Type": "AUDIO"
        }
      ],
      "AnsweringMachineDetectionStatus": null,
      "SystemEndpoint": {
        "Address": "+17845123452",
        "Type": "TELEPHONE_NUMBER"
      },
      "Attributes": {
        "jobId": "1677800574944454508",
        "operataHeartbeatContactFlowLambdaARN": "arn:aws:lambda:ap-southeast-2:83564521348:function:operataHeartbeatContactFlowLambda",
        "agentId": "operataAgent",
        "callSid": "CAca4fcd698a96e78t60de10d67a5020",
        "contactId": "0772a43f-65dc-4936-a51a-bf291bced3ab",
        "OperataHeartbeatTest": "true"
      },
      "ConnectedToSystemTimestamp": "2023-03-02T23:43:12Z",
      "PreviousContactId": null,
      "ContactId": "0772a43f-65dc-4936-a51a-bf291bced3ab",
      "LastUpdateTimestamp": "2023-03-02T23:45:01Z",
      "InitiationMethod": "INBOUND",
      "ContactDetails": {},
      "DisconnectReason": "CUSTOMER_DISCONNECT",
      "InitiationTimestamp": "2023-03-02T23:43:12Z",
      "TransferredToEndpoint": null,
      "VoiceIdResult": null,
      "Queue": {
        "Duration": 1,
        "ARN": "arn:aws:connect:ap-southeast-2:83564521348:instance/0772a43f-65dc-4936-a51a-bf291bced3ab/queue/agent/97e29e81-b085-4b33-b380-2f487b523ff2",
        "DequeueTimestamp": "2023-03-02T23:43:25Z",
        "EnqueueTimestamp": "2023-03-02T23:43:23Z",
        "Name": null
      },
      "Tags": {},
      "Agent": {
        "CustomerHoldDuration": 0,
        "AgentInteractionDuration": 33,
        "AfterContactWorkEndTimestamp": "2023-03-02T23:43:58Z",
        "RoutingProfile": {
          "ARN": "arn:aws:connect:ap-southeast-2:83564521348:instance/0772a43f-65dc-4936-a51a-bf291bced3ab/routing-profile/a2450c6f-c87d-4e91-9069-ce75d5176a56",
          "Name": "Operata Prod POLQA Routing Policy"
        },
        "NumberOfHolds": 0,
        "HierarchyGroups": null,
        "Username": "john",
        "LongestHoldDuration": 0,
        "AfterContactWorkStartTimestamp": "2023-03-02T23:43:58Z",
        "StateTransitions": null,
        "ARN": "arn:aws:connect:ap-southeast-2:83564521348:instance/0772a43f-65dc-4936-a51a-bf291bced3ab/agent/97e29e81-b085-4b33-b380-2f487b523ff2",
        "ConnectedToAgentTimestamp": "2023-03-02T23:43:25Z",
        "AfterContactWorkDuration": 0
      },
      "AWSContactTraceRecordFormatVersion": "2017-03-10",
      "AWSAccountId": "83564521348",
      "ScheduledTimestamp": null,
      "NextContactId": null,
      "Channel": "VOICE",
      "Recordings": [
        {
          "MediaStreamType": "AUDIO",
          "Status": "AVAILABLE",
          "FragmentStopNumber": null,
          "StorageType": "S3",
          "StopTimestamp": null,
          "StartTimestamp": null,
          "DeletionReason": null,
          "ParticipantType": null,
          "FragmentStartNumber": null,
          "Location": "http://bronchohemorrhagia.com/sarcodic/caulome?a=antiextreme&b=felsosphaerite#euphorbium"
        }
      ],
      "DisconnectTimestamp": "2023-03-02T23:43:58Z",
      "InitialContactId": null,
      "Campaign": {
        "CampaignId": null
      },
      "References": [],
      "InstanceARN": "arn:aws:connect:ap-southeast-2:83564521348:instance/8f7f360f-5d28-4ad9-8cdb-898fc4caa264",
      "AgentConnectionAttempts": 1,
      "Recording": {
        "Status": "AVAILABLE",
        "DeletionReason": null,
        "Type": "AUDIO",
        "Location": "http://antapoplectic.com/circumgyrate/sabbaticalness?a=granadine&b=jostler#headborough"
      },
      "TransferCompletedTimestamp": null
    },
    "contactDurationSummary": {
      "contactDurationRoundedMin": 1,
      "contactDurationActualSec": 46
    }
}
❗️

CTR Delays up to 5mins

It can take anywhere up to 5 minutes for a Contact Trace Record (CTR) to appear in your Operata account.

Note: The resources can be tagged in AWS once they have been created. Learn how to tag resources.


What’s Next

If you have enabled Privacy Controls then follow the link to configure.