Skip to content

Unified Experience Genesys Cloud ServiceNow

  • Admin access to ServiceNow
  • Admin access to Genesys Cloud
  • ServiceNow plugins:
    • Customer Service Management required plugins (sn_csm)
    • CSM Configurable Workspace (sn_csm_wrkspc)
    • Openframe (sn_openframe)
    • Advanced Work Assignment (com.glide.awa)
    • Advanced Work Assignment – External Routing Support (com.glide.awa.external)
    • Customer Central (sn_customercentral)
    • Interaction Control Component (sn_int_control)
    • Sn-timer (sn_timer) – Automatically installed
    • IntegrationHub Starter or above (com.glide.hub.integration)
    • ServiceNow Voice (sn_cti_core)
    • Contact Center integration core (sn_ct_ctr_it_core)
    • Unified Experience Core from Genesys (x_inics_gen_core)
    • Unified Experience from Genesys and ServiceNow (x_inics_genesys)
  • Genesys Cloud integration:
    • Unified Experience from Genesys and ServiceNow
  1. Using VSCode or Terminal, type in the following commands:
    • openssl genrsa -des3 -passout pass:<password> -out server.pass.key 2048
    • openssl rsa -passin pass:<password> -in server.pass.key -out server.key -traditional
    • openssl req -new -key server.key -out server.csr
    • Enter the information being asked
    • openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
  1. Home > User Management > Roles and Permissions
  2. Click ‘Add Role’
  3. Configure:
    • Name: ServiceNow User
    • Description
    • Permissions:
      • Integration > cxCloudSN > Add, Edit, View, and Delete
      • Conversation > *
      • Messaging > *
      • Outbound > Contact > Edit, View
      • Outbound > DNC > Add
  4. Save
  1. Home > IT and Integrations > OAuth
  2. Click ‘Add Client’
  3. Configure:
    • App Name: Unified Experience Genesys and ServiceNow - TEST
    • Description
    • Grant Type: Client Credentials
    • Roles:
      • ServiceNow User | All Divisions
  4. Save
  5. Store the client id and client secret
  1. Home > User Management > Groups
  2. Click ‘Add General Group’
  3. Configure:
    • Name: Gen - MAX - Service Desk Analysts
    • Type: Official
    • Group Visibility
  4. Save
  5. Under the Membership tab, click ‘Edit’, then add:
    • Individuals
    • Owners
  6. Save
  7. Navigate to the Roles tab, toggle on ‘Enable Roles’, then click ‘Assign Roles’:
    • ServiceNow User | Select Divisions
  8. Save
  1. All > System Definition > Certificates
  2. Click ‘New’
  3. Configure:
    • Name: genesys-cloud-unified-experience
    • Format: PEM
    • Type: Trust Store Cert
    • PEM Certificate: copy and paste the contents of the certificate created using OpenSSL
    • Active: ✅
  4. [Optional] Configure expiration notification
  5. Submit
  1. All > System OAuth > Application Registry
  2. Click ‘New’
  3. Select ‘Create an OAuth JWT API endpoint for external clients’
  4. Configure:
    • Name: Genesys Cloud Unified Experience - MAX
    • User Field: Sys ID
    • Active: ✅
    • Enable JTI Vertification: ⬜️
    • Auth Scope: useraccount
  5. Submit
  1. Under the Application Registry created in the previous step, select the Jwt Verifier Maps tab
  2. Click ‘New’
  3. Configure:
    • Name: Genesys Cloud Token Verifier
    • Sys certificate: select the X.509 Certificate created above
  4. Submit

This will associate the certificate to the application registry.

  1. All > User Administration > Users
  2. Click ‘New’
  3. Configure:
    • User ID: genesyscloudintegration
    • Email: x@maximuscanada.ca
    • First name: Genesys Cloud
    • Last name: Integration
    • Name: Genesys Cloud Integration
    • Active: ✅
    • Internal Integration User: ✅
  4. Submit
  1. All > User Administration > Groups
  2. Click ‘New’
  3. Configure:
    • Name: Genesys Cloud Users
    • Active: ✅
    • Include members: ✅
  4. Submit
  5. Under the Roles tab, click ‘Edit’
  6. Include the following roles:
    • agent_workspace_user
    • awa_agent
    • awa_external_user
    • awa_integration_user
    • interaction_admin
    • interaction_agent
    • interaction_integration_user
    • sn_customerservice.csm_workspace_user
    • sn_customerservice_agent
    • sn_openframe_api_user
    • sn_openframe_user
  7. Save
  8. Under the Group Members tab, click ‘Edit’
  9. Include the integration user created in the previous step and users who will access this integration
  10. Save

ServiceNow: Configure Connections & Credentials Aliases

Section titled “ServiceNow: Configure Connections & Credentials Aliases”
  1. All > Integration Hub > Connections & Credentials Aliases
  2. Open the “Genesys Cloud” record (created during the x_inics_genesys.Genesys_Cloud plugin installation)
  3. Under Related Links, click ‘Create New Connection & Credential’. Configure:
    • Connection Name: Genesys Cloud Spoke Connection
    • Credential: Genesys Cloud Spoke Credential
    • Credential alias: x_inics_genesys.Genesys_Cloud
    • Connection URL: https://api.cac1.pure.cloud
    • OAuth Client ID: Client ID from Genesys Cloud: Create OAuth step
    • OAuth Client Secret: Client secret from Genesys Cloud: Create OAuth step
    • OAuth Token URL: https://login.cac1/oauth/token
  4. Submit
  1. All > Advanced Work Assignments > Settings > Service Channels
  2. Click ‘New’
  3. Configure:
    • Name: GC Phone
    • Inbox Order: 10
    • Active: ✅
    • Table: Interaction
    • Type: Phone
    • Default work item size: 1
    • Default capacity: 1
    • Work item routing condition / Utilization condition:
      • Type – IS – PHONE
      • State – IS ONE OF:
        • For phone: The state is New or Work in Progress
  1. All > Advanced Work Assignments > Settings > Queues
  2. Click ‘New’
  3. Configure:
    • Name: Genesys Voice Queue
    • Service Channel: GC Phone
    • Order: 10
    • Active: ✅
    • External: ✅
    • Define condition here: ✅
    • Condition mode: Simple
    • Work item routing condition:
      • Add filter condition:
        • Type > is > Phone
    • Provider: blank
    • External ID: get this from the Genesys Cloud queue 09cf9506-5fad-4f02-8ea5-5d9b6f44a5fe
  4. Submit
  1. All > Advanced Work Assignments > Settings > Presence States
  2. Click ‘New’
  3. Configure:
    • Name: On Queue
    • Active: ✅
    • Available to receive work items: ✅
    • Service channels: GC Phone
    • Show channels: ✅
    • Apply to all groups: ✅
  4. Submit
  1. All > OpenFrame > Configurations
  2. Click ‘New’
  3. Configure:
    • Name: Genesys Cloud Unified Experience
    • Title: Genesys Cloud Unified Experience
    • Order: 10
    • Active: ✅
    • Show presence indicator: ✅
    • Enable interaction controls: ✅
    • Provider application: Genesys Cloud
    • Width: 320
    • Height: 375
    • NavBar Icon: phone-outline
    • User Group: Genesys Cloud Users
    • URL: https://apps.cac1.pure.cloud/crm-service-now/index.html
    • Configuration:
      {
      "integrationId": "<leave it empty for now, Genesys Cloud Integration ID goes here>"
      }
  4. Submit
  5. Copy sys id
  1. Home > IT and Integrations > Integrations
  2. Click ‘Add Integration’
  3. Find ‘Unified Experience from Genesys and ServiceNow’, then click ‘Install’
  4. Configure:
    • Integration Name: Unified Experience from Genesys and ServiceNow - TEST
    • Configuration > Properties:
      • ServiceNow Instance Domain: maximuscatest
      • ServiceNow Instance Base URL: https://maximuscatest.service-now.com
      • ServiceNow Openframe Configuration ID: paste the OpenFrame sys id from above
      • Group Filtering: select the group created earlier and/or the desired groups
    • Configuration > Properties:
      • Advanced Configuration:
        {
        "fallbackGenesysStatus": "5e5c5c66-ea97-4e7f-ac41-6424784829f2",
        "defaultServiceNowQueue": "88b18e721bc776105e6fcddf034bcbf8",
        "defaultQueueConfigurations": {
        "voice": "88b18e721bc776105e6fcddf034bcbf8"
        },
        "serviceNowProviderId": "genesys",
        "statusMappings": [
        {
        "name": "On Queue",
        "genesysStatus": "e08eaf1b-ee47-4fa9-a231-1200e284798f",
        "serviceNowStatus": "66731ac71bcfb6105e6fcddf034bcb91"
        },
        {
        "name": "Not Responding",
        "genesysStatus": "e08eaf1b-ee47-4fa9-a231-1200e284798f",
        "defaultNotRespondingStatus": true,
        "serviceNowStatus": "790ab0861b17ba50d91634cf034bcb19"
        }
        ]
        }
        • This is configured by mapping the Genesys Cloud presence and ServiceNow presence states
    • Configuration > Credentials:
      • ServiceNow Private Key: copy and paste the server key generated in the first step
      • ServiceNow Integration User ID: copy and paste the sys id of the integration user
      • ServiceNow Client ID: copy and paste the client id from the application registry
      • ServiceNow Client Secret: copy and paste the client secret from the application registry
      • Confirm
  • Save & Activate
  • Copy the integration ID from the URL
  1. Navigate back to the OpenFrame record
  2. Update the Configuration:
    {
    "integrationId": "cfa0951f-9651-4232-91f8-be1d5ddb6b25"
    }
  3. Update
https://apps.cac1.pure.cloud/platform/api/v2/integrations/servicenow/20240301/login
POST
400 Bad Request
{
"message": "Unable to authenticate against the ServiceNow instance: Grant access token to admin is not allowed",
"code": "bad.request",
"status": 400,
"messageParams": {},
"contextId": "9315cb9b-0a81-4789-88e6-0c4d6f16ffb1",
"details": [],
"errors": []
}

Cause:

  • Integration user configured as admin

Fix:

  • Use non-admin internal integration user
  • Ensure:
    • Internal Integration User: ✅
    • No admin role

Issue: User unable to get interaction in ServiceNow

Section titled “Issue: User unable to get interaction in ServiceNow”

Cause #1:

  • Previous interaction wasn’t wrapped up or closed properly

Fix:

  • Navigate to All > Interaction > Assigned to Me
  • Find the interaction. If State == Work in Progress, double click then select ‘Closed Complete’

Cause #2:

  • User is under ‘Not Responding’ status

Fix:

  • Reset status by selecting ‘Offline’, the back to ‘On Queue’