GETTING STARTED
Introduction to AgentAssist
Architecture and Configuration
Glossary
FAQ
Release Notes
Recent Updates
Previous Versions

SET UP AgentAssist
AgentAssist Setup Guide
Sign Up for AgentAssist
Conversation Automation
Automations Board
Create a Bot
Add Multiple Bots
Create Use Cases
Overview
FAQs Setup
Create Dialog Tasks
Welcome Event
LLM and Generative AI
Access Custom Data in Agent AI Bot
Search AI
Agent Coaching
Playbook
Customizing the AgentAssist Widget
Configure Auto Summarization with Custom Dialog Tasks
Feedback Settings
Widget Theming (Layout Customization)
Supported Languages

INTEGRATIONS
AgentAssist Integration with Third-Party Applications
Amazon Connect
Amazon Connect with AgentAssist Voice Installation Guide
Amazon Connect with AgentAssist Chat Using Custom CCP
Amazon Connect with AgentAssist – Voice via AWS Third Party Applications
Channels
Voice
Configure Voice Channel
Configure Speech Recognition
Chat
SmartAssist
Configure AgentAssist
Demos
Voice Demo
Chat Demo
Salesforce
OmniChannel
Omni-Channel Configuration - Chat
AgentAssist Configuration - Chat
Genesys CTI
AgentAssist Voice Integration
NICE-CTI
Kore Agent AI with Salesforce NICE CX-CTI
Demos
Voice Demo
Chat Demo
Zendesk
Set up AgentAssist for Zendesk
Genesys
AgentAssist Integration with Genesys - Manual Setup Instructions
Agent AI Integration with Genesys Cloud CX using Kore Data Table
Set Up AgentAssist for Genesys
Change AgentAssist Bot in Genesys
Integrate Kore.ai Bot on Genesys Cloud CX Messaging
NICE MAX Desktop
Talkdesk
Twilio

AGENT EXPERIENCE
AgentAssist Widget
Bot Override and Automations

ANALYTICS
Conversation Logs
Dashboard
Agent AI ROI Analyzer (Beta)
APIs
Raw Data API v1
Raw Data API v2
Conversation Summary Trigger

Agent AI Integration with Genesys Cloud CX using Kore Data Table

Integration of Agent AI in Genesys is a significant enhancement to our solution. Previously limited to a single bot and a department-specific approach, the solution has now been upgraded to support multiple bots and a queue-based functionality. This enhancement enables Genesys Cloud CX to offer a more flexible and scalable solution for businesses seeking to leverage AI to improve agent efficiency and customer satisfaction across multiple departments.

Note: This integration process also works for Genesys Desktop Apps.

Definitions

Section/Group Key Definition Reference
Generate Oauth ID to enable Kore Services to Connect with Genesys

+

Create an Interaction Widget in Genesys for Agent AI

Agent AI URL The domain of the Agent AI.
Client App To use any Kore.ai Bot SDKs, a client app must be created to get the authentication credentials to communicate between the Kore.ai bot and Agent AI. 

Note: Only the default Client App is supported.

https://developer.kore.ai/docs/bots/channel-enablement/adding-the-webmobile-client-channel/
Create an Interaction Widget in Genesys for Agent AI Custom Data / x_passthru_metadata Use this to pass information to Agent AI Bot.
Capture Bot Information in Kore Data Table Secure Custom Data / KvpConfig Use this to pass sensitive information to Agent AI Bot. https://developer.kore.ai/docs/bots/sdks/user-authorization-and-assertion/#JSON_Web_Encryption_JWE
Create an Interaction Widget in Genesys for Agent AI Interaction Widget The Interaction Widget is utilized for displaying the Agent AI iframe within the Genesys Agent Desktop. https://help.mypurecloud.com/articles/set-up-an-interaction-widget-integration/
Create an Interaction Widget in Genesys for Agent AI Interaction Widget URL params
  • “multibot=true”, represents usage of new version of AgentAI integration that supports agent specific bot assistant
  • “x_metadata” – This param value equals the urlencoded string of JSON object which consists of data required by Kore Middleware service to successfully generate Agent AI iframe URL.
  • “x_passthru_metadata” – This param value is a JWE token that has custom data in its payload that can be sent to Agent AI. (Optional Parameter)
x_metadata’s JSON object structure is 

{

“datatable”:{

“name”:<datatable name>,

“token”:<jwt token created using App’s ClientId and ClientSecret>,

“qDelimiter”:<Paste the special character used in the queue name to distinguish the QueueIdentifier from the remaining part of the queue name>

}

}

Capture Bot Information in Kore Data Table BotId A unique identifier assigned to a bot. Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table ClientId An identifier provided to a client application. Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table ClientSecret  A secret key or password associated with the ClientId. Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table AgentAssistWidgetURL URL that points to the Agent AI widget.

For example, https://agentassist.kore.ai/koreagentassist-sdk-v3/UI/agentassist-iframe.html

Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table AudiohookEnabled A setting or flag indicating whether Kore audio processing is enabled for the bot. “true” if Kore audio processing should be enabled, otherwise “false”.
Capture Bot Information in Kore Data Table QueueIdentifier It’s a unique identifier in the Data Table to fetch bot details at run time.
Capture Bot Information in Kore Data Table KvpConfig The KVPs (Key value pairs) to be included in SecureCustomData. JSON object containing the necessary keys and xpath (paths to locate the value in Genesys Conversation API result JSON object). (https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations–conversationId-)

Note: Optional Column. Required when you wish to send secure custom data to Agent AI.

Sample:

{

“queueName”: “participants[0].queueName”,

“callStatus”: “participants[0].calls[0].state”

}

