Unified Experience Genesys Cloud ServiceNow
Prerequisites & Initial Setup
Section titled “Prerequisites & Initial Setup”- 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
Configuration Steps
Section titled “Configuration Steps”Generate certificate
Section titled “Generate certificate”- Using VSCode or Terminal, type in the following commands:
openssl genrsa -des3 -passout pass:<password> -out server.pass.key 2048openssl rsa -passin pass:<password> -in server.pass.key -out server.key -traditionalopenssl 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
Genesys Cloud: Create ServiceNow role
Section titled “Genesys Cloud: Create ServiceNow role”- Home > User Management > Roles and Permissions
- Click ‘Add Role’
- Configure:
- Name:
ServiceNow User - Description
- Permissions:
- Integration > cxCloudSN > Add, Edit, View, and Delete
- Conversation > *
- Messaging > *
- Outbound > Contact > Edit, View
- Outbound > DNC > Add
- Name:
- Save
Genesys Cloud: Create OAuth
Section titled “Genesys Cloud: Create OAuth”- Home > IT and Integrations > OAuth
- Click ‘Add Client’
- Configure:
- App Name:
Unified Experience Genesys and ServiceNow - TEST - Description
- Grant Type:
Client Credentials - Roles:
ServiceNow User|All Divisions
- App Name:
- Save
- Store the client id and client secret
Genesys Cloud: Create a group
Section titled “Genesys Cloud: Create a group”- Home > User Management > Groups
- Click ‘Add General Group’
- Configure:
- Name:
Gen - MAX - Service Desk Analysts - Type:
Official - Group Visibility
- Name:
- Save
- Under the Membership tab, click ‘Edit’, then add:
- Individuals
- Owners
- Save
- Navigate to the Roles tab, toggle on ‘Enable Roles’, then click ‘Assign Roles’:
ServiceNow User| Select Divisions
- Save
ServiceNow: Create x509 Certificate
Section titled “ServiceNow: Create x509 Certificate”- All > System Definition > Certificates
- Click ‘New’
- 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: ✅
- Name:
- [Optional] Configure expiration notification
- Submit
ServiceNow: Create Application Registry
Section titled “ServiceNow: Create Application Registry”- All > System OAuth > Application Registry
- Click ‘New’
- Select ‘Create an OAuth JWT API endpoint for external clients’
- Configure:
- Name:
Genesys Cloud Unified Experience - MAX - User Field:
Sys ID - Active: ✅
- Enable JTI Vertification: ⬜️
- Auth Scope:
useraccount
- Name:
- Submit
ServiceNow: Assign certificate
Section titled “ServiceNow: Assign certificate”- Under the Application Registry created in the previous step, select the Jwt Verifier Maps tab
- Click ‘New’
- Configure:
- Name:
Genesys Cloud Token Verifier - Sys certificate: select the X.509 Certificate created above
- Name:
- Submit
This will associate the certificate to the application registry.
ServiceNow: Create an integration user
Section titled “ServiceNow: Create an integration user”- All > User Administration > Users
- Click ‘New’
- Configure:
- User ID:
genesyscloudintegration - Email:
x@maximuscanada.ca - First name:
Genesys Cloud - Last name:
Integration - Name:
Genesys Cloud Integration - Active: ✅
- Internal Integration User: ✅
- User ID:
- Submit
ServiceNow: Create a group
Section titled “ServiceNow: Create a group”- All > User Administration > Groups
- Click ‘New’
- Configure:
- Name:
Genesys Cloud Users - Active: ✅
- Include members: ✅
- Name:
- Submit
- Under the Roles tab, click ‘Edit’
- 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
- Save
- Under the Group Members tab, click ‘Edit’
- Include the integration user created in the previous step and users who will access this integration
- Save
ServiceNow: Configure Connections & Credentials Aliases
Section titled “ServiceNow: Configure Connections & Credentials Aliases”- All > Integration Hub > Connections & Credentials Aliases
- Open the “Genesys Cloud” record (created during the x_inics_genesys.Genesys_Cloud plugin installation)
- 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
- Connection Name:
- Submit
ServiceNow: Create Phone Service Channel
Section titled “ServiceNow: Create Phone Service Channel”- All > Advanced Work Assignments > Settings > Service Channels
- Click ‘New’
- 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
- Name:
ServiceNow: Create Phone Queue
Section titled “ServiceNow: Create Phone Queue”- All > Advanced Work Assignments > Settings > Queues
- Click ‘New’
- 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
- Add filter condition:
- Provider: blank
- External ID: get this from the Genesys Cloud queue
09cf9506-5fad-4f02-8ea5-5d9b6f44a5fe
- Name:
- Submit
ServiceNow: Create Presence States
Section titled “ServiceNow: Create Presence States”- All > Advanced Work Assignments > Settings > Presence States
- Click ‘New’
- Configure:
- Name:
On Queue - Active: ✅
- Available to receive work items: ✅
- Service channels:
GC Phone - Show channels: ✅
- Apply to all groups: ✅
- Name:
- Submit
ServiceNow: Configure OpenFrame
Section titled “ServiceNow: Configure OpenFrame”- All > OpenFrame > Configurations
- Click ‘New’
- 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>"}
- Name:
- Submit
- Copy sys id
Genesys Cloud: Install Integration
Section titled “Genesys Cloud: Install Integration”- Home > IT and Integrations > Integrations
- Click ‘Add Integration’
- Find ‘Unified Experience from Genesys and ServiceNow’, then click ‘Install’
- 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
- ServiceNow Instance Domain:
- 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
- Advanced Configuration:
- 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
- Integration Name:
- Save & Activate
- Copy the integration ID from the URL
ServiceNow: Update OpenFrame
Section titled “ServiceNow: Update OpenFrame”- Navigate back to the OpenFrame record
- Update the Configuration:
{"integrationId": "cfa0951f-9651-4232-91f8-be1d5ddb6b25"}
- Update
Troubleshooting Notes / Observations
Section titled “Troubleshooting Notes / Observations”Issue: “Login - Bad Request”
Section titled “Issue: “Login - Bad Request””https://apps.cac1.pure.cloud/platform/api/v2/integrations/servicenow/20240301/loginPOST400 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’