Table Of Contents


1. SynQ Connector Overview

2. Introduction

3. SynQ ServiceNow Connector

4. SynQ Connector - ServiceNow Setup

5. ServiceNow Setup Test

6. Objects/Operation Matrix

7. Installing SynQ Connector and Its Configuration

8. Important Guidelines

9. Use Case Scenario-Insert Operation From ServiceNow To Salesforce

10. Advanced Data Filter

11.Firewall Configurations


1. SynQ Connector Overview


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




2. Introduction


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.





3. SynQ ServiceNow Connector


  • 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


4. SynQ Connector - ServiceNow Setup

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:


  • Salesforce Credentials

  • ServiceNow Credentials

  • Informatica Cloud Account


SynQ Connector does not support ServiceNow Express Edition currently.


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. 


  • ITIL

  • Rest_Service

  • Soap

  • Soap_create

  • Soap_delete

  • Soap_query

  • Soap_query_update

  • Soap_script

  • Soap_update


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

  • Rest_Service

  • Soap

  • Soap_create

  • Soap_delete

  • Soap_query

  • Soap_query_update

  • Soap_script

  • Soap_update



* * 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


https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/integrate/inbound-soap/reference/r_SOAPRoles.html







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.


https://docs.servicenow.com/bundle/istanbul-servicenow-platform/page/administer/contextual-security/task/t_CreateAnACLRule.html


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.




5. ServiceNow Setup Test



To verify our setup is working or not open any REST/SOAP client (we recommend SOAP UI - https://www.soapui.org/) 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). 


Verifying Connection 


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 

URL        :https://<instance>.service-now.com/api/now/table/sys_user

Authentication: Basic


If users is having appropriate roles than the response of will be similar to below image.





Invalid Credentials







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

Authentication:Basic





As a conclusion, verify users credentials and ServiceNow ACL in case you are not getting expected results.

 

Test the following APIs fo


META INFO


https://<instance>.service-now.com/api/now/table/sys_db_view.do"

https://<instance>.service-now.com/api/now/table/sys_db_object.do

https://<instance>.service-now.com/api/now/table/<table_name>.do?SCHEMA


READ API


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.


http://wiki.servicenow.com/index.php?title=REST_API_Explorer#gsc.tab=0









6. Objects/Operation Matrix


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.



#

Objects

Fetch

INSERT

UPDATE

UPSERT

DELETE

Data Preview

Lookup

1

Incident



Y

Y

Y

Y

Y

Y

Y

2

Cases

 Contract

Y

4

 Account

5

 Assets

6

 Contact

7

Log_Entry

Y

Y

Y

Y

Y

Y

Y

8

Catalog_Task

Y

Y

Y

Y

Y

Y

Y

9

Ticket

Y

Y

Y

Y

Y

Y

Y

10

Knowledge

Y

Y

Y

Y

Y

Y

Y

11

Event

Y

Y

Y

Y

Y

Y

12

Variables

Y

Y

Y

Y

Y

Y

Y

13

Work Order

Y

Y

Y

Y

Y

Y

Y


7. Installing SynQ Connector and Its Configuration:

 


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:



Note :


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)

"rest_service" role

"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:

http://wiki.servicenow.com/index.php?title=JSON_Web_Service#Activating_the_Plugin


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

  • Click Activate.


8. Important Guidelines

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;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.



9. Use Case Scenario-Insert Operation From ServiceNow To Salesforce

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.


10. Advanced Data Filters


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






Operator



Symbol



How to use Advanced Filter

Greater than



>



field > value



Greater than equals



>=



field >= value



Equals



=



field = value



Less than



<



field < value



Less than equals



<=



field <= value



Not equal



!=



field != value



Starts with



STARTSWITH



field STARTSWITH value



Ends with



ENDSWITH



field ENDSWITH value



Contains



CONTAINS



field CONTAINS value



Is empty



ISEMPTY



field ISEMPTY null



Is not empty



ISNOTEMPTY



field ISNOTEMPTY null



IN



IN



field IN value1,value2



Date



SYSDATE



field > SYSDATE-1



AND



AND



field operator value AND field operator value



OR



OR



field operator value OR field operator value

Between


BETWEEN field operator value BETWEEN field operator value




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



Important Note--



While applying filters for the data movement from ServiceNow to SFDC/JIRA/Others, you must always check the XML values of the certain incident by clicking on the left top bar of the incident table “Show XML” and use the u_sysid for the reference fields like location, caller_id, assigned_to, opened_by etc. instead of their values.





11. Firewall Configuration


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:


         209.34.91.0-255

         206.80.52.0-255

         206.80.61.0-255

         209.34.80.0-255