Capture Bot Information in Kore Data Table JWEPublicKey Public key assigned to the Client App. Channels > Web/Mobile Client > App Details section of the Agent AI automation portal.
Capture Bot Information in Kore Data Table RSPrivatePem The Private Key that corresponds to the Public Key supplied during the creation of a Client App using the RS256 or RS512 algorithm. RSPrivatePemKey is an optional column and is required when the Algorithm used is “RS256” or “RS512”.

(Not supported / Will be supported in future releases)

Capture Bot Information in Kore Data Table Algorithm Algorithm assigned to the Client App. Currently, “HS256” algorithm is the only supported value. So, Algorithm value will always be “HS256”.
Install Audiohook for Voice Streaming Kore Voice Gateway(KVG) For Saas in US region, value is savg-webserver.kore.ai

For on-prem, refer to corresponding host 

Architecture Diagrams

Chat

Voice

Interaction Sequence

This document provides detailed, step-by-step instructions for setting up the integration of the Agent AI widget in the Genesys environment.

Activities on Kore Platform

Activities on Genesys Cloud

Chat Setup

Voice Setup

Prerequisites

  • Genesys Administrator having access to Genesys Cloud account with Admin rights
  • Kore Administrator having access to Kore.ai Agent AI instance

Capture Bot Information in Kore Data Table

Data Tables are used to store agent queue-specific bot credentials. Each record of the Kore Data Table represents a unique Genesys agent queue and its corresponding bot definitions. 

If a single bot is used for several queues, create a record for each queue with the same bot definition.

Kore.ai matches the third-party queue name with the “QueueIdentifier” credential name in its bot credentials to render the appropriate bot.

Bot credentials are fetched based on Genesys desktop queue names. If the Genesys queue name is of the “<QUEUEIDENTIFIER><QDELIMITER>XXXXX” format, for example “ALPHAINC_CUSTOMERSERVICE_16092024,” then:

Note: Multiple records with different bot credentials shouldn’t be entered into the Kore Data Table for a single QueueIdentifier.

How to create a New Data Table

  1. Sign in to Kore.ai botbuilder.
  2. Click Data > Data Tables.
  3. Click New Table.

  4. Enter the following details in the New Table page:
    1. Name of the Data Table. (Any alphanumeric name.)
    2. Description of the Data Table.
    3. Columns to be included in the data table. Click the “tick” mark to add multiple columns.

      Add the following case-sensitive columns with type “string”:

      Mandatory Columns:

      1. QueueIdentifier (unique identifier for the table)
      2. BotId
      3. ClientId
      4. ClientSecret
      5. AgentAssistWidgetURL
      6. AudiohookEnabled
      7. JWEPublicKey

      Optional Columns:

      1. KvpConfig
      2. Algorithm (HS256)
      3. RSPrivatePem (Ignore/Not Supported)
    4. Indexes for the table.
      1. Index Name for reference.
      2. Is Unique flag to define if the index is expected to contain unique values. (Enable “is Unique.”)
      3. Column & Sort Order – List of columns to be included in the index; you can select multiple columns and specify the sort order (ascending or descending) for each of the selected columns. (Select QueueIdentifier with ascending order.)
    5. Bot Assignments (Not Applicable)
    6. App Assignments to let apps access data in this table.
      1. Select any app from the displayed list, or click Create New App and enter your app name:
      2. Select the Read, Write, and Delete permissions, as required.
        Note: You can also create new apps by clicking Data > Apps > New App in the home page:

    7. Process Assignments (Not Applicable)
  5. Click Create to create the new data table.

Insert data into Data Table

Set up necessary permissions and app assignments and insert bot-specific data into the Data Table.

  1. Sign in to Kore.ai botbuilder.
  2. Click Data > Apps.
  3. Select the App with write access to the Data Table where you want to add information.

  4. Copy Client ID and Client Secret of the App.
  5. Create a JWT Token using the Client ID and Client Secret by following this doc.
  6. Insert the following data into the Data Table by following this doc. Use the JWT Token created in the previous step.

API Body Payload Structure:

{

    "data": {

        "QueueIdentifier": <Unique QueueIdentifier>,

        "BotId": <Kore BotId>,

        "ClientId": <Kore ClientId>,

        "ClientSecret": <Kore ClientSecret>,

        "AudiohookEnabled": "true" / “false”,

        "AgentAssistWidgetURL": <Kore Agent AI Widget URL>,

        "KvpConfig": <KVPs of SecureCustomData>,

        "JWEPublicKey": <Public Key assigned to Client App>,

        "Algorithm": "HS256"

    }

}

Note: JWEPublicKey and KvpConfig value should be a stringified JSON object.

Generate Oauth ID to enable Kore Services to Connect with Genesys

Steps to get Genesys OAuth ID:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Integrations > OAuth.

  3. Click Add Client.

  4. Enter the app name, description, and token duration in the App Name, Description, and Token Duration fields.
  5. Select Token Implicit Grant (Browser) in the Grant Types section.

  6. Add {Agent AI URL}/koreaiaa-genesys/ in the Authorized redirect URIs field.
  7. Add the following list of scopes in the Scope section:
  • conversations
  • conversations:readonly
  • integrations
  • integrations:readonly
  • messaging
  • messaging-platform
  • messaging-platform:readonly
  • messaging:readonly
  • notifications
  • user-basic-info
  • web-chat
  • web-chat:readonly

After saving the configuration, you will get the Client Id of the created OAuth client. Copy the ID and have it available for the next step.

Create an Interaction Widget in Genesys for Agent AI

