Cherwell Service Management is a cloud-based IT service management solution that helps IT teams in organizations implement, automate and upgrade service and support processes. This collaboration integration is a one-way integration and supports only outbound requests.

This collaboration integration supports the webhook-based inbound calls with different types of service management requests. For example, you can select one or multiple Entity Types from Incident, Service Request, Problem, and Change.

Install the integration

  1. From All Clients, select a client.
  2. Go to Setup > Integrations > Integrations.
  3. From Available Integrations, select Collaboration > Cherwell.
  4. Click Install.

Configure the integration

Configure the following:

  • Outbound
  • Monitoring of Integration
  • Audit Logs

Outbound (From OpsRamp to Cherwell)

  1. Integration Basic Configuration: Configure notification details to trigger integration events.

    • Notification type: REST API
    • Base URL: http://opsramp.demo.cherwell.com/CherwellAPI/token?auth_mode=Internal
    • Authentication type: OAUTH2
    • Click Save.
    • Note Tenant Id, Key, and Secret. These are used to configure REST API clients in Cherwell.
      Cherwell Outbound Configuration
  2. Map Attributes: Map OpsRamp entity attributes with Cherwell attributes.

    • Select OpsRamp entity as Incident and OpsRamp property as Priority from the drop-down.
    • Click Map against the respective attribute. Create Integration Mapping window is displayed.
    • Enter the values and click Save.
      Mapping Attributes
  3. Integration Events: Events are for sending notifications when an action is performed on OpsRamp entities.

    • Click Add to add an integration event.

    • Provide a name for the integration event.

    • Select Service Desk from the drop-down and select entity type and action.

    • Select Parent Configuration to assign the basic integration details configured in step 1.

    • Provide endpoint URL.

    • Select the web method, enter the header name and value.

    • Enter the payload and click Save.

    • To parse the properties returned in the response for the payload, select the OpsRamp property from the drop-down and enter the value.

    • A custom field that is already configured as a response payload attribute for a given integration is not available for configuration in any other integrations. You need to remove the existing mapping from the integration to make the custom field available to map on response payload of any other integration.

    • Response: Select a response and enter a value. The event is created, only if you provide the response properties.
      Integration response mapping configuration:
      Response mapping configuration is mainly based on the response payload that is received in third party payload; below are a few examples for response mapping configuration -

      1. sample response payload to mapping the id in response mapping:
      {
      "id":"INC0001",
      "type":"incident",
      "tool":"servicedesk"
      }
      

      external ticket id = $id
      We need to append $ to the value

      1. sample response payload to mapping the id in response mapping:
      {
      "result":{
      "id":"INC0001",
      "type":"incident",
      "tool":"servicedesk"
          }
      }
      

      external ticket id = $result.id

      1. Sample response payload to mapping the id in response mapping
      {
             "result":[
                {
                   "ticketDetails":{
                  "id":"INC0001",
                  "type":"incident",
                  "tool":"servicedesk"
            },
               "Description":{
                  "display_value":"testing description",
                  "value":"validating"
               }
            }
         ]
      }
      

      external ticket id = $result[0].ticketDetails.id

      1. sample response payload to mapping the Incident Number in response mapping
          {
            "result": {
            "Incident Number": "INC0001",
            "type": "Incident"
             }
          }
      

      external ticket id = $result[‘Incident Number’]

  4. Verify Integration: Validate if the integration is successful.

    • Select the event from the drop-down and enter the JSON payload.
    • Click Verify to verify the integration.

  5. Integration Failures: In case of failure in integration, a message is sent to the user about the failure.
    Select notification type Email, enter the email address and click Save.

Monitoring of Integration

Assign a template from the Monitoring of Integration tab, if you want to monitor integration failures. See monitoring integration failures for more information.

Audit Logs

View logs from the Audit Logs tab. You can view if the event was successful or not.

Integration Event Payloads

The following are field and example payloads to create incidents.

Create incident

FieldValue
Endpoint URLhttps://{subdomain}.com/CherwellAPI/api/V1/savebusinessobject
Headers
  • Accept: application/json
  • Content-Type: application/json
MethodPOST
AuthenticationOAUTH2

Request

The following is a sample request:

{
 "busObId": "6dd53665c0c24cab86870a21cf6434ae",
 "busObName": "Incident",
 "fields": [{
   "fieldId": "93e8ea93ff67fd95118255419690a50ef2d56f910c",
   "name": "ShortDescription",
   "value": "$incident.subject",
   "dirty": "true"
  },
  {
   "fieldId": "252b836fc72c4149915053ca1131d138",
   "name": "Description",
   "value": "$incident.impact",
   "dirty": "true"
  },
  {
   "fieldId": "83c36313e97b4e6b9028aff3b401b71c",
   "name": "Priority",
   "value": "[@$incident.priority.name@]",
   "dirty": "true"
  },
  {
   "fieldId": "5eb3234ae1344c64a19819eda437f18d",
   "name": "Status",
   "value": "[@$incident.status.name@]",
   "dirty": "true"
  },
  {
   "fieldId": "933bd530833c64efbf66f84114acabb3e90c6d7b8f",
   "name": "CustomerRecID",
   "value": "9337c2322a087296f7322a481d8858300e3f6e1dbb",
   "dirty": "true"
  },
  {
   "fieldId": "936725cd10c735d1dd8c5b4cd4969cb0bd833655f4",
   "name": "Service",
   "value": "Account Management",
   "dirty": true
  },
  {
   "fieldId": "ae05c132527e48bd95d063c445622df7",
   "name": "Impact",
   "value": "Department",
   "dirty": true
  },
  {
   "fieldId": "29d741aae8bf461f8aafa3c9eb4dc822",
   "name": "Urgency",
   "value": "Medium",
   "dirty": true
  },
  {
   "fieldId": "943f9d35d7ec5d7dc0921a41609d8e93b03a62d190",
   "name": "OpsRamp Inc ID",
   "value": "$incident.uniqueId",
   "dirty": true
  },
  {
   "fieldId": "9339fc404e4c93350bf5be446fb13d693b0bb7f219",
   "name": "Owned By",
   "value": "Andrew Simms",
   "dirty": true
  }
 ]
}

Response

The following is a sample response:

{
 "busObPublicId": "102375",
 "busObRecId": "943f5ba5a1cb1fe68918764510ba96442c3a85e5d0",
 "cacheKey": null,
 "fieldValidationErrors": [],
 "notificationTriggers": [],
 "errorCode": null,
 "errorMessage": null,
 "hasError": false
}

Use tag: $busObPublicId to read the Cherwell ticket ID and save it to the external entity ID of the OpsRamp incident.