(function executeRule(current, previous) { /*null when async*/
 //Map the SN priority with OpsRamp priority
 var snowPriority = current.priority;
 var opsRampPriority = snowPriority;
 if(snowPriority == '1') {//Critical in SN
  opsRampPriority = 'Urgent';//Critical in OpsRamp
 } else if(snowPriority == '2') {//High in SN
  opsRampPriority = 'High';//High in OpsRamp
 } else if(snowPriority == '3') {//Medium in SN
  opsRampPriority = 'Normal';//Normal in OpsRamp
 } else if(snowPriority == '4') {//Low in SN
  opsRampPriority = 'Low';//Low in OpsRamp
 } else if(snowPriority == '5') {//Low in SN
  opsRampPriority = 'Very Low';//Low in OpsRamp
 }
 //gs.addErrorMessage('OpsRamp Priority: ' + opsRampPriority);
 //gs.addErrorMessage('SNOW Priority: ' + snowPriority);
 //Map the SN status with OpsRamp status
 var snowState = current.state;
 var opsRampStatus = snowState;
 if(snowState == '1') {//New in SN
  opsRampStatus = 'New';//New in OpsRamp
 } else if(snowState == '2') {//In Progress in SN
  opsRampStatus = 'Open';//Open in OpsRamp
 } else if(snowState == '3') {//On Hold in SN
  opsRampStatus = 'On Hold';//On Hold in OpsRamp
 } else if(snowState == '6') {//Resolved in SN
  opsRampStatus = 'Resolved';//Closed in OpsRamp
 }else if(snowState == '7') {//Closed in SN
  opsRampStatus = 'Closed';//Closed in OpsRamp
 }
 //gs.addErrorMessage('OpsRamp Status: ' + opsRampStatus);
 //gs.addErrorMessage('SNOW State: ' + snowState);
 //Update incident properties
 //gs.addErrorMessage('OpsRamp incident ID: ' + current.u_opsramp_incident_id);
 //gs.addErrorMessage('OpsRamp client ID: ' + current.company.u_opsramp_client_id);
 //gs.addErrorMessage('SNOW incident number: ' + current.number);
 //If it is Partner level integration, SNOW company is mapped to OpsRamp client
 //OpsRamp client id should be in available in SNOW company - Create custom field in Company
 //and add the mapped OpsRamp client id here
 //var opsRampClientId = current.company.u_opsramp_client_id;
 //If it is client level integration, hard code the OpsRamp client id here
 var opsRampClientId = 'client_392';
 if(!JSUtil.nil(current.u_opsramp_incident_id)) {//Update incident
  var uRestMsg = new sn_ws.RESTMessageV2('See & Try OpsRamp Incident REST', 'Update Incident');
  uRestMsg.setStringParameter('tenantId',opsRampClientId);
  uRestMsg.setStringParameter('incidentId',current.u_opsramp_incident_id);
  uRestMsg.setStringParameter('priorityToken',opsRampPriority);
  uRestMsg.setStringParameter('statusToken',opsRampStatus);
  //If work notes added?
  //gs.addErrorMessage("Work notes changed? : " + current.work_notes.changes());
  if(current.work_notes.getJournalEntry(1) && current.work_notes.changes()){
   var content = current.work_notes.getJournalEntry(1);
   content = content.replace(/(?:rn|r|n)/g, 'n');
   content = content.replace(/(?:t)/g, 't');
   //gs.addErrorMessage("Work notes: " + content);
   uRestMsg.setStringParameter('responseToken',content);
  }
  //Execute script
  var uRestMsgResponse = uRestMsg.executeAsync();
  //var opsRampUpdateIncJSON = new JSON().decode(uRestMsgResponse.getBody());
  //gs.addErrorMessage("Status Code: " + uRestMsgResponse.getStatusCode());
  //gs.addErrorMessage("Error Msg: " + uRestMsgResponse.getErrorMessage());
 } else if(snowState == '1') { //New incident
  //gs.addErrorMessage('New incident creation...');
  var cRestMsg = new sn_ws.RESTMessageV2('See & Try OpsRamp Incident REST', 'Create Incident');
  cRestMsg.setStringParameter('tenantId',opsRampClientId);
  //Set SN incident short description as OpsRamp subject
  subject = current.short_description;
  subject = subject.replace(/(?:rn|r|n)/g, 'n');
  subject = subject.replace(/(?:t)/g, 't');
  cRestMsg.setStringParameter('subjectToken',subject);
  //Set SN incident description as OpsRamp description
  description = current.description;
  description = description.replace(/(?:rn|r|n)/g, 'n');
  description = description.replace(/(?:t)/g, 't');
  cRestMsg.setStringParameter('descriptionToken',description);
  cRestMsg.setStringParameter('extTicketIdToken',current.sys_id);
  cRestMsg.setStringParameter('priorityToken',opsRampPriority);
  var cRestMsgResponse = cRestMsg.executeAsync();
  //Read OpsRamp incidentId from response and update to SN incident.
  //gs.addErrorMessage('responseBody: ' + cRestMsgResponse.getBody());
  //gs.log('OpsRamp create incident response body: ' + cRestMsgResponse.getBody());
  var opsRampCreateIncJSON = new JSON().decode(cRestMsgResponse.getBody());
  var inc = new GlideRecord('incident');
  inc.get(current.sys_id);
  inc.u_opsramp_incident_id=opsRampCreateIncJSON.id;
  inc.updateWithReferences();
 }
})(current, previous);ServiceNow Business Rule Script
Updated Sep 5, 2022