Create a new Interaction Widget. This widget is hosted in the Genesys agent desktop and provides the Agent AI solution features to agents.

Steps to create an Interaction Widget:

  1. Sign in to Genesys Cloud.
  2. Click Admin > Integrations.

  3. If you have not created an Interaction Widget for Agent AI, install a new Interaction Widget by clicking the Integrations tab on the right side of the page.
  4. Name the Interaction Widget with a meaningful name, such as KoreaiAA Interaction Widget.
  5. Open the Interaction Widget by clicking the name.

  6. Go to the Configuration tab of the Interaction Widget.
  7. In the Application URL field, enter the following structure:

    {Agent AI URL}/koreaiaa-genesys/?conversationid={{gcConversationId}}&lang={{gcLangTag}}&environment={{gcHostOrigin}}&genesysid=<genesys-oauth-Id>&multibot=true&x_metadata=<?x=%7B%22datatable%22%xxxxx>&x_passthru_metadata=<JWE-Token>.

    Note: x_passthru_metadata is an optional query parameter. This is required when you wish to pass custom data to Agent AI. 

    The “x_metadata” value equals the url-encoded string of JSON object.

    1. For the oauthId value, use the OAuth ID from the generate OAuth step.
    2. Build x_metadata data:
      1. Sign in to Kore botbuilder.
      2. Click Data > Data Tables, and copy the Data Table name:
      3. Click Apps, and click one of the app names that has “read” access:
      4. Copy the Client ID and Client Secret values.
      5. Create a JWT Token using the Client ID and Client Secret by following this doc.
      6. Generate a JSON object with the specified structure and then convert it into a url-encoded string:

        {
        
            "datatable": {
        
                 "name": <paste datatable name>,
        
                 "token": <paste token created in previous step>,
        
                 "qDelimiter": <Paste the special character used in the queue name to distinguish the QueueIdentifier from the remaining part of the queue name>
        
             }
        
        }

        Website for URL encoding – urlencoder

        Reference:

      7. Copy the URL-encoded string and paste it against the x_metadata value.
  8. Allow all permissions in iFrame Sandbox Options and iFrame Feature/Permission Policy.

    iFrame Sandbox Options: allow-forms,allow-modals,allow-popups,allow-presentation,allow-same-origin,allow-scripts,allow-downloads.

    iFrame Feature/Permission Policy: camera,microphone,geolocation,clipboard-write,display-capture,fullscreen.

    Communication Type Filtering: chat and call.

Provide Interaction Widget access to agents

To view the Interaction Widget, agents must have the following accesses:

Group Membership

An Interaction Widget uses Group Membership to determine who can view it on the agent desktop.

  1. Use an existing Group, if your agents are already part of it. Otherwise, create a new Group for Agent AI permission.
  2. Name the Group as KoreAA-Agents or similar to distinguish it.
  3. Add any agent to allow them to use the Agent AI functionality. You can utilize more than one Group, if required.
  4. Go back to the Integrations section and open the Interaction Widget created in the Create an Interaction Widget step
  5. On the Configuration tab, add access using the Group you identified or created for Agent AI in the Group Filtering option.
    You may also utilize Queue Filtering (optional).

Custom Role/Permission

 In addition to the basic agent role, add a new role as given below:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > People & Permissions > Roles / Permissions.
  3. Click Add Role to create a new role.
  4. Give a distinctive name to the role; for example, KoreaiAA Agent.
  5. On the Permission tab, search for Conversation > Transcription > View, and add (select the box):
    Note: The Conversation permission is available only in the CX3 license.
  6. Once finished, the Assigned Permissions view should look like this:

  7. Once the role is created, click the three dots at the right end of the Permission role, and select Change Membership. Add the appropriate agents to the role.

Create a Queue in Genesys

  1. Sign in to Genesys Pure Cloud.
  2. Go to Admin > Contact Center > Queues, or enter “queues” in the search bar under the Admin section and press the Enter key.
  3. Click Create Queue. An empty page to create a new queue appears on the right side of the page.

  4. Enter/select the following details in the Create Queue page:
    1. Name: Enter a unique name for the new queue.
    2. Division: Select a division in which you want to place this queue. 
    3. Copy settings and members from (Optional): Select an existing queue name, if you want to copy the settings and members from it.
    4. Peer Id (Optional) : Enter a unique ID that can be used to identify the queue from an external platform.

  5. Click Save.

Enabling the Audio Monitoring toggle

To stream audio to third-party services, follow the below steps:

  1. Sign in to Genesys Pure Cloud.
  2. Go to Admin > Contact Center > Queues, or enter “queues” in the search bar under the Admin section and press the Enter key.
  3. Click the intended queue name.
  4. Click the Voice tab.
  5. Enable the Audio Monitoring toggle.

Audio Monitoring: Voice settings on a Queue now have an additional Audio Monitoring option, separate from Voice Transcription. This allows granularity in what you turn on. The Audio Monitoring will be enabled in the queue, if Audiohook Monitor is enabled by the organization.

Create/Update Architect Inbound Message Flow in Genesys for the Agent Queue

This step is essential for managing incoming messages to the Genesys platform. When a chat is initiated from the web chat messenger, it first gets directed to this inbound message flow.

Steps to create a Chat Architect Flow

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Architect > Architect.

  3. Click the three dots next to Flows: Inbound Call, and select Inbound Message.

  4. Click the +Add button to create an Inbound Message Flow.

  5. Click Create Flow. The final architect flow looks like the following screenshot:

  6. Click Publish.

Create Messenger Configuration

