Integration Connectwise & ServiceNow

Marcelo Pedrey1
Tera Contributor

We have a client that uses Connectwise, and we use ServiceNow.  They do not want to move to SNOW, so we are finding a solution that can handle all Incidents, Requests, and Problem tickets to perform bi-directional updates.

i.e., an Incident is opened on SNOW assigned to a specific user/group. This ticket creates another ticket in Connectwise with all relevant information, including the SNOW Incident/Request/Problem number. The same will happen from Connectwise to SNOW.

 

Has anyone explored this scenario? If so, is there a resource I can review? I have checked on the web and can't seem to find any relevant information.

 

Thank you in advance,

Best

3 REPLIES 3

Vishal Jaswal
Giga Sage

Hello @Marcelo Pedrey1 

 

Instead of using SNOW, requesting you to refer ServiceNow as SN or NOW or ServiceNow.

 

Based upon your scenario, there are similar use cases that many have done and are still doing like Salesforce - ServiceNow, Remedy - ServiceNow, Webhelpdesk - ServiceNow etc.

 

Here are some best practices:

 

1. In ServiceNow, setup Oauth using connectwise details and then an outbound rest message with HTTP methods as GET(to retrieve), POST(to create) and PUT(to update).

 

You can create a Business Rule or a Flow on ServiceNow incident table based upon the conditions as which all Incidents at your ServiceNow should leverage this outbound rest message to create or to update Incident at Connectiwise.

 


All you need to know are the field/column names (backend name) of Connectwise Incident form/table.

 

2. You can ask the connectwise team to do the same at their end to directly create incident at your ServiceNow (more development for client) or you can ask them to populate your ServiceNow staging table with their incident details (raw) and then you can use import set within ServiceNow to transform their incident details data to create incident at your end (less development for client).


Hope that helps!

SyedMahemoH
Tera Expert

 

Hi  ,

Here are some basic steps you can follow based on your requirements.
Creating a record in  Third party Instance : Rest Message && Scripted Rest API.
I think you know the process of Rest message, once you have created it , create a business to send some fileds based up on your requirement.
Create a Business Rule:
Business Rule: POST :: Before ⇒ Insert
Here you can change the script based on your req...
(function executeRule(current, previous /*null when async*/) {
current.u_source="PDI2";
try {
var r = new sn_ws.RESTMessageV2('PDI-01', 'posttosrinadhGr');
var requestBody = {
"number":current.number.toString(),
"state":current.state.toString(),
"requested_for":current.requested_for.toString(),
"comments":current.comments.toString(),
"u_source":current.u_source.toString()
};
r.setRequestBody(JSON.stringify(requestBody));
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
current.correlation_id=JSON.parse(responseBody).result.number;
gs.addInfoMessage(httpStatus);
}
catch(ex) {
var message = ex.message;
}
})(current, previous);

-------->>>>>>>Instance Two<<<<<<<--------------------
Scripted Rest API : For Inserting New Incident:
(function process(/*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
// implement resource here
var requestBody = request.body.data;
var gr = new GlideRecord('incident');
gr.initialize();
gr.correlation_id=requestBody.number;
gr.state=requestBody.state;
gr.caller_id=requestBody.requested_for;
gr.comments=requestBody.comments;
gr.u_source=requestBody.u_source;
gr.insert();
var responseBody = {};
responseBody.status="successfully inserted a  record :
"+gr.number;
responseBody.number=gr.number;
response.setBody(responseBody);
})(request, response);
Once's its done check with you team wheather it's working or not at both side. 
If my response helped you, please accept the solution and mark it as helpful.
Thank You!

 

GregRudakov
Tera Contributor

We had this come up so many times we decided to build a product called Support Fusion for simple IT (ServiceNow) to MSP (ConnectWise) ticket exchange.