Introduction

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 > Account.
  3. Select the Integrations and Apps tab.
  4. The Installed Integrations page, where all the installed applications are displayed. Note: If there are no installed applications, it will navigate to the Available Integrations and Apps page.
  5. Click + ADD on the Installed Integrations page. The Available Integrations and Apps page displays all the available applications along with the newly created application with the version.
  6. Search for ConnectWise using the search option available.
    Note: Alternatively, you can use the All Categories option to search.
  7. Click ADD on the ConnectWise tile. The Inbound tab is displayed.

Configure the Integration

Based on your requirements, you can configure Inbound, Outbound or both.

Configure the Inbound (From ConnectWise to OpsRamp)

BMC Remedy Inbound and Outbound configuration

To configure the inbound, follow these steps:

  • Authentication: OAUTH2. Select the option and click on Generate Key to generate the Key and Secret.
    Note: Keep a copy of the token as the information will not appear again. Read information about the Access Key.
  • Map Attributes: Map OpsRamp entity attributes with ConnectWise attributes.
    1. Click +Add from the Map Attributes section.
    2. From the Add Map Attributes window, enter the below informations:
      • OpsRamp Entity: Select the Opsramp entity from dropdown.
      • OpsRamp Property: Select the Opsramp property from dropdown. It will change based on entity selection.
      • ConnectWise Entity: Enter the ConnectWise entity.
      • ConnectWise Property: Enter the ConnectWise property.
    3. Click +Property Value in the Property Values section, and enter ConnectWise Property Value and OpsRamp Property Value and click Save.
      Note:
      • The Property values section appears based on the OpsRamp Property selected.
      • To add property values, click +Property Value.
      • To map more attributes, click +Entity.
  • Properties:
    1. Click +Properties from the Properties section.
    2. Enter the values for the Properties and Value fields and click Save.
      Note: To add properties, click +Properties
    3. Click Add Map Attributes.
    4. Click Next. The Outbound tab is displayed.

Configure the Outbound (From OpsRamp to ConnectWise)

BMC Remedy Inbound and Outbound configuration

To configure the outbound, follow these steps:

  • Configuration: The notification details to trigger integration events are displayed.
    1. Base URI: https://{subdomain}.com/arsys/services/ARService?server=onconnectWise-s&webService=OpsRamp_CreateIncident
    2. Notification Type: Select the Notification Type. Available options are REST API and SOAP API.
    3. Authentication Type: Based on the Notification Type selected, the Authentication Type differs. Available options are Basic, OAuth2, JWT, None.
  • Map Attributes: From the Map Attributes window, enter the below informations:
    1. OpsRamp Entity: Select the Opsramp entity from dropdown.
    2. OpsRamp Property: Select the Opsramp property from dropdown. It will change based on entity selection.
    3. ConnectWise Entity: Enter the ConnectWise entity.
    4. ConnectWise Property: Enter the ConnectWise property.
    5. Click +Property Value in the Property Values section, and enter ConnectWise Property Value and OpsRamp Property Value and click Save.
      Note:
      • The Property values section appears based on the OpsRamp Property selected.
      • To add property values, click on +Property Value.
      • To map more attributes, click on +Entity.
    • Click Add Map Attributes .
  • Events: Events are for sending notifications when an action is performed on OpsRamp entities.
    1. Click Add in the Events section.
    2. Enter a name for the event.
    3. Select the Entity, Entity Type, and Entity Type Event from the drop-down lists.
    4. (Optional) Under Advanced Settings, enter the values for Property, Operator, and Value and click Save.
    5. From Actions:
      • Select Use Parent Configuration checkbox to assign the notification details configured
      • Enter end point URL.
      • Select the web method.
    6. Headers:
      • Click +Add and enter/select the header name and value.
      • Click Save to save the header name.
      • (Optional) Click +Add to add more _headers
      • Enter the Payload.
    7. Response:
      • Click +Add and enter/select the response name and value.
      • Click Save to save the response name.
      • (Optional) Click +Add to add more _response
        Note: The event is created, only if you provide the response properties.
    8. (Optional) Attachment: In the Attachment section, provide inputs in the Process Type, Attachment Endpoint URL, and Web Method fields.
    9. Attachment Headers: In the Attachment Headers section, provide inputs in the Name and Value fields and click on Save.
      1. Enter the payload in the Attachment Payload box.
      2. Enter the Key and Value in the Attachment Response section.

    10. Click Add Event. The event is added.
      There are some actions you can perform on the Events.
      See here for more details.

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

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

    external ticket id = $result.id

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

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

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


  • Failures: In the case of failure in integration, an Email is sent to the user about the failure in integration.
    To configure failure notification:
    1. Click add from the Failures section.
    2. Select notification type as Email.
    3. Enter the email address(es) in the To and CC fields
    4. Click Add Failure Notifications. The details are added.
    5. Click Finish. The integration is installed.

Actions on Integration

You can perform actions on an integration.

  • See here for more information.

Actions on Event

Follow these steps to perform actions on the events:

  1. Click on the integration name.
  2. Navigate to Outbound tab > Events section.
  3. Hover over the event name.
  4. Click the actions (three dots) menu. A popup appears with options.
    • Copy Id: To copy an event Id.
    • Edit: To edit the event details.
    • Save as: To save an event name.
    • Validate: Validate if the event is successful.
      • Select Json or Form.
        • Json: Enter the payload and click on Validate.
        • Form: Enter the property and value in the fields and click on Validate.
          A green tick appears if the event is successful
    • Remove: To remove an event.

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