Before using web messaging, you must configure it in Genesys Cloud. To configure Web or Mobile Messaging in your organization, follow these steps:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Message > Messenger Configurations.

  3. Click New Configuration.

  4. Enter a name and description.

  5. Click the Appearance tab and complete the following information:
    1. Under Select your Supported Languages, click the Select language(s) list and choose the languages that you want to support in the Messenger interface.
      Note: The same language should be configured in the Kore Agent AI bot.
    2. Under Select Default Language, click the Select language list and choose the default language.

    3. Adjust the other settings according to your preferences.
  6. Click the Apps tab and complete the following steps:
    1. Under Clear Conversation, turn on the toggle button. This is required for the Agent AI Conversation Summary feature to work.

    2. Adjust the other settings according to your preferences.
  7. Click Save New Version to create a new version.

Create Messenger Deployment

To deploy the Messenger snippet to your website, follow these steps:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Message > Messenger Deployments.

  3. Click New Deployment.

  4. Enter a name and description.

  5. Under Select your Configuration, click Select Configuration to select a version of a Messenger configuration created in the previous step to assign to this deployment.
    1. In the Assignment pane, navigate to the Messenger configuration you want to assign to the configuration, and click the name of the Messenger configuration.
    2. Select the version that you want to assign.
    3. Click Save.
  6. Under Restrict domain access, determine whether to allow all domains or restrict the domains on which you want to deploy the snippet.  
    1. To allow all domains, select the Allow all domains option. Use this option for testing and development purposes.
    2. To restrict domains, enter a domain and click Add Domain. You can add multiple domains to the list. Restrict domains to prevent unauthorized usage of your snippet from unknown domains. If you restrict a domain, Messenger does not run on that website and rejects API requests from that domain.
  7. Under Select your Architect Flow, select the inbound message flow created in the previous steps.
  8. Click Save. The Messenger Deployments page now displays the snippet and the deployment key.
  9. Copy the Messenger snippet and deploy the Messenger snippet to your website.
    • If you are building a custom Messenger, copy the deployment key.
      Note: Once the above mentioned website page loads, the messenger window appears.

(Optional) Install Audiohook for Voice Streaming

The final step is to install Audiohook for voice streaming, if using Kore-managed Transcriptions.

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Integrations > Integrations.
  3. Enter “audiohook” in the search bar.

    Audiohook integration requires specific configuration values to support Agent AI configuration.
  4. Install a new audiohook app by clicking the Integrations button on the top-right corner.
  5. Open the Audiohook, and go to the Configuration tab.

    1. Channel value should be both.
    2. The Connection URI format should be similar to
      wss://{Kore Voice Gateway(KVG)}/audiosocket/genesys/?sipuri=xxx&token=xxx&botId=xxx&accountId=xxx&agentassist=true, but add “multiBot=true” parameter to it.

      Note 1
      : Configure sip of any of the bot inserted in the Data Table.Note 2: Kore Voice Gateway(KVG) host name to be referred from corresponding environment being used at Saas or on-prem
  6. Get sipuri=sip:<sip-string> from Agent AI > Voice channel.
  7. Use the following reference from Agent AI Channel configuration page to fetch Bot ID, Account ID, Client ID, and Client Secret (for token generation).

    1. Follow the steps of Using XO Platform APIs – Kore.ai Documentation to generate the token (token= <token>.)
  8. Add credentials in the Credentials tab. Use the ClientID and ClientSecret of the bot you have used while configuring the Audiohook. These credentials are used to validate the audiostream signature by Kore.

  9. Click Save.

Create/Update an Architect Inbound Call Flow in Genesys for the Agent Queue

When a call comes to a Genesys number, it passes through an architect flow. If you do not have an ACD architect flow for the queue, create one by following this section.

Steps to Create a Call Architect Flow

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Architect > Architect.
  3. Click the +Add button to create an Inbound Call Flow.

  4. Click Create Flow. The final architect flow looks like the following screenshot:

Notes:

  • Inside the Transfer to ACD node, select the queue name where you want to transfer the call.
  • The Transcription node is optional, if you have already enabled Voice Transcription and Audio Monitoring in the queue level voice configuration.
  • Architect flow is required as a mandatory step, as it directs the incoming call to the Genesys agent desktop.

Access Custom Data and Secure Custom Data in Agent AI Bot

Custom Data and Secure Custom Data can be accessed in Welcome Events in Agent AI configuration page and in Dialog Tasks in Agent AI automation page.

Custom Data can be accessed as

{{context.session.UserContext.customData.<key>}}.

Secure Custom Data can be accessed as

 {{context.session.UserContext.secureCustomData.<key>}}.

Welcome Events:

Dialog Tasks:

In the Dialog Task, open a Message node and click Manage Responses.

Post Installation Setup

Steps to start a Chat Request

  1. Sign in to Genesys Developer Applications.
    Note: To start chat simulation, you must have access to the Genesys Developer portal (an account with Genesys).

  2. Select Web Messenger, and then click Start Chat to initiate the chat request.
  3. Enter a message on the Message Us window, and click the Send icon.

  4. Turn on the On Queue toggle on the top-right corner of the page.

  5. A new chat notification appears on the Genesys Agent Desktop. Accept the conversation by clicking the Answer button on the left panel.

  6. Select the Interaction Widget icon to view the Agent AI widget.

Steps to start a Voice Request

  1. In Call Routing, assign the Architect flow created in the Create an Architect Flow step to a Genesys Phone Number.
  2. Initiate a call using this Genesys Phone Number.
  3. A new call notification appears on the Genesys Agent Desktop. Accept the conversation by clicking the Answer button on the left panel.

  4. Select the Interaction Widget icon to view the Agent AI widget.

Set default contextual panel to Kore Agent AI Interaction Widget

To streamline call handling and improve efficiency, the Agent AI widget can now be embedded as the primary contextual panel interaction widget.

To enable this:

  1. Sign in to Genesys Cloud.
  2. Click Admin.
  3. Click Panel Manager under the Contact Center section. This opens the Default Contextual Panel.
  4. Select the interaction widget name in both Voice and Web Messaging field dropdown lists (Refer to step-4 of Create an Interaction Widget in Genesys for Agent AI).
  5. Click Save.

Also, for backward compatibility of the feature, add an additional query param(defaultwidget=true) to the Kore Interaction Widget URL.

Example: https://agentassist.kore.ai//koreaiaa-genesys/?conversationid={{gcConversationId}}&lang={{gcLangTag}}&environment={{gcHostOrigin}}&genesysid=<genesys-oauth-Id>&defaultwidget=true

Note: Reload the Genesys Agent Desktop before testing this latest change.

 

Agent AI Integration with Genesys Cloud CX using Kore Data Table

Integration of Agent AI in Genesys is a significant enhancement to our solution. Previously limited to a single bot and a department-specific approach, the solution has now been upgraded to support multiple bots and a queue-based functionality. This enhancement enables Genesys Cloud CX to offer a more flexible and scalable solution for businesses seeking to leverage AI to improve agent efficiency and customer satisfaction across multiple departments.

Note: This integration process also works for Genesys Desktop Apps.

Definitions

Section/Group Key Definition Reference
Generate Oauth ID to enable Kore Services to Connect with Genesys

+

Create an Interaction Widget in Genesys for Agent AI

Agent AI URL The domain of the Agent AI.
Client App To use any Kore.ai Bot SDKs, a client app must be created to get the authentication credentials to communicate between the Kore.ai bot and Agent AI. 

Note: Only the default Client App is supported.

https://developer.kore.ai/docs/bots/channel-enablement/adding-the-webmobile-client-channel/
Create an Interaction Widget in Genesys for Agent AI Custom Data / x_passthru_metadata Use this to pass information to Agent AI Bot.
Capture Bot Information in Kore Data Table Secure Custom Data / KvpConfig Use this to pass sensitive information to Agent AI Bot. https://developer.kore.ai/docs/bots/sdks/user-authorization-and-assertion/#JSON_Web_Encryption_JWE
Create an Interaction Widget in Genesys for Agent AI Interaction Widget The Interaction Widget is utilized for displaying the Agent AI iframe within the Genesys Agent Desktop. https://help.mypurecloud.com/articles/set-up-an-interaction-widget-integration/
Create an Interaction Widget in Genesys for Agent AI Interaction Widget URL params
  • “multibot=true”, represents usage of new version of AgentAI integration that supports agent specific bot assistant
  • “x_metadata” – This param value equals the urlencoded string of JSON object which consists of data required by Kore Middleware service to successfully generate Agent AI iframe URL.
  • “x_passthru_metadata” – This param value is a JWE token that has custom data in its payload that can be sent to Agent AI. (Optional Parameter)
x_metadata’s JSON object structure is 

{

“datatable”:{

“name”:<datatable name>,

“token”:<jwt token created using App’s ClientId and ClientSecret>,

“qDelimiter”:<Paste the special character used in the queue name to distinguish the QueueIdentifier from the remaining part of the queue name>

}

}

Capture Bot Information in Kore Data Table BotId A unique identifier assigned to a bot. Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table ClientId An identifier provided to a client application. Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table ClientSecret  A secret key or password associated with the ClientId. Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table AgentAssistWidgetURL URL that points to the Agent AI widget.

For example, https://agentassist.kore.ai/koreagentassist-sdk-v3/UI/agentassist-iframe.html

Channels > Chat section of the Agent AI configuration portal.
Capture Bot Information in Kore Data Table AudiohookEnabled A setting or flag indicating whether Kore audio processing is enabled for the bot. “true” if Kore audio processing should be enabled, otherwise “false”.
Capture Bot Information in Kore Data Table QueueIdentifier It’s a unique identifier in the Data Table to fetch bot details at run time.
Capture Bot Information in Kore Data Table KvpConfig The KVPs (Key value pairs) to be included in SecureCustomData. JSON object containing the necessary keys and xpath (paths to locate the value in Genesys Conversation API result JSON object). (https://developer.genesys.cloud/devapps/api-explorer#get-api-v2-conversations–conversationId-)

Note: Optional Column. Required when you wish to send secure custom data to Agent AI.

Sample:

{

“queueName”: “participants[0].queueName”,

“callStatus”: “participants[0].calls[0].state”

}

Capture Bot Information in Kore Data Table JWEPublicKey Public key assigned to the Client App. Channels > Web/Mobile Client > App Details section of the Agent AI automation portal.
Capture Bot Information in Kore Data Table RSPrivatePem The Private Key that corresponds to the Public Key supplied during the creation of a Client App using the RS256 or RS512 algorithm. RSPrivatePemKey is an optional column and is required when the Algorithm used is “RS256” or “RS512”.

(Not supported / Will be supported in future releases)

Capture Bot Information in Kore Data Table Algorithm Algorithm assigned to the Client App. Currently, “HS256” algorithm is the only supported value. So, Algorithm value will always be “HS256”.
Install Audiohook for Voice Streaming Kore Voice Gateway(KVG) For Saas in US region, value is savg-webserver.kore.ai

For on-prem, refer to corresponding host 

Architecture Diagrams

Chat

Voice

Interaction Sequence

This document provides detailed, step-by-step instructions for setting up the integration of the Agent AI widget in the Genesys environment.

Activities on Kore Platform

Activities on Genesys Cloud

Chat Setup

Voice Setup

Prerequisites

  • Genesys Administrator having access to Genesys Cloud account with Admin rights
  • Kore Administrator having access to Kore.ai Agent AI instance

Capture Bot Information in Kore Data Table

Data Tables are used to store agent queue-specific bot credentials. Each record of the Kore Data Table represents a unique Genesys agent queue and its corresponding bot definitions. 

If a single bot is used for several queues, create a record for each queue with the same bot definition.

Kore.ai matches the third-party queue name with the “QueueIdentifier” credential name in its bot credentials to render the appropriate bot.

Bot credentials are fetched based on Genesys desktop queue names. If the Genesys queue name is of the “<QUEUEIDENTIFIER><QDELIMITER>XXXXX” format, for example “ALPHAINC_CUSTOMERSERVICE_16092024,” then:

Note: Multiple records with different bot credentials shouldn’t be entered into the Kore Data Table for a single QueueIdentifier.

How to create a New Data Table

  1. Sign in to Kore.ai botbuilder.
  2. Click Data > Data Tables.
  3. Click New Table.

  4. Enter the following details in the New Table page:
    1. Name of the Data Table. (Any alphanumeric name.)
    2. Description of the Data Table.
    3. Columns to be included in the data table. Click the “tick” mark to add multiple columns.

      Add the following case-sensitive columns with type “string”:

      Mandatory Columns:

      1. QueueIdentifier (unique identifier for the table)
      2. BotId
      3. ClientId
      4. ClientSecret
      5. AgentAssistWidgetURL
      6. AudiohookEnabled
      7. JWEPublicKey

      Optional Columns:

      1. KvpConfig
      2. Algorithm (HS256)
      3. RSPrivatePem (Ignore/Not Supported)
    4. Indexes for the table.
      1. Index Name for reference.
      2. Is Unique flag to define if the index is expected to contain unique values. (Enable “is Unique.”)
      3. Column & Sort Order – List of columns to be included in the index; you can select multiple columns and specify the sort order (ascending or descending) for each of the selected columns. (Select QueueIdentifier with ascending order.)
    5. Bot Assignments (Not Applicable)
    6. App Assignments to let apps access data in this table.
      1. Select any app from the displayed list, or click Create New App and enter your app name:
      2. Select the Read, Write, and Delete permissions, as required.
        Note: You can also create new apps by clicking Data > Apps > New App in the home page:

    7. Process Assignments (Not Applicable)
  5. Click Create to create the new data table.

Insert data into Data Table

Set up necessary permissions and app assignments and insert bot-specific data into the Data Table.

  1. Sign in to Kore.ai botbuilder.
  2. Click Data > Apps.
  3. Select the App with write access to the Data Table where you want to add information.

  4. Copy Client ID and Client Secret of the App.
  5. Create a JWT Token using the Client ID and Client Secret by following this doc.
  6. Insert the following data into the Data Table by following this doc. Use the JWT Token created in the previous step.

API Body Payload Structure:

{

    "data": {

        "QueueIdentifier": <Unique QueueIdentifier>,

        "BotId": <Kore BotId>,

        "ClientId": <Kore ClientId>,

        "ClientSecret": <Kore ClientSecret>,

        "AudiohookEnabled": "true" / “false”,

        "AgentAssistWidgetURL": <Kore Agent AI Widget URL>,

        "KvpConfig": <KVPs of SecureCustomData>,

        "JWEPublicKey": <Public Key assigned to Client App>,

        "Algorithm": "HS256"

    }

}

Note: JWEPublicKey and KvpConfig value should be a stringified JSON object.

Generate Oauth ID to enable Kore Services to Connect with Genesys

Steps to get Genesys OAuth ID:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Integrations > OAuth.

  3. Click Add Client.

  4. Enter the app name, description, and token duration in the App Name, Description, and Token Duration fields.
  5. Select Token Implicit Grant (Browser) in the Grant Types section.

  6. Add {Agent AI URL}/koreaiaa-genesys/ in the Authorized redirect URIs field.
  7. Add the following list of scopes in the Scope section:
  • conversations
  • conversations:readonly
  • integrations
  • integrations:readonly
  • messaging
  • messaging-platform
  • messaging-platform:readonly
  • messaging:readonly
  • notifications
  • user-basic-info
  • web-chat
  • web-chat:readonly

After saving the configuration, you will get the Client Id of the created OAuth client. Copy the ID and have it available for the next step.

Create an Interaction Widget in Genesys for Agent AI

Create a new Interaction Widget. This widget is hosted in the Genesys agent desktop and provides the Agent AI solution features to agents.

Steps to create an Interaction Widget:

  1. Sign in to Genesys Cloud.
  2. Click Admin > Integrations.

  3. If you have not created an Interaction Widget for Agent AI, install a new Interaction Widget by clicking the Integrations tab on the right side of the page.
  4. Name the Interaction Widget with a meaningful name, such as KoreaiAA Interaction Widget.
  5. Open the Interaction Widget by clicking the name.

  6. Go to the Configuration tab of the Interaction Widget.
  7. In the Application URL field, enter the following structure:

    {Agent AI URL}/koreaiaa-genesys/?conversationid={{gcConversationId}}&lang={{gcLangTag}}&environment={{gcHostOrigin}}&genesysid=<genesys-oauth-Id>&multibot=true&x_metadata=<?x=%7B%22datatable%22%xxxxx>&x_passthru_metadata=<JWE-Token>.

    Note: x_passthru_metadata is an optional query parameter. This is required when you wish to pass custom data to Agent AI. 

    The “x_metadata” value equals the url-encoded string of JSON object.

    1. For the oauthId value, use the OAuth ID from the generate OAuth step.
    2. Build x_metadata data:
      1. Sign in to Kore botbuilder.
      2. Click Data > Data Tables, and copy the Data Table name:
      3. Click Apps, and click one of the app names that has “read” access:
      4. Copy the Client ID and Client Secret values.
      5. Create a JWT Token using the Client ID and Client Secret by following this doc.
      6. Generate a JSON object with the specified structure and then convert it into a url-encoded string:

        {
        
            "datatable": {
        
                 "name": <paste datatable name>,
        
                 "token": <paste token created in previous step>,
        
                 "qDelimiter": <Paste the special character used in the queue name to distinguish the QueueIdentifier from the remaining part of the queue name>
        
             }
        
        }

        Website for URL encoding – urlencoder

        Reference:

      7. Copy the URL-encoded string and paste it against the x_metadata value.
  8. Allow all permissions in iFrame Sandbox Options and iFrame Feature/Permission Policy.

    iFrame Sandbox Options: allow-forms,allow-modals,allow-popups,allow-presentation,allow-same-origin,allow-scripts,allow-downloads.

    iFrame Feature/Permission Policy: camera,microphone,geolocation,clipboard-write,display-capture,fullscreen.

    Communication Type Filtering: chat and call.

Provide Interaction Widget access to agents

To view the Interaction Widget, agents must have the following accesses:

Group Membership

An Interaction Widget uses Group Membership to determine who can view it on the agent desktop.

  1. Use an existing Group, if your agents are already part of it. Otherwise, create a new Group for Agent AI permission.
  2. Name the Group as KoreAA-Agents or similar to distinguish it.
  3. Add any agent to allow them to use the Agent AI functionality. You can utilize more than one Group, if required.
  4. Go back to the Integrations section and open the Interaction Widget created in the Create an Interaction Widget step
  5. On the Configuration tab, add access using the Group you identified or created for Agent AI in the Group Filtering option.
    You may also utilize Queue Filtering (optional).

Custom Role/Permission

 In addition to the basic agent role, add a new role as given below:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > People & Permissions > Roles / Permissions.
  3. Click Add Role to create a new role.
  4. Give a distinctive name to the role; for example, KoreaiAA Agent.
  5. On the Permission tab, search for Conversation > Transcription > View, and add (select the box):
    Note: The Conversation permission is available only in the CX3 license.
  6. Once finished, the Assigned Permissions view should look like this:

  7. Once the role is created, click the three dots at the right end of the Permission role, and select Change Membership. Add the appropriate agents to the role.

Create a Queue in Genesys

  1. Sign in to Genesys Pure Cloud.
  2. Go to Admin > Contact Center > Queues, or enter “queues” in the search bar under the Admin section and press the Enter key.
  3. Click Create Queue. An empty page to create a new queue appears on the right side of the page.

  4. Enter/select the following details in the Create Queue page:
    1. Name: Enter a unique name for the new queue.
    2. Division: Select a division in which you want to place this queue. 
    3. Copy settings and members from (Optional): Select an existing queue name, if you want to copy the settings and members from it.
    4. Peer Id (Optional) : Enter a unique ID that can be used to identify the queue from an external platform.

  5. Click Save.

Enabling the Audio Monitoring toggle

To stream audio to third-party services, follow the below steps:

  1. Sign in to Genesys Pure Cloud.
  2. Go to Admin > Contact Center > Queues, or enter “queues” in the search bar under the Admin section and press the Enter key.
  3. Click the intended queue name.
  4. Click the Voice tab.
  5. Enable the Audio Monitoring toggle.

Audio Monitoring: Voice settings on a Queue now have an additional Audio Monitoring option, separate from Voice Transcription. This allows granularity in what you turn on. The Audio Monitoring will be enabled in the queue, if Audiohook Monitor is enabled by the organization.

Create/Update Architect Inbound Message Flow in Genesys for the Agent Queue

This step is essential for managing incoming messages to the Genesys platform. When a chat is initiated from the web chat messenger, it first gets directed to this inbound message flow.

Steps to create a Chat Architect Flow

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Architect > Architect.

  3. Click the three dots next to Flows: Inbound Call, and select Inbound Message.

  4. Click the +Add button to create an Inbound Message Flow.

  5. Click Create Flow. The final architect flow looks like the following screenshot:

  6. Click Publish.

Create Messenger Configuration

Before using web messaging, you must configure it in Genesys Cloud. To configure Web or Mobile Messaging in your organization, follow these steps:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Message > Messenger Configurations.

  3. Click New Configuration.

  4. Enter a name and description.

  5. Click the Appearance tab and complete the following information:
    1. Under Select your Supported Languages, click the Select language(s) list and choose the languages that you want to support in the Messenger interface.
      Note: The same language should be configured in the Kore Agent AI bot.
    2. Under Select Default Language, click the Select language list and choose the default language.

    3. Adjust the other settings according to your preferences.
  6. Click the Apps tab and complete the following steps:
    1. Under Clear Conversation, turn on the toggle button. This is required for the Agent AI Conversation Summary feature to work.

    2. Adjust the other settings according to your preferences.
  7. Click Save New Version to create a new version.

Create Messenger Deployment

To deploy the Messenger snippet to your website, follow these steps:

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Message > Messenger Deployments.

  3. Click New Deployment.

  4. Enter a name and description.

  5. Under Select your Configuration, click Select Configuration to select a version of a Messenger configuration created in the previous step to assign to this deployment.
    1. In the Assignment pane, navigate to the Messenger configuration you want to assign to the configuration, and click the name of the Messenger configuration.
    2. Select the version that you want to assign.
    3. Click Save.
  6. Under Restrict domain access, determine whether to allow all domains or restrict the domains on which you want to deploy the snippet.  
    1. To allow all domains, select the Allow all domains option. Use this option for testing and development purposes.
    2. To restrict domains, enter a domain and click Add Domain. You can add multiple domains to the list. Restrict domains to prevent unauthorized usage of your snippet from unknown domains. If you restrict a domain, Messenger does not run on that website and rejects API requests from that domain.
  7. Under Select your Architect Flow, select the inbound message flow created in the previous steps.
  8. Click Save. The Messenger Deployments page now displays the snippet and the deployment key.
  9. Copy the Messenger snippet and deploy the Messenger snippet to your website.
    • If you are building a custom Messenger, copy the deployment key.
      Note: Once the above mentioned website page loads, the messenger window appears.

(Optional) Install Audiohook for Voice Streaming

The final step is to install Audiohook for voice streaming, if using Kore-managed Transcriptions.

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Integrations > Integrations.
  3. Enter “audiohook” in the search bar.

    Audiohook integration requires specific configuration values to support Agent AI configuration.
  4. Install a new audiohook app by clicking the Integrations button on the top-right corner.
  5. Open the Audiohook, and go to the Configuration tab.

    1. Channel value should be both.
    2. The Connection URI format should be similar to
      wss://{Kore Voice Gateway(KVG)}/audiosocket/genesys/?sipuri=xxx&token=xxx&botId=xxx&accountId=xxx&agentassist=true, but add “multiBot=true” parameter to it.

      Note 1
      : Configure sip of any of the bot inserted in the Data Table.Note 2: Kore Voice Gateway(KVG) host name to be referred from corresponding environment being used at Saas or on-prem
  6. Get sipuri=sip:<sip-string> from Agent AI > Voice channel.
  7. Use the following reference from Agent AI Channel configuration page to fetch Bot ID, Account ID, Client ID, and Client Secret (for token generation).

    1. Follow the steps of Using XO Platform APIs – Kore.ai Documentation to generate the token (token= <token>.)
  8. Add credentials in the Credentials tab. Use the ClientID and ClientSecret of the bot you have used while configuring the Audiohook. These credentials are used to validate the audiostream signature by Kore.

  9. Click Save.

Create/Update an Architect Inbound Call Flow in Genesys for the Agent Queue

When a call comes to a Genesys number, it passes through an architect flow. If you do not have an ACD architect flow for the queue, create one by following this section.

Steps to Create a Call Architect Flow

  1. Sign in to Genesys Cloud.
  2. Go to Admin > Architect > Architect.
  3. Click the +Add button to create an Inbound Call Flow.

  4. Click Create Flow. The final architect flow looks like the following screenshot:

Notes:

  • Inside the Transfer to ACD node, select the queue name where you want to transfer the call.
  • The Transcription node is optional, if you have already enabled Voice Transcription and Audio Monitoring in the queue level voice configuration.
  • Architect flow is required as a mandatory step, as it directs the incoming call to the Genesys agent desktop.

Access Custom Data and Secure Custom Data in Agent AI Bot

Custom Data and Secure Custom Data can be accessed in Welcome Events in Agent AI configuration page and in Dialog Tasks in Agent AI automation page.

Custom Data can be accessed as

{{context.session.UserContext.customData.<key>}}.

Secure Custom Data can be accessed as

 {{context.session.UserContext.secureCustomData.<key>}}.

Welcome Events:

Dialog Tasks:

In the Dialog Task, open a Message node and click Manage Responses.

Post Installation Setup

Steps to start a Chat Request

  1. Sign in to Genesys Developer Applications.
    Note: To start chat simulation, you must have access to the Genesys Developer portal (an account with Genesys).

  2. Select Web Messenger, and then click Start Chat to initiate the chat request.
  3. Enter a message on the Message Us window, and click the Send icon.

  4. Turn on the On Queue toggle on the top-right corner of the page.

  5. A new chat notification appears on the Genesys Agent Desktop. Accept the conversation by clicking the Answer button on the left panel.

  6. Select the Interaction Widget icon to view the Agent AI widget.

Steps to start a Voice Request

  1. In Call Routing, assign the Architect flow created in the Create an Architect Flow step to a Genesys Phone Number.
  2. Initiate a call using this Genesys Phone Number.
  3. A new call notification appears on the Genesys Agent Desktop. Accept the conversation by clicking the Answer button on the left panel.

  4. Select the Interaction Widget icon to view the Agent AI widget.

Set default contextual panel to Kore Agent AI Interaction Widget

To streamline call handling and improve efficiency, the Agent AI widget can now be embedded as the primary contextual panel interaction widget.

To enable this:

  1. Sign in to Genesys Cloud.
  2. Click Admin.
  3. Click Panel Manager under the Contact Center section. This opens the Default Contextual Panel.
  4. Select the interaction widget name in both Voice and Web Messaging field dropdown lists (Refer to step-4 of Create an Interaction Widget in Genesys for Agent AI).
  5. Click Save.

Also, for backward compatibility of the feature, add an additional query param(defaultwidget=true) to the Kore Interaction Widget URL.

Example: https://agentassist.kore.ai//koreaiaa-genesys/?conversationid={{gcConversationId}}&lang={{gcLangTag}}&environment={{gcHostOrigin}}&genesysid=<genesys-oauth-Id>&defaultwidget=true

Note: Reload the Genesys Agent Desktop before testing this latest change.