Limit Access to Knowledge

You can limit the knowledge that Bot Builder botsClosed A software application that handles customer interactions in place of a live human agent. can access in CXone Expert and pass on to the contactClosed The person interacting with an agent, IVR, or bot in your contact center.. This gives you greater control over who can access CXone Expert knowledge when talking with a bot via Autopilot Knowledge.

To do this, you can pair authorized user accounts with roles and permissions in Expert. The contact's authorization token is passed to CXone Expert, which provides only the knowledge that the contact has access to based on their permissions. The bot only uses knowledge that the contact has permission to access to generate responses or to suggest articles for the contact.

You can use this feature with:

When a token is not provided, the default user type is admin.

The steps to setting up permission-based access to knowledge is different depending on where Autopilot Knowledge is set up. See the steps on this page for your setup:

Set Up Knowledge Access from a Third-Party Platform

  1. Follow the instructions An icon of a square with an arrow  pointing from the center out to the upper right corner. in the CXone Expert online help to use the Server API token. This allows you to generate the user-specific authentication token to pass to digitalClosed Any channel, contact, or skill associated with Digital Experience. chat. A code example An icon of a square with an arrow  pointing from the center out to the upper right corner. is available.
  2. In CXone, create a new digital custom field for cases. This field will pass the authentication token into the CXoneplatform.
  3. Use the digital chat JavaScript API command in your chat script to pass the token with every new interaction.

    cxone('chat', 'setCaseCustomField', 'webauthtoken', document.getElementById('mt-user-authtoken').innerText);/*]|>*/ </script>
  4. Add a new parameter called webAuthToken to your Autopilot Knowledge integration script. Use the dynamic value from the case custom field in the new parameter.  In the example, the custom field is called webauthtoken.

    async function main() {
      let fetch = fetchKnowledge(
        Bot.slots['last customer message'].value || 'THIS IS A TESTING MESSAGE',
           { 
    		'webAuthToken': Bot.slots['contact.custom_fields.webauthtoken'].value,
    		'maxWords': Variables ['Generated Reply - Word Count'].value,
    		[truncated]
    

Set Up Knowledge Access from CXone Expert

When you set up knowledge access in CXone Expert, you don't need to generate a Server API token. It's automatically generated and available via deki script in Expert. The Server API token allows you to generate the user-specific authentication tokens that are passed to digital chat.

  1. In CXone, create a new digital custom field for cases. This field will pass the authentication token into the CXone platform.
  2. Extract the generated token directly from any CXone Expert page via Deki Script:

    <span id="mt-user-authtoken" class='mt-hide'>user.authtoken</span>

  3. Use the digital chat JavaScript API command in your chat script to pass the token with every new interaction. Use document.getElementById(‘mt-user-authtoken') to extract the token from the Expert page and store the value in the webauthtoken custom field dynamically.

    cxone('init', '2436'); 
    cxone('chat', 'init', 2436, 'chat_26983c3-08e9-49d2-b935-2070e8657c8b');
    cxone('chat', 'setCaseCustomField', 'webauthtoken', document.getElementById('mt-user-authtoken').innerText);/*]|>*/ </script>
  4. Add a new parameter called webAuthToken to your Autopilot Knowledge integration script. Use the dynamic value from the case custom field in the new parameter.  In the example, the custom field is called webauthtoken.

    async function main() {
      let fetch = fetchKnowledge(
        Bot.slots['last customer message'].value || 'THIS IS A TESTING MESSAGE',
           { 
    		'webAuthToken': Bot.slots['contact.custom_fields.webauthtoken'].value,
    		'maxWords': Variables ['Generated Reply - Word Count'].value,
    		[truncated]