Table Of Contents
The SynQ ServiceNow Connector is a connectivity solution built on the Informatica Cloud platform that allows ServiceNow to be connected to any on-premise or cloud application. The process is intended to share data bi-directionally between ServiceNow and other third party applications or vice-versa. The SynQ Connector provides easy synchronization on Informatica cloud for your ServiceNow data. You can for example synchronize ServiceNow data with any on-premise systems like SAP or cloud based applications like Salesforce CRM, Microsoft Sharepoint, Microsoft Team Foundation Server(TFS). There is no coding required. Use the Wizard-based interface to intuitively guide you through the various steps of the cloud integration process. You will be able to map source and target object fields, filter synchronization data, and easily schedule real-time or batch integration processes in just a moment.
For more info: www.synq.cloud
Informatica Cloud is an on-demand subscription service that provides cloud applications. Below is the architecture of Informatica Cloud.
Connector does not require any separate software installation on the Informatica Cloud Secure Agent machine. The Connector uses an internal Java application to communicate with the Secure Agent. Below is an example of ServiceNow Published Connector on Informatica Cloud page.
ServiceNow is a software-as-a-service (SaaS) provider of enterprise service management software.
- ServiceNow automates enterprise operations, creating a single system of record for all service management processes within an organization. This system brings together the strategy, design, transition and operation on a powerfully simple cloud platform.
- ServiceNow applications are built on a single platform-as-a-service which offers consistent and intuitive user experience through the entire service management lifecycle.
- SynQ Connector would help users in syncing ServiceNow data with any other on-premise systems like SAP or cloud based applications like Salesforce CRM, Microsoft Sharepoint, Microsoft TFS, Altassian JIRA, etc.
It Supports all versions of ServiceNow except Express Edition
The very common ServiceNow integration scenarios are with Incident Management, Problem Management, Change Management, User Administration, CMBD, Service Management etc.
For data integration from ServiceNow to Salesforce or vice-versa you need:
Informatica Cloud Account
SynQ Connector does not support ServiceNow Express Edition currently.
ServiceNow Integration User and the GMT time zone
Make sure that you have setup an integration user for ServiceNow and the user timezone is set as GMT as it is shown in the following image.
Enable Aggregate Web Service
SynQ Connecter uses couple of ServiceNow plugins which need to be enabled first.
To enable Aggregate Web Service plugin, click on Plugin link from System Definition application menu and search for Aggregate Web Service as shown in below image.
Make sure that status of Aggregate Web Service is Active.
SynQ also requires enabling of some system properties. To view all system properties type sys_porperties_list.do in Filter Navigator and press enter key.
Which will display list of all system properties. Search for JSONV2 from Goto filter as shown in below image.
Ensure value is true for glide.basicauth.required.jsonv2.
Integration of SynQ connector and ServiceNow requires some basic User/Group/Role setup. SynQ uses ServiceNow REST, JSON/JSONv2 and SOAP web services for communication with ServiceNow. So a custom Role with below listed Roles will be required for integration.
To follow the best practise, create a group and assign your custom role to the group and add the integration user to this new group. For creating new role and group, please follow below steps.
Create SynQ_User_Role Role
Create a new Role by clicking on Role module resides in User Administration application menu. Refer below screenshot
Once you click Roles link, the Role screen will appear which display existing roles and there attributes. Click on New button to create new Role.
To create a new Role, please enter a valid name in Name field. Please make sure Global is selected in Application field. Entering a description is optional but it is recommended.
Once Role is created, assign existing roles for various purpose to this newly created Role. To do same, click on Contains Role tab and click Edit button. Please note we are not creating any new role here so please do not click on New button.
SynQ connector requires access to some system tables like sys_db_object and sys_db_view. Apart from system tables SynQ also uses REST, JSON/JSON2 and SOAP web services for communication with ServiceNow. To enable all these features please assign below listed roles to this newly created role.
* * ITIL :- It is recommended to have ITIL role in your user-role setup as it is required for incident management related tables, but you can still create user-role setup for SynQ connector.
* * SOAP Role : Can perform all SOAP operations, either you use SOAP role or you can use Soap_create,Soap_delete etc. Please refer below link for more details
Click on Save button to complete the operation. ServiceNow recommends assigning Roles to Group and assign Users to Group. Lets create a new SynQ Group and assign this Role to SynQ user group.
Click on Groups link from User Administration menu.
Click on New to create a new group
Enter Name and Description for new SynQ user Group. Click submit to save to the information.
Once Group is created, click on Edit button from Roles tab to assign some roles to this group.
Select Synq_user_Role from available roles list as displayed in the image below.
Click on Save button to save and close the window. As a final step assign our existing user or create a new user and assign it to SynQ_User_Group. To perform this, click on Group Members tab
You have options for creating new users or you can add existing users to the group. Click Edit button to add the existing users to the group.
Click on Save button.
Setup Without ITIL Role
It is possible to access SynQ services without assigning ITIL role to the user. To perform same please follow below steps.
Update ACL of sys_db_object table
Click on tables link for getting list of all tables and search for sys_db_object. Refer below image.
Click on the label value “table” to view and update sys_db_object table’s attributes. As we are interested only in ACL’s, scroll down to view ACL tab.
Sys_db_object contains metadata of ServiceNow tables. For accessing data from sys_db_object table, please assign SynQ_User_Role to the read operation. You must have security_admin elevated role for updating ACL of any tables. Please enable it before updating ACLs.
To add new ACL, security_admin role is required. Please click on New button to create a new ACL for read operation with Synq_User_Role.
Care should be taken while updating ACL. If you are not sure how to update ACL then please refer below link.
Same operation should be performed for sys_db_view table
Please Note :- it is recommended to have ITIL roles if you want to perform operations on incident management tables.
To verify our setup is working or not open any REST/SOAP client (we recommend SOAP UI - https://www.soapui.org/ or Postman - https://getpostman.com) and test the following any REST/JSON/JSONv2/SOAP endpoints by users credentials having SynQ_User_Role (Or the name which you provided for the Role).
To verify connection status, you can execute below mentioned REST API in any REST Client. Before making call to API, please make sure that user/group/setup is done as per described.
Purpose : Testing Connection with ServiceNow
If users is having appropriate roles than the response of will be similar to below image.
To verify proper ACL’s and user settings, please execute below REST API in your favorite REST Client. To create successful connection with Informatica Cloud, both (correct credentials and correct ACL are required). If you are getting any error while creating connection with Informatica Cloud, please verify your credentials and ACL’s with these API’s.
API URL :https://<instance>.service-now.com/api/now/table/sys_db_object
As a conclusion, verify users credentials and ServiceNow ACL in case you are not getting expected results.
Use the following APIs to test Table and View meta data.
Use the following APIs to test Row Count access for any particular table.
Test the respective SOAP and REST APIs to read from the table/view
Testing with REST CLIENT
Testing of ACL’s and user-role setup can be done easily with REST clients. To test with any REST client you would require valid REST API URL, suitable Method, valid parameters and authentication. Lets try to hit a REST API for getting table data. Use below details for making a REST call.
Authentication : Basic (Requires username /password of user who is having SynQ_User_Role)
Method : Get
URL : valid api url.
Refer below links for REST API URL’s and parameters.
SynQ Connector supports INSERT, UPDATE, UPSERT and DELETE operations on all the standard and custom tables in ServiceNow. It can be either a source or a target in the synchronization.
ServiceNow works only for Single Object in Source Type in Step 2 of Synchronization task When used as a Source Object.
To create a ServiceNow connection on Informatica cloud, follow the steps listed below:
1. Click Configuration > Connections > New
2. On the New Connection page, enter the information listed in the table below.
3. To test the connection, click Test.
4. To save the connection , click Ok.
Below is a sample screenshot of successful connection:
1. Username and Password of that user who is having Integration/Admin Role.
2. A ServiceNow user must have these roles:
"soap" (in order to read and the data to the tables)
"itil" role if you are trying to access any database views or any tables related to incident management module
any other roles based on your requirement
3. Make sure XML WebService - SCHEMA export processor is enabled (in order to read the schema definition)
4. ServiceNow Admin needs to enable the Aggregate Web Service plugin (in order to fetch the total row count while reading)
5. ServiceNow Admin needs to enable the JSON Web Service plugin (in order to write to the tables)
Follow the instructions at this link to enable JSON web service plugin in your ServiceNow instance:
ServiceNow web service plugins can be activated in Servicenow using the following steps
Navigate to System Definition > Plugins
Right-click the plugin name(Aggregate Service) and select Activate/Upgrade
Following are the guidelines to start with SynQ connector sync up with third-party applications.Below is the use case example between Incident table of ServiceNow &amp;amp;amp;amp; Case object of Salesforce:
1) Create a field of String datatype to store CaseID of Case records of Salesforce. Perform the following steps:
Open any incident record. Right click on Incident Table on the top-left corner. Click on Configure from the drop-down and then click Form layout as shown below-
Enter information to create and add a custom field SFDC_CaseID to store value of Salesforce CaseID. Click on Saveby placing the field at the appropriate place in the Selected list.
2) Create a custom field Incident_SysID of String datatype in Salesforce to store sys_id of Incident records of ServiceNow.
3) During Insert operation from ServiceNow to Salesforce , Map sys_id of ServiceNow to Incident_SysID of Salesforce. Make sure, you don't map Salesforce CaseID.
4) During Insert operation from Salesforce to ServiceNow, make sure you don't map ServiceNow sys_id.
5) During Update/Delete operation from ServiceNow to Salesforce, always map u_SFDC_CaseID of ServiceNow toCaseID of Salesforce and from Salesforce to ServiceNow map Incident_SysID of Salesforce to sys_id of ServiceNow.
Below is a Use Case Scenario for Insert operation from ServiceNow to Salesforce. User can similarly use SynQ connector to sync with an object of any other system according to his requirement.
Suppose we have many incident records in ServiceNow and we want to integrate our data from ServiceNow to Salesforce.
For this create the below Synchronization task:
1) Click Applications > Data Synchronization > New.
2) On the New Task page, enter the information listed in the table below:
Enter Task Name and Select task operation as insert and click Next as shown below:
Select ServiceNow connection as Source from the Connections drop-down list and select Incident Table as Source object. Then click Next as shown below:
Select your Salesforce connection as target and select Case as Target as object and click Next as shown below:
In Data Filters step, Specify the filters according to your requirement to filter the source record(This is an optional step). Click Next as shown below:
In field mapping step, do the appropriate field mapping between Incident fields of Servicenow and Case fields of Salesforce as shown below:
As to store ContactId of User Record which exists as a lookup in Incident record, to do this make a lookup expression on Contact ID. Click Add or Edit Lookup icon in front of Contact ID field as shown below:
To Create lookup, you need to fill the fields as shown below:
Click OK > Next
In Schedule Step, you can schedule the task and configure the scheduler to run task immediately or according to the requirement.
Choose Save and Run from the drop-down.
The steps are as follows for Advance Data Filters implementation:
In Data Filter dialog box, click Advanced
The Advanced Data Filter dialog box appears. Enter the Filter Expression and click OK
List of Advance Filters supported by ServiceNow
How to use Advanced Filter
field > value
Greater than equals
field >= value
field = value
field < value
Less than equals
field <= value
field != value
field STARTSWITH value
field ENDSWITH value
field CONTAINS value
field ISEMPTY null
Is not empty
field ISNOTEMPTY null
field IN value1,value2
field > SYSDATE-1
field operator value AND field operator value
field operator value OR field operator value
|Between||BETWEEN||field BETWEEN value1,value2|
Example shown below to apply single/multiple filters:
- opened_at > $LastRunTime
sys_updated_on >= SYSDATE-86 AND caller_idIN 62826bf03710200044e0bfc8bcbe5df1,6816f79cc0a8016401c5a33be04be441
number = INC003451
caller_id IN 46c1293aa9fe1981000dc753e75ebeee,9ee1b13dc6112271007f9d0efdb69cd0
location = a23c49b037d0200044e0bfc8bcbe5dda AND caller_id = 46c1293aa9fe1981000dc753e75ebeee
opened_at > SYSDATE-1
sys_updated_on BETWEEN 2017-03-01,2017-03-31
"Advanced" in Filter Condition at Query Options of ServiceNow Connector cannot take null as value.
Exp. If you set "<table name><Field name>!=null" as such, it leads to RuntimeException and task gets failed.
As it is a limitation, use "Not Parameterized" from Filter Condition at Query Options while creating a Mapping Task or do not put <Table name> before <Field name> in “Advanced” filter condition when you need to deal with null.
If your organization uses a protective firewall, include the Secure Agent IP address ranges on the list of approved IP addresses. This ensures the Secure Agent can perform all necessary tasks through the firewall.
The Secure Agent uses the following IP address ranges: