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 Events
LLM and Generative AI
SearchAssist
Agent Coaching
Playbook
Customizing the AgentAssist Widget
Feedback Settings
Widget Theming (Layout Customization)

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
AgentAssist Voice
AgentAssist Chat
Demos
Voice Demo
Chat Demo
Zendesk
Set up AgentAssist for Zendesk
Genesys
AgentAssist Integration with Genesys - Manual Setup Instructions
Multi-bot Agent AI Integration with Genesys
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

Multi-bot Agent AI Integration with Genesys

Multi-bot 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.

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

Prerequisites

  • Genesys Cloud account with Admin rights
  • Kore.ai Agent AI instance
  • Familiarity with creating a Group in Genesys

Step 1: Create and configure a Data Table on the XO Platform

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

Kore.ai uses Data Tables to store bot credentials, including:

  • BotId: A unique identifier assigned to a bot.
  • ClientId: An identifier provided to a client application.
  • ClientSecret: A secret key or password associated with the ClientId.
  • AgentAssistWidgetURL: URL that points to the AgentAssist widget.
  • AudiohookEnabled: A setting or flag indicating whether audio processing is enabled for the bot.
  • QueueIdentifier: Third-party identifier (company/department) name. It’s a unique identifier to fetch bot details at run time.

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:

Creating a New Data Table

Create a Data Table to store bot credentials on the XO Platform.

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

      1. AudiohookEnabled
      2. AgentAssistWidgetURL
      3. ClientSecret
      4. ClientId
      5. BotId
      6. QueueIdentifier: Enter your company/department name.
    4. Indexes for the table.
    5. Bot Assignments to let virtual assistants access data in this table.
    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 to let a process app access data in this table.
  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 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 AgentAssist Widget URL>

    }

}

 

Step 2: Get Genesys Oauth ID

An OAuth credential with proper permissions is required for the connection between the Kore.ai Agent AI interaction widget and the Kore.ai platform. 

A Genesys OAuth ID is required to complete the URL formation for the Genesys interaction widget.

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 https://agentassist.kore.ai/koreaiaa-genesys/ in the Authorized redirect URIs (one per line) section. Replace “agentassist.kore.ai” with the domain where your AgentAssist is hosted.
  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 Step 3.

Step 3: Create an Interaction Widget in Genesys for AgentAssist

Create a new Interaction Widget. This widget is hosted in the Genesys agent desktop and provides the AgentAssist 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 AgentAssist, 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:

    https://agentassist.kore.ai/koreaiaa-genesys/?conversationid={{gcConversationId}}&lang={{gcLangTag}}&environment={{gcHostOrigin}}&genesysid=<genesys-oauth-Id>&multibot=true&x_metadata=<?x=%7B%22datatable%22%xxxxx>.

    Replace “agentassist.kore.ai” with the domain where your AgentAssist is hosted. The “x_metadata” value equals the url-encoded string of JSON object.

    1. For the oauthId value, use the OAuth ID from Step 2.
    2. For the x_metadata value:
      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 the datatable name>
        
        “token”: <paste token created in the previous step>
        
        “qDelimiter”: <Paste the special character used in the queue name to distinguish the QueueIdentifier from the remaining part of the queue name>
        
        }
        
        }

        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.

Step 4: 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 AgentAssist permission.
  2. Name the Group as KoreAA-Agents or similar to distinguish it.
  3. Add any agent to allow them to use the AgentAssist functionality. You can utilize more than one Group, if required.
  4. Go back to the Integrations section and open the Interaction Widget created in Step 2
  5. On the Configuration tab, add access using the Group you identified or created for AgentAssist 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.

Step 5: (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 AgentAssist 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://savg-webserver.kore.ai/audiosocket/genesys/?sipuri=xxx&token=xxx&botId=xxx&accountId=xxx&agentassist=true, but add “multiBot=true” parameter to it.
  6. Get sipuri=sip:<sip-string> from AgentAssist > Voice channel.

  7. Use the following reference from AgentAssist.kore.ai, Bot 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.

Step 6: Create an Architect Flow in Genesys for the 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 an 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.

Multi-bot Agent AI Integration with Genesys

Multi-bot 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.

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

Prerequisites

  • Genesys Cloud account with Admin rights
  • Kore.ai Agent AI instance
  • Familiarity with creating a Group in Genesys

Step 1: Create and configure a Data Table on the XO Platform

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

Kore.ai uses Data Tables to store bot credentials, including:

  • BotId: A unique identifier assigned to a bot.
  • ClientId: An identifier provided to a client application.
  • ClientSecret: A secret key or password associated with the ClientId.
  • AgentAssistWidgetURL: URL that points to the AgentAssist widget.
  • AudiohookEnabled: A setting or flag indicating whether audio processing is enabled for the bot.
  • QueueIdentifier: Third-party identifier (company/department) name. It’s a unique identifier to fetch bot details at run time.

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:

Creating a New Data Table

Create a Data Table to store bot credentials on the XO Platform.

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

      1. AudiohookEnabled
      2. AgentAssistWidgetURL
      3. ClientSecret
      4. ClientId
      5. BotId
      6. QueueIdentifier: Enter your company/department name.
    4. Indexes for the table.
    5. Bot Assignments to let virtual assistants access data in this table.
    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 to let a process app access data in this table.
  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 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 AgentAssist Widget URL>

    }

}

 

Step 2: Get Genesys Oauth ID

An OAuth credential with proper permissions is required for the connection between the Kore.ai Agent AI interaction widget and the Kore.ai platform. 

A Genesys OAuth ID is required to complete the URL formation for the Genesys interaction widget.

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 https://agentassist.kore.ai/koreaiaa-genesys/ in the Authorized redirect URIs (one per line) section. Replace “agentassist.kore.ai” with the domain where your AgentAssist is hosted.
  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 Step 3.

Step 3: Create an Interaction Widget in Genesys for AgentAssist

Create a new Interaction Widget. This widget is hosted in the Genesys agent desktop and provides the AgentAssist 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 AgentAssist, 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:

    https://agentassist.kore.ai/koreaiaa-genesys/?conversationid={{gcConversationId}}&lang={{gcLangTag}}&environment={{gcHostOrigin}}&genesysid=<genesys-oauth-Id>&multibot=true&x_metadata=<?x=%7B%22datatable%22%xxxxx>.

    Replace “agentassist.kore.ai” with the domain where your AgentAssist is hosted. The “x_metadata” value equals the url-encoded string of JSON object.

    1. For the oauthId value, use the OAuth ID from Step 2.
    2. For the x_metadata value:
      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 the datatable name>
        
        “token”: <paste token created in the previous step>
        
        “qDelimiter”: <Paste the special character used in the queue name to distinguish the QueueIdentifier from the remaining part of the queue name>
        
        }
        
        }

        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.

Step 4: 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 AgentAssist permission.
  2. Name the Group as KoreAA-Agents or similar to distinguish it.
  3. Add any agent to allow them to use the AgentAssist functionality. You can utilize more than one Group, if required.
  4. Go back to the Integrations section and open the Interaction Widget created in Step 2
  5. On the Configuration tab, add access using the Group you identified or created for AgentAssist 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.

Step 5: (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 AgentAssist 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://savg-webserver.kore.ai/audiosocket/genesys/?sipuri=xxx&token=xxx&botId=xxx&accountId=xxx&agentassist=true, but add “multiBot=true” parameter to it.
  6. Get sipuri=sip:<sip-string> from AgentAssist > Voice channel.

  7. Use the following reference from AgentAssist.kore.ai, Bot 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.

Step 6: Create an Architect Flow in Genesys for the 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 an 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.