ConnectWise Automate (Formerly LabTech) is a cloud-based and on-premise IT automation solution that helps companies track and manage IT assets from a single location.

ConnectWise with OpsRamp is a one-way integration.

OpsRamp supports the following ITSM entities:

  • Incident
  • Change Request
  • Problem
  • Service Request
  • Task
  • Time Bound

Install the integration

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

Configure outbound to ConnectWise

  1. Integration Basic Configuration: Configure notification details to trigger integration events.
    • Notification Type: REST API
    • BASE URI: https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets
    • Authentication Type: BASIC
    • Take note of the Tenant Id and Token. This would be used during creation of integration events in OpsRamp .
  2. Map Attributes: Map OpsRamp entity attributes with ConnectWise attributes.
    1. Select the attribute, click Map and Create Integration Mapping window is displayed.
    2. Enter the values and click Save.
  3. Integration Events: An action performed on an entity is defined as an event. When an event is triggered, notifications are sent to the respective users.
    1. Click Add.

    2. Enter a name for the integration event.

    3. Select Service Desk, select entity, and select action.

    4. Select Parent Configuration to assign basic integration configuration details to the event.

    5. Enter end point URL, select the web method and enter the header name and value.

    6. Enter the payload for the respective action and click Save.

      • To add more tokens to the payload, click the token in the Place Holder list.
      • A custom field that is already configured as 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.
      • To parse the properties returned in response for the configured API payload, select the property from the drop-down and enter the value. 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’]

Verify Integration

To validate if the integration is successful, do the following:

  1. Select the event from the drop-down and select payload type.
  2. Enter the payload and click Verify. A 200-OK success response is generated if the integration is successful.

Integration Failures

In case of failure in integration, a message is sent to the configured email address. Select notification type Email, provide email address and click Save.

Integration Event Payloads

The following are parameters and payload to create a ticket.

Create incident

FieldsValues
URLhttps://{subdomain}.com/v4_6_release/apis/3.0/service/tickets
Headers
  • Accept: application/json
  • Content-Type: application/json
MethodPOST
Authentication TypeBASIC

Request

The following is a sample request.

{
 "summary" : "$utils.truncate($incident.subject,100)",
 "initialDescription" : "$incident.impact",
 "company" : {
  "identifier" : "Company identifier"
 },
 "status" : {
  "name" : "[@$incident.status.name@]"
 },
 "priority" : {
  "id" : "[@$incident.priority.name@]"
 }
}

Response

The following is a sample response.

{
 "id" : 26597,
 "summary" : "Test",
 "recordType" : "ServiceTicket",
 "board" : {
  "id" : 1,
  "name" : "Professional Services",
  "_info" : {
   "board_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/boards/1"
  }
 },
 "status" : {
  "id" : 16,
  "name" : "New",
  "_info" : {
   "status_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/boards/1/statuses/16"
  }
 },
 "project" : null,
 "phase" : null,
 "wbsCode" : null,
 "company" : {
  "id" : 2,
  "identifier" : "Company Identifier",
  "name" : "Company name",
  "_info" : {
   "company_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/company/companies/2"
  }
 },
 "site" : null,
 "siteName" : "Company site",
 "addressLine1" : "25 James Way",
 "addressLine2 " : null,
 "city" : "Eatontown",
 "stateIdentifier" : "NJ",
 "zip" : "07724",
 "country" : null,
 "contact" : {
  "id" : 185,
  "name" : "Randy Wolford",
  "_info" : {
   "contact_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/company/contacts/185"
  }
 },
 "contactName" : "Randy Wolford",
 "contactPhoneNumber" : "7328479602",
 "contactPhoneExtension" : null,
 "contactEmailAddress" : "rwolford@mycompany-us.com",
 "type" : null,
 "subType" : null,
 "item" : null,
 "team" : {
  "id" : 25,
  "name" : "Professional Services Team",
  "_info" : {
   "team_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/boards/1/teams/25"
  }
 },
 "owner" : null,
 "priority" : {
  "id" : 4,
  "name" : "Priority 3 - Medium",
  "sort" : 6,
  "_info" : {
   "priority_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/priorities/4",
   "image_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/priorities/4/image?lm=2009-03-31T22:00:08Z"
  }
 },
 "serviceLocation" : {
  "id" : 2,
  "name" : "In-house",
  "_info" : {
   "location_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/locations/2"
  }
 },
 "source" : {
  "id" : 2,
  "name" : "Phone",
  "_info" : {
   "source_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/sources/2"
  }
 },
 "requiredDate" : null,
 "budgetHours" : null,
 "opportunity" : null,
 "agreement" : null,
 "severity" : "Medium",
 "impact" : "Medium",
 "externalXRef" : null,
 "poNumber" : null,
 "knowledgeBaseCategoryId" : null,
 "knowledgeBaseSubCategoryId" : null,
 "allowAllClientsPortalView" : false,
 "customerUpdatedFlag" : false,
 "automaticEmailContactFlag" : false,
 "automaticEmailResourceFlag" : false,
 "automaticEmailCcFlag" : false,
 "automaticEmailCc" : null,
 "contactEmailLookup" : null,
 "processNotifications" : null,
 "skipCallback" : null,
 "closedDate" : null,
 "closedBy" : null,
 "closedFlag" : false,
 "dateEntered" : "2016-12-13T12:26:18Z",
 "enteredBy" : "opsramp",
 "actualHours" : null,
 "approved" : true,
 "subBillingMethod" : "ActualRates",
 "subBillingAmount" : null,
 "subDateAccepted" : null,
 "dateResolved" : null,
 "dateResplan" : null,
 "dateResponded" : null,
 "resolveMinutes" : 0,
 "resPlanMinutes" : 0,
 "respondMinutes" : 0,
 "isInSla" : true,
 "knowledgeBaseLinkId" : null,
 "resources" : null,
 "parentTicketId" : null,
 "hasChildTicket" : false,
 "knowledgeBaseLinkType" : null,
 "billTime" : "Billable",
 "billExpenses" : "Billable",
 "billProducts" : "Billable",
 "predecessorType" : null,
 "predecessorId" : null,
 "predecessorClosedFlag" : null,
 "lagDays" : null,
 "lagNonworkingDaysFlag" : null,
 "estimatedStartDate" : null,
 "duration" : null,
 "locationId" : 2,
 "businessUnitId" : 10,
 "mobileGuid" : "f0715216-1977-424b-a983-6ede4f7e252f",
 "sla" : {
  "id" : 1,
  "name" : "Standard SLA",
  "_info" : null
 },
 "_info" : {
  "lastUpdated" : "2016-12-13T12:26:19Z",
  "updatedBy" : "opsramp",
  "activities_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/activities",
  "timeentries_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/timeentries",
  "scheduleentries_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/scheduleentries",
  "documents_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/documents",
  "products_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/products",
  "configurations_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/configurations",
  "tasks_href" : "https://{subdomain}.com/v4_6_release/apis/3.0/service/tickets/26597/tasks",
  "notes_href" : "https://{subdomain}.com/v4v4_6_release/apis/3.0/service/tickets/26597/notes"
 },
 "customFields" : null
}