Skip to main content
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: Display voice transcripts and suggest next best actions from a configured AI Agent on the Kore Agent AI widget when agents place customer calls. When agents place customer calls, based on the customer’s phone number the CTI rule matches the corresponding Salesforce object (such as Account/Contact/Case) and displays it to the agents. The voice stream is shared with Voice Gateway, which in turn generates transcripts of the voice stream and displays them 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 initiate outbound 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 Kore AI Agent 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.
  • Ensure that Voice Interaction Streams are enabled via NICE.

Shared Responsibilities

Definitions

Region Specific URLs

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

The studio script uses this app.
  1. Sign in to your NICE account with the username and password provided by NICE customer support.
  2. Click the applications launcher button. A menu opens from the left side of the page. app-launcher-button
  3. Click OTHERS > Automation & AI. automation-ai
  4. Click Agent Assist Hub > Add Agent Assist App. add-agentassist-app
  5. Enter the name of the Agent Assist App in the AGENT ASSIST APP NAME field.
  6. Select Custom Agent Assist Endpoints.
  7. Click Next. create-new-agent-assistant
  8. Add the following settings with config parameters provided by the Kore.ai representative:
    1. Agent UI Option: Available by default
    2. App URL: {Agent AI URL}/integrations/nice/iframe/?params={scriptparams}
    3. App Title: Kore Agent AI (change as needed)
    4. Participants: Both config-parameters
    5. Audio Relay Endpoint: {Voice Gateway(VG)}/audiosocket/nice?sipuri=<Bot SIP URI>&token=<Token>&botId=<Bot ID>&accountId=<Account ID>&agentassist=true
      1. Bot SIP URI: Flows & Channels > Channels > Voice Gateway > SIP Numbers > Configure SIP Trunk > Agent AI section of the Agent AI configuration portal. configure-sip-trunk
      2. Bot ID and Account ID: Flows & Channels > Channels > Digital > Web/Mobile Client > JWT App Details section of the Agent AI configuration portal. web-mobile-client
      3. Token: Create a JSON Web Token on jwt.io with the following details.
        1. Payload: {"appId": "<Bot Client ID>"}
        2. Header: {"alg": "HS256","typ": "JWT"}
        3. Secret: Your Kore.ai Client Secret.
  9. Click Create.

Kore Agent AI package setup and configuration

Set up AgentAssist feature

  1. Click the app launcher. app-launcher
  2. Type “kore” in the search box and select Kore AgentAssist Feature Configuration from the displayed list. kore-aa-feature-configuration
  3. Click New from the top-right corner of the page. kore-aa-feature-configuration-new
  4. Type Test Configuration in the Configuration Name field. test-configuration
  5. Select NICE inContact in the CTI Provider list. cti-provider-list
  6. Select Active, and click Save. active-save

Set up AgentAssist Configuration

  1. Click the app launcher.
  2. Type “config” in the search box and select Kore AgentAssist Configuration from the displayed list. kore-aa-configuration
  3. Click New from the right-top corner of the page.
  4. Enter the required details. You can fetch the AgentAssist URL, Bot ID, Client ID, and Client Secret details from the Agent AI configuration portal. web-mobile-client
    • Select a language in the Language dropdown list. The selected language corresponds to the language configured in the AI Agent. kore-aa-config-page
  5. Select Active, and click Save.
    If the language parameter is missing from the layout page after saving the configuration, either uninstall and reinstall the package or manually add the parameter by following these steps:
    1. Go to the Salesforce Setup page > Object Manager.
    2. Search for and select the Kore AgentAssist Configuration object.
    3. On the left panel, click Page Layouts.
    4. Open KoreAgentAssistConfig Layout, and drag the Language parameter on to the layout screen. aa-config-layout

Configure NICE CTI Data in Salesforce

  1. Click the app launcher in Salesforce, and then go to Salesforce Agent Settings.
  2. Sign in to your NICE CX account.
  3. Ensure the Store Salesforce Agent Script Variables setting is enabled in the Data Storage section.
  4. In the dropdown list, select a Salesforce object against which the Agent AI widget needs to be configured in its page layout. salesforce-object

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. account-object-layout

Configure a Visualforce Page to embed Kore Agent AI Widget (If Applicable)

Step-1: Create a Lightning Out App

Create a Lightning Out app, a special type of standalone Aura app:
  1. Open the Developer Console from your Salesforce org.
  2. Navigate to File > New > Lightning Application.
  3. Fill in the Name and Description fields, and then click Submit.
  4. Paste the following code into the editor, and save the Lightning Application:

Step-2: Create/Edit Visualforce Page

  1. Either create a new Visualforce Page or open an existing one.
  2. To create a new Visualforce Page, navigate to the Setup page > Visualforce Pages, and click New.
  3. In the Visualforce Markup code editor, add at the beginning of your Visualforce page. This component loads the JavaScript file that Lightning Components for Visualforce uses. Paste the following code into the Visualforce Markup code editor at the desired location where you want the Agent AI widget to appear:
    <script>
    </script>
    Replace “LightningApplication” with the name of the Lightning Out app you created in Step-1. Modify the height and width of the niceCTIAgentAssistVoice component according to your preference - these are the height and width of the Agent AI widget.
  4. Click Save.
Sample Visualforce Page:
Set this Visualforce page as the screen pop in the Softphone layouts of your Salesforce org, or create a Visualforce tab by following the instructions in this document.

Configure an Aura Component to embed Kore Agent AI widget (If Applicable)

  1. Either create a new Aura Component or open an existing one.
  2. To create a new Aura Component, open Developer Console from your Salesforce org.
  3. In the Developer Console, navigate to File > New > LightningComponent.
  4. Fill in the Name and Description fields, and then click Submit.
  5. Paste the following code into the editor at the desired location where you want the Agent AI widget to appear, and save the Lightning Application:
Modify the height and width of the niceCTIAgentAssistVoice component according to your preference-these are the height and width of the Agent AI widget.
Sample Aura Component:
Create a Lightning tab by following the instructions in this document.

Enabling OAuth

  1. Go to Setup > OAuth and OpenID Connect Settings and enable Allow OAuth Username-Password Flows. enable-allow-oauth-password
  2. Create a connected Salesforce app and get the Access Key and Access Token. Follow this guide for help.

NICE CTI Studio Script for Salesforce for Outbound Calls

Import and configure the NICE Studio Script for Salesforce Integration for Outbound Calls. Download Script For Voice: xml script or json script script-for-voice Open the Studio, import the above script, and customize as per the following table definition: AgentAssist Hub Reference: Click the checkbox on the specific instance. Only one can be active. agent-assist-hub-reference After selecting the AgentAssist app, click the Close button on the bottom-right corner of the page.
Don’t click the “X” button to close the window as this won’t save the changes.
Save the Studio Script and make sure there are no errors on Save.

NICE Account setup for Outbound Call

On the NICE Incontact home page, click the application launcher button and select ACD. Create a Campaign create-campaign Create a Skill create-a-skill For Custom Script, select the NICE Studio Script created in the previous step. Create a Disposition create-disposition

Important Notes

  • If the Agent AI widget is embedded within the Salesforce popup page configured in Softphone Layout, you must turn off Agent AI Initiated Transcription for transcription to work correctly. This is because the widget loads before the customer accepts the call, and the audio stream is sent to Kore only after the call is accepted. speech-recognition However, if the Agent AI widget is embedded in a separate page that opens after the customer accepts the call, transcription works even if Agent AI Initiated Transcription is turned off as the widget is rendered after the customer accepts the call.
  • Custom Data configured in the NICE Studio Script is passed to the Agent AI widget only if the widget is embedded in a separate page that opens after the customer accepts the call. This is because the NICE Studio Script is triggered only once the call is accepted. Therefore, Custom Data won’t work if the Agent AI widget is embedded within the Salesforce popup page configured in the Softphone layout.

Test an Outbound Call

  1. Sign in to the Kore Agent AI account and prepare an AI Agent to handle agents’ queries.
  2. Validate the AI Agent credentials are correctly mapped in the above settings.
  3. Validate the AgentAssist URL is correctly mapped in the above settings.
  4. Sign in to the NICE-Incontact account, and check if the outbound skill is created properly.
  5. Sign in to your Salesforce org.
  6. From the app launcher, select Service Console.
  7. Sign in with NICE CX credentials for the agent. install-softphone-extension
  8. Install the softphone: https://help.nice-incontact.com/content/agent/cxoneagent/addcxawebrtcext.htm install-softphone
  9. Refresh the screen, and click the phone icon on the status bar.
  10. Select Integrated Softphone, and click Connect. integrated-softphone-connect
  11. Change the status to Available. status-available available-status
  12. Click New, and select Call. new-call call-dialer
  13. The NICE Studio Script configured for outbound calls is the default selection. If needed, you can manually select a different script from the dropdown menu.
  14. Enter the phone number you wish to call, then click the Call button to initiate the call. call-button
  15. The Salesforce popup page configured in the Softphone layout opens automatically—for example, a Contact page. contact-page
  16. Once the customer accepts the call, transcription begins automatically and displays under the Transcripts tab in the Agent AI widget. transcripts-tab
  17. When the End button is clicked, Summary is generated and displayed on the Agent AI widget. summary
  18. Upon clicking the Submit button on the Agent AI widget, Summary is stored in the Kore Agent AI Conversation Summaries. kore-agentai-conv-summaries

FAQ

Q: Why are the transcripts not working in Agent AI widget? A: If the Agent AI widget is embedded within the Salesforce popup page configured in Softphone Layout, Agent AI Initiated Transcription must be disabled for transcription to work correctly. disable-agent-ai-transcription Q: Why is the custom data passing not working? A: The Agent AI widget receives Custom Data from the NICE Studio Script only if the widget is embedded in a separate page that opens after the customer accepts the call. Custom Data doesn’t work if the Agent AI widget is embedded within the Salesforce popup page configured in the Softphone layout.