Kore Agent AI with Salesforce NICE CX-CTI¶
Introduction¶
This document provides an overview of the setup and configuration process of the Kore Agent AI widget with NICE CX Telephony using the Salesforce NICE CX CTI package.
Use Case: Show voice transcripts and provide next best actions from a configured bot, on the Kore Agent AI widget to agents when they receive a phone call from a customer.
When a customer calls a NICE CX phone number, the call is received on the Salesforce NICE CTI interface. Based on the customer’s phone number, CTI rule matches the corresponding Salesforce object (Account/Contact/Case etc) and displays to the agents. The incoming voice stream is shared with Kore Voice Gateway, which in turn generates transcripts of the voice stream and displays on the Agent AI widget embedded into the matched Salesforce object.
Prerequisites¶
- The NICE CX Salesforce package installed in your Salesforce org.
- NICE CX account set up and can receive calls on the Salesforce Service Console softphone.
- NICE CX Studio installed on your device.
- Agent Assist Hub enabled for your NICE CX account.
- Kore AgentAssist for Salesforce installed on your Salesforce account. (Salesforce AppExchange > Search for “Agent AI By Kore.ai, Inc.”)
- Have the AgentAssist bot credentials saved separately. You need the Widget URL, Bot ID, Client ID, Client Secret, Account ID, and SIP URI. Read Configure Voice Channel and Chat Channel for a walkthrough.
Shared Responsibilities¶
Activity | Responsibility | |
CXOne Customer | Kore.ai | |
NICE One Platform | ||
ACD Configuration |
|
|
CXOne Studio Script |
|
|
Signal API Auth (only for chat) |
|
|
Agent Assist Hub |
|
|
Kore Agent AI Bot Configuration |
|
|
Kore Bot Configuration | Bot creation Bot Credentials generation | |
Salesforce Org | ||
Voice/Chat Configuration |
|
|
Installing Kore Agent AI Package |
|
|
Configuring Kore Agent AI Package |
|
|
NICE CX | Configure Salesforce Agent Settings, select Salesforce Object to embed Kore Agent AI widget. |
Definitions¶
Section | Key | Definition | Reference |
Set up NICE AgentAssist Hub to stream voice to Kore Agent AI | Agent AI URL | The domain of the Agent AI. |
|
Kore Agent AI package setup and configuration | AgentAssist Widget URL | 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. |
Kore Agent AI package setup and configuration | BotId | A unique identifier assigned to a bot. | Channels > Chat section of the Agent AI configuration portal. |
Kore Agent AI package setup and configuration | ClientId | An identifier provided to a client application. | Channels > Chat section of the Agent AI configuration portal. |
Kore Agent AI package setup and configuration | ClientSecret | A secret key or password associated with the ClientId. | Channels > Chat section of the Agent AI configuration portal. |
Set up NICE AgentAssist Hub to stream voice to Kore Agent AI | AccountID | A unique identifier assigned to an account. | Channels > Chat section of the Agent AI configuration portal. |
Set up NICE AgentAssist Hub to stream voice to Kore Agent AI | Kore Voice Gateway(KVG) | For Saas in US region, value is savg-webserver.kore.ai
For on-prem, refer to the corresponding host. |
Region-Specific URLs
Region | Agent AI URL | UXO URL | WSS URL | DNS |
US | https://agentassist.kore.ai | https://platform.kore.ai | wss://savg-webserver.kore.ai | @savg-us-prod-sbc-in-nlb-0d9a4c651955ff47.elb.us-east-1.amazonaws.com |
JP | https://agentassist-jp.kore.ai | https://jp-platform.kore.ai | wss://jp-savg-audiosocket.kore.ai | @savg-jp-prod-int-nlb-3989d946fc1ced3b.elb.ap-northeast-1.amazonaws.com |
Set up Salesforce-NICE CTI package¶
Follow this article to install and configure the NICE CTI package on your Salesforce account.
Topics included in the above article:
- Install Salesforce Agent
- Install the Salesforce Agent Package
- Assign Users to Your License
- Enable Salesforce Agent in Lightning Experience
- Configure Permission Sets For a Single User
- Configure Permission Sets For Multiple Users
- Configure the NICE CXone Call Center
- Assign Users to the NICE CXone Call Center
- Configure Softphone Layout
- Assign Profiles to the Softphone Layout
- Enable Click2Jack
Set up NICE AgentAssist Hub to stream voice to Kore Agent AI¶
This app will be used in studio script.
- Sign in to your NICE account with the username and password provided by the NICE customer support.
-
Click the applications launcher button. A menu opens from the left side of the page.
-
Enter the name of the Agent Assist App in the AGENT ASSIST APP NAME field.
- Select Custom Agent Assist Endpoints.
-
Add the following settings with config parameters provided by the Kore.ai representative:
- Agent UI Option: Available by default
- App URL: {Agent AI URL}/integrations/nice/iframe/?params={scriptparams}
- App Title: Kore Agent AI (change as needed)
- Participants: Both
- Text Relay Endpoint: (only for chat) {Agent AI URL}/integrations/nice/relay/toKore
-
Audio Relay Endpoint: {Kore Voice Gateway(KVG)}/audiosocket/nice?sipuri=<Bot SIP URI>&token=<Token>&botId=<Bot ID>&accountId=<Account ID>&agentassist=true
-
Click Create
Kore Agent AI package setup and configuration¶
- Install Kore Agent AI on your Salesforce account.
Set up AgentAssist feature¶
-
Type “kore” in the search box and select Kore AgentAssist Feature Configuration from the displayed list.
Set up AgentAssist Configuration¶
- Click the app launcher.
-
Type “config” in the search box and select Kore AgentAssist Configuration from the displayed list.
-
Click New from the right-top corner of the page.
-
Enter the required details. Note that you can fetch the AgentAssist URL, Bot ID, Client ID, and Client Secret from the Agent AI configuration portal.
Configure NICE CTI Data in Salesforce¶
- Click the app launcher in Salesforce, and then go to Salesforce Agent Settings.
- Sign in to your NICE CX account.
- Ensure the Store Salesforce Agent Script Variables setting is enabled in the Data Storage section.
- In the dropdown list, select a Salesforce object against which the Agent AI widget needs to be configured in its page layout.
Configure Page layout to embed Kore Agent AI Widget to Salesforce object¶
Assuming the Account Object is mapped above, open the page layout for Account Object.
In the filter field, type “NiceCTI” and drag and drop the object onto the Account Object layout page.
Enabling OAuth¶
-
Go to Setup > OAuth and OpenID Connect Settings and enable Allow OAuth Username-Password Flows.
-
Create a connected Salesforce app and get the Access Key and Access Token. Follow this guide for help.
Additional Setup Steps for Chat¶
In addition to all the previous steps, two more steps are required for the Chat setup:
NICE API credentials to be configured for Signaling API (Only for Chat)¶
Refer to Manage Access Keys to create access keys to use for signaling APIs.
The Access Key Manager page allows you to view all the access keys in your system.
Configure NICE API Credentials (Only for Chat)¶
- Click the app launcher.
-
Type “nice” in the search box, and select Nice Signal Credentials from the displayed list.
-
Add the required parameters:
- Credentials Set Name: NICE CX credentials (change as needed)
- Proxy Tunnel Endpoint: {Agent AI URL}/integrations/nice/relay/toNice
- NICE CX Credentials:
- Nice Token Base URL: NICE Token Base URL is the Host URL of the login page.
- Nice API URL: If the URL for ACD is https://home-abc.nice-incontact.com, then the API URL would be https://api-abc.nice-incontact.com . Also, it is necessary to use the URL without the trailing slash.
- NiceCX Signal API Access Key (generated in above step)
- NiceCX Signal API Access Key Secret (generated in the above step)
- Click Save.
NICE CTI Studio Script for Salesforce¶
For Voice¶
Import and configure the NICE Studio Script for Salesforce Integration.
Download Script For Voice: kore.ai_nicecti_sf_voice.XML
Open the Studio, import the above script, and customize as per the following table definition:
Node | Activity | Fields Updated |
Set Credentials | Update the credentials to connect to Salesforce Org | Salesforce_key (created in step “Enabling OAuth”)
Salesforce_username Salesforce_password Note: The password is your Salesforce password appended with your Security Token. Refer to this guide for help. |
User Auth | Configure Salesforce org credentials and generate oauth Token | salesforceBaseURI
Note: You can get it by running the following curl: curl –location –request POST ‘https://login.salesforce.com/services/oauth2/token?grant_type=password&client_id=<Salesforce Client ID>&client_secret=<Salesforce Client_Secret>&username=<Salesforce_Username>&password=<Salesforce Password + Salesforce Security Token>’ |
ReqAgent | Update Skill for Agent Routing | Skill and other attributes as needed |
AgentAssist | Map the AgentAssist Hub Instance | Select the AgentAssist Hub app created in the above step. |
AgentAssist Hub Reference:
Click the checkbox on the specific instance. Only one can be active.
After selecting the AgentAssist app, click the Close button on the bottom-right corner of the page.
Note
Do not click the “X” button to close the window as this will not save the changes.
Save the Studio Script and make sure there are no errors on Save.
For Chat¶
Import and configure the NICE Studio Script for Salesforce Integration.
Download Script For Chat: kore.ai_nicecti_sf_chat.XML
Open the Studio, import the above script, and customize as per the following table definition:
Node | Activity | Fields Updated |
Salesforce Auth | Update the credentials to connect to Salesforce Org |
|
ReqAgent | Update Skill for Agent Routing | Skill and other attributes as needed |
AgentAssist | Map the AgentAssist Hub Instance | Select the AgentAssist Hub App created in the above step. |
NICE Account setup for Incoming Phone Call/Chat¶
On the NICE Incontact home page, click the application launcher button and select ACD.
Create a new single Point of Contact (For Voice)
- Media Type - Phone Call
- Name - <Provide a name for the contact>
- Point of Contact - Select a provisioned NICE phone number.
- Skill - Select a predefined skill, else create one and select here.
- Script - From the dropdown list, select the studio script created for Salesforce-NICE CTI above.
- IVR Reporting Enabled - Select the checkbox.
- Click Create Point of Contact button to save it.
Create a new single Point of Contact (For Chat)
- Media Type - Chat
- Name - <Provide a name for the contact>
- Skill - Select a predefined skill, else create one and select here.
- Script - From the dropdown list, select the studio script created for Salesforce-NICE CTI above.
- IVR Reporting Enabled - Select the checkbox.
- Click Create Point of Contact button to save it.
Make a Test Call / Chat¶
- Sign in to the Kore Agent AI account and prepare a bot to handle agents’ queries.
- Validate the bot credentials are correctly mapped in the above settings.
- Validate the AgentAssist URL is correctly mapped in the above settings.
- Sign in to the NICE-Incontact account, and check if the point of contact is properly configured.
- Sign in to your Salesforce org.
- From the app launcher, select Service Console.
-
Install the softphone: https://help.nice-incontact.com/content/agent/cxoneagent/addcxawebrtcext.htm
-
Refresh the screen, and click the phone icon on the status bar.
For Call:
- Make a call to the Point of Contact phone number.
-
When the End button is clicked, Summary is generated and displayed on the Agent AI widget.
-
Upon clicking the Submit button on the Agent AI widget, Summary is stored in the Kore Agent AI Conversation Summaries.
For Chat:
-
In the Salesforce App Launcher, search for Nice Chats Handler and select it.
-
Make a chat request by opening the Point of Contact link in the browser.
-
The Agent AI widget opens for the ongoing chat conversation.
-
When the End button is clicked, Summary is generated and displayed on the Agent AI widget.
-
Upon clicking the Submit button in the Agent AI widget, Summary is stored in the Kore Agent AI Conversation Summaries.
-
When Disposition is selected and clicked Save, Chat transcript is stored in Salesforce.