ServiceNow Integration
Do you want to automate the creation of tickets in ServiceNow by pushing data from Enboarder? You can do that using our Webhook module. ✨
Note: We have mostly based our Integration around the creation of Incident and Service Request tickets in ServiceNow using ServiceNow’s RestAPI.
Before you begin: Like anything worth doing, integrations take time. Please allow up to 4 weeks for this integration to be completed, this includes time for scoping, development and testing. You’ll also need to have a system expert and/or system administrator to assist in the completion of this integration.
Configuration using Standard Authentication
These are the steps to configure a Webhook in Enboarder using the Webhook module:
Step 1: Click the '+' button and scroll down then click 'Webhook'
Step 2: Name the Webhook module!
Step 3: Enter URL: fill in your ServiceNow rest API URL
Service Requests: https://{instance}.service-now.com/api/now/table/sc_request or https://{instance}.service-now.com/api/now/table/sc-task
replace instance in the above example with your ServiceNow URL. E.g. dev53506 or whatever your instance name is.
Note: If the ServiceNow instance is behind a firewall our public IP has to be allowlisted first.
Contact Customer Support for the public IP Address.
Step 4: Select Method as Post (data to URL).
Step 5: Add two Headers with the respective key as
Header Key | Header Value |
Content-Type | application/json |
Authorization | Authorization header with a string “Basic” appended with base64 encoded username: password. I.e. if ServiceNow user name is SN_USER and ServiceNow password is SN_PASSWD then base64 encode the string SN_USER:SN_PASSWD and then in Header value enter it with “Basic” prepended to it. |
Example:
Notes:
When Basic Authentication is needed, the target system api requires data in the Authorization header with the string “Basic” appended with base64 encoding.
As an example, when sending username:password with base 64 encoding, if the target system username is SN_USER and the password is SN_PASSWD then you will need to first base64 encode the string SN_USER:SN_PASSWD and then in header value enter it with “Basic” prepended to it.
To encode it please use the below commands
In a Linux based system, please use the below command from the command line:
******************** Base 64 encode *************************
$ echo "SN_USER:SN_PASSWD" | base64
// output will be
$ U05fVVNFUjpTTl9QQVNTV0QK
***********************Ends**********************************
// to decode it use below command
******************** Base 64 decode *************************
$ echo "U05fVVNFUjpTTl9QQVNTV0QK" | base64 --decode
// output will be
$ SN_USER:SN_PASSWD
***********************Ends**********************************
In a Windows based system, please use the below command from the command line:
******************** Base 64 encode *************************
First save the text in 'file'.
To encode a file, type the following command and replace "path\to\file" with the actual path to your file:
c:/> certutil -encode "path\to\file" encodedfile.txt
Press Enter to execute the command. The encoded file will be saved as "encodedfile.txt" in the same directory as the original file
Note- the value is in the second line of the file.
c:/> type encodedfile.txt
-----BEGIN CERTIFICATE-----
U05fVVNFUjpTTl9QQVNTV0QK
-----END CERTIFICATE-----
***********************Ends**********************************
// to decode it use the below command
******************** Base 64 decode *************************
To decode a file, type the following command and replace "path\to\file" with the actual path to your file:
certutil -decode "path\to\file" decodedfile.txt
Press Enter to execute the command. The decoded file will be saved as decodedfile in the same directory as the original file
***********************Ends**********************************
Configuration using OAuth
Make sure the OAuth plugin is active and the OAuth activation property is set to true.
Create an OAuth application registry using one of the following methods:
Create an endpoint for external clients that want to access your instance. This creates an OAuth client application record and generates a client ID and client secret that the client needs to access the restricted resources on the instance.
Navigate to System OAuth > Application Registry and then click New.
On the interceptor page, click Create an OAuth API endpoint for external clients and then fill in the form. The redirect URL will be
https://auth.enboarder.com/oauth
Setting up Service Now Tile in Enboarder App
Login as an admin user and go to Settings → Apps & Integrations → App center
Click on the the ServiceNow tile
Click on Add Integration
On thenext screen, enter your instance name (Example- dev53116.service-now.com), any additional scopes if required, your client id and secret key which you generated while registering the application in ServiceNow.
Click on Add Integration
The system will redirect you to ServiceNow. Enter your Service Now credentials. Once logged in, a request for information access will be asked. Once this is allowed, your instance will be set up, and the integration is completed.
Sending data from Enboarder to ServiceNow
In the Body, use JSON structure as per the issue type in ServiceNow. Choose either Standard Authentication or ServiceNow (if you have set up the ServiceNow tile in the above steps) as the Authentication type. As mentioned earlier, you will use the ServiceNow rest API URL e.g.https://instance.servicenow.com/api/now/v1/table/incident. or https://{instance}.service-now.com/api/now/table/sc_request or https://{instance}.service-now.com/api/now/table/sc-task
You can use Dynamic tokens to fill in a dynamic value. E.g. for creating a sample incident or request, theJSON will look like:
{
“Enboarder_key”: ”{{externalid}}”,
“Hire_Name” : “{{new_hire}}”,
"short_description":"Laptop provisioning for {{new_hire}}”, “assignment_group":"287ebd7da9fe198100f92cc8d1d2154e", “urgency":"2",
"impact":"2",
“comments":"It has to be a mac pro”
}
ServiceNow Rest API detailed Instructions can be found at:
Got questions? 🧐 Start a chat with the team in the top right of any Enboarder page! ✔