Amazon Connect with AgentAssist – Voice via AWS Third Party Applications

Overview

This integration enables Amazon Connect to receive calls and Kore.ai AgentAssist helps agents during voice conversations. We use Amazon Kinesis Video Streams (KVS) to store audio streams of both users and agents.

High-level architecture

Prerequisites

  • Amazon Connect instance with admin privileges.
  • Kore.ai AgentAssist account.
  • Basic know-how of Amazon Connect.
  • Ability to receive voice calls on Amazon Connect agent desktop.

Components Required

This integration consists of the following components:

  • Kore.ai AgentAssist
  • AWS Lambda
  • Amazon Kinesis Video Streams
  • Amazon Connect

AWS Lambda

KVS Trigger

  • This function pulls the call stream’s metadata and the Amazon Web Services (AWS) credentials from the environment and generates credentials set (SessionToken, AccessKeyId, SecretAccessKey) for accessing the relevant KVS.
  • It then triggers the Transcriber to start consuming the KVS and send the transcripts to the specified Kore.ai bot with context of the current Conversation ID.

IFrame Token Generator

  • Generates Kore.ai AgentAssist IFrame widget token to display properly within Amazon Connect agent workspace.

Transcription Trigger

  • This is a microservice that extracts the required parameters from the request body and generates the KVS Processing executable as a separate process with the parameters (like Contact Details, Credentials, and Voice Gateway).

AWS Connect Third Party Application

  • This includes the Kore.ai AgentAssist widget that renders within the Amazon Connect Agent Workspace with the context of the current conversation.

Integration Setup Guide

Kore.ai AgentAssist

To onboard the Kore.ai AgentAssist account and create dialog tasks, refer to the AgentAssist Setup Guide.

AWS Lambda

KVS Trigger

  • Download the Lambda from here and upload to AWS.
  • Change the Lambda handler to “kvs_trigger.handler”.
  • Create the following environment variables within the Lambda:
    • kvsAccessKeyId – AWS Client ID
    • kvsSecretAccessKey – AWS Client Secret
    • region – AWS Region – Region of KVS
    • transcriberURL – https://agentassist.kore.ai/<AMAZON VOICE ENDPOINT>
    • The AMAZON VOICE ENDPOINT is available with your Kore.ai representative.
    • Ensure the account associated with AWS Client ID and Secret has Read permissions to Amazon KVS.

IFrame Token Generator

  • Download the Lambda from here and upload to AWS.

AWS Connect Third Party Application Configuration

  1. Click Third-party applications.
  2. Click Add application.
  3. Enter a Display name for your app – for example, Kore.ai AgentAssist Application.
  4. Enter a Namespace for the app – for example, kore.ai-example-ns.
  5. Enter “https://agentassist.kore.ai/integrations/amzn/tpa-voice/” in the Access URL field.
  6. Select all the instances that you want to enable AgentAssist for in the Instance association – optional field.

    Note: Third Party Apps are not supported for SAML based Amazon Connect instances. To use Kore.ai AgentAssist with SAML based Amazon Connect Instances, refer to this doc.
  7. Click Add application.

Amazon Connect

Configuring Amazon Connect Instance

  1. Select your Amazon Connect instance. (To create a new instance, follow Create an Amazon Connect instance.)
  2. Click Data storage.
  3. Click Edit next to Live media streaming. Here, you must create instances of Kinesis Video Streams.

  4. Add an appropriate Prefix for the Kinesis Video Streams and select an AWS Key Management Service.
  5. Set an appropriate Data retention period – 1 hour should be enough for Kore.ai AgentAssist use cases.
  6. Click Save.
  7. Click Data streaming.
  8. Select the Enable data streaming checkbox.
  9. Select Kinesis Stream.
  10. Click Create a new Kinesis Stream for this application, or select an existing one from the dropdown list. You can use the same stream for Contact Trace Records (CTRs) and Agent Events.
  11. Click Save.
  12. Click Flows.

  13. Click Choose an option under AWS Lambda.
  14. Select KVS Trigger Lambda from the dropdown list.
  15. Click Add Lambda Function.

  16. Follow the above two steps for the IFrame Token Generator Lambda.

Configuring Amazon Connect Contact Flow

  1. Sign in to your Amazon Connect Instance.
  2. Click Flows.
  3. Click Create flow.
  4. Click the dropdown list icon.
  5. Click Import.
  6. Select KoreAgentAssist.json from the file upload menu. You can download it from here.

  7. Click Import.
  8. Click Set contact attributes and enter the required fields:
    • botId
    • clientId
    • clientSecret
    • sipUri
    • agentassistUrl
    • wssUrl
    • accountId
  9. Click Save.
  10. Click Start Stream and Transcription in Kore Lambda.
  11. Select your Trigger Lambda Function from the dropdown list.
  12. Click Save.
  13. Click Kore Token Generator for TPA Lambda.
  14. Select your IFrame token generation Lambda.
  15. Click Save.
  16. For the Transfer to Flow, select a flow you want to move the user to.
  17. To use agent dispositions, configure the Set Event Flow block with Disconnect flow for Agent UI hook by importing this flow and selecting it. If not, you can delete the block and connect the remaining blocks to the disconnect block.
    Note: The disposition saving logic is at your discretion. Implement as per your use case. Some examples are:

    • Use a Lambda to store it within a document database.
    • Pass the data via a webhook to a third-party CRM.

  18. Click Save, and publish the flow.

Attaching Contact Flow to Phone Number

  1. Click Channels > Phone numbers.
  2. Select the Phone Number to attach to the flow. If you don’t have a number, go through How to get an Amazon Connect phone number in your current country to claim a phone number.
  3. Click the dropdown list to select the Contact flow.
  4. Click the AgentAssist flow you created.
  5. Click Save.

 

Amazon Connect with AgentAssist – Voice via AWS Third Party Applications

Overview

This integration enables Amazon Connect to receive calls and Kore.ai AgentAssist helps agents during voice conversations. We use Amazon Kinesis Video Streams (KVS) to store audio streams of both users and agents.

High-level architecture

Prerequisites

  • Amazon Connect instance with admin privileges.
  • Kore.ai AgentAssist account.
  • Basic know-how of Amazon Connect.
  • Ability to receive voice calls on Amazon Connect agent desktop.

Components Required

This integration consists of the following components:

  • Kore.ai AgentAssist
  • AWS Lambda
  • Amazon Kinesis Video Streams
  • Amazon Connect

AWS Lambda

KVS Trigger

  • This function pulls the call stream’s metadata and the Amazon Web Services (AWS) credentials from the environment and generates credentials set (SessionToken, AccessKeyId, SecretAccessKey) for accessing the relevant KVS.
  • It then triggers the Transcriber to start consuming the KVS and send the transcripts to the specified Kore.ai bot with context of the current Conversation ID.

IFrame Token Generator

  • Generates Kore.ai AgentAssist IFrame widget token to display properly within Amazon Connect agent workspace.

Transcription Trigger

  • This is a microservice that extracts the required parameters from the request body and generates the KVS Processing executable as a separate process with the parameters (like Contact Details, Credentials, and Voice Gateway).

AWS Connect Third Party Application

  • This includes the Kore.ai AgentAssist widget that renders within the Amazon Connect Agent Workspace with the context of the current conversation.

Integration Setup Guide

Kore.ai AgentAssist

To onboard the Kore.ai AgentAssist account and create dialog tasks, refer to the AgentAssist Setup Guide.

AWS Lambda

KVS Trigger

  • Download the Lambda from here and upload to AWS.
  • Change the Lambda handler to “kvs_trigger.handler”.
  • Create the following environment variables within the Lambda:
    • kvsAccessKeyId – AWS Client ID
    • kvsSecretAccessKey – AWS Client Secret
    • region – AWS Region – Region of KVS
    • transcriberURL – https://agentassist.kore.ai/<AMAZON VOICE ENDPOINT>
    • The AMAZON VOICE ENDPOINT is available with your Kore.ai representative.
    • Ensure the account associated with AWS Client ID and Secret has Read permissions to Amazon KVS.

IFrame Token Generator

  • Download the Lambda from here and upload to AWS.

AWS Connect Third Party Application Configuration

  1. Click Third-party applications.
  2. Click Add application.
  3. Enter a Display name for your app – for example, Kore.ai AgentAssist Application.
  4. Enter a Namespace for the app – for example, kore.ai-example-ns.
  5. Enter “https://agentassist.kore.ai/integrations/amzn/tpa-voice/” in the Access URL field.
  6. Select all the instances that you want to enable AgentAssist for in the Instance association – optional field.

    Note: Third Party Apps are not supported for SAML based Amazon Connect instances. To use Kore.ai AgentAssist with SAML based Amazon Connect Instances, refer to this doc.
  7. Click Add application.

Amazon Connect

Configuring Amazon Connect Instance

  1. Select your Amazon Connect instance. (To create a new instance, follow Create an Amazon Connect instance.)
  2. Click Data storage.
  3. Click Edit next to Live media streaming. Here, you must create instances of Kinesis Video Streams.

  4. Add an appropriate Prefix for the Kinesis Video Streams and select an AWS Key Management Service.
  5. Set an appropriate Data retention period – 1 hour should be enough for Kore.ai AgentAssist use cases.
  6. Click Save.
  7. Click Data streaming.
  8. Select the Enable data streaming checkbox.
  9. Select Kinesis Stream.
  10. Click Create a new Kinesis Stream for this application, or select an existing one from the dropdown list. You can use the same stream for Contact Trace Records (CTRs) and Agent Events.
  11. Click Save.
  12. Click Flows.

  13. Click Choose an option under AWS Lambda.
  14. Select KVS Trigger Lambda from the dropdown list.
  15. Click Add Lambda Function.

  16. Follow the above two steps for the IFrame Token Generator Lambda.

Configuring Amazon Connect Contact Flow

  1. Sign in to your Amazon Connect Instance.
  2. Click Flows.
  3. Click Create flow.
  4. Click the dropdown list icon.
  5. Click Import.
  6. Select KoreAgentAssist.json from the file upload menu. You can download it from here.

  7. Click Import.
  8. Click Set contact attributes and enter the required fields:
    • botId
    • clientId
    • clientSecret
    • sipUri
    • agentassistUrl
    • wssUrl
    • accountId
  9. Click Save.
  10. Click Start Stream and Transcription in Kore Lambda.
  11. Select your Trigger Lambda Function from the dropdown list.
  12. Click Save.
  13. Click Kore Token Generator for TPA Lambda.
  14. Select your IFrame token generation Lambda.
  15. Click Save.
  16. For the Transfer to Flow, select a flow you want to move the user to.
  17. To use agent dispositions, configure the Set Event Flow block with Disconnect flow for Agent UI hook by importing this flow and selecting it. If not, you can delete the block and connect the remaining blocks to the disconnect block.
    Note: The disposition saving logic is at your discretion. Implement as per your use case. Some examples are:

    • Use a Lambda to store it within a document database.
    • Pass the data via a webhook to a third-party CRM.

  18. Click Save, and publish the flow.

Attaching Contact Flow to Phone Number

  1. Click Channels > Phone numbers.
  2. Select the Phone Number to attach to the flow. If you don’t have a number, go through How to get an Amazon Connect phone number in your current country to claim a phone number.
  3. Click the dropdown list to select the Contact flow.
  4. Click the AgentAssist flow you created.
  5. Click Save.