ConnectWise

Integration version: 15.0

Configure ConnectWise Integration to work with Google Security Operations SOAR

Set up public and private keys in ConnectWise Manage

To create an integration between ConnectWise Manage, and Google Security Operations SOAR integration with ConnectWise Manage, you need to provide API keys. API keys are public and private keys that are generated by ConnectWise Manage for the integration account.

To create API keys in ConnectWise Manage:

  1. In ConnectWise Manage, click System >Members and either select an existing member or create a new one. Make sure that the member you selected has all the rights necessary to set up the integration.
  2. On the Member Maintenance screen, click the API Keys tab, and then click New Item.
  3. In the Description field, enter the description for the newly created keys. For example, Google Security Operations SOAR Integration.
  4. Click Save to save the new item.

The two API keys are generated and displayed in the Public Key and Private Key fields. The private key is displayed only at the time it is created.

Configure ConnectWise integration in Google Security Operations SOAR

For detailed instructions on how to configure an integration in Google Security Operations SOAR, see Configure integrations.

Integration parameters

Use the following parameters to configure the integration:

Parameter Display Name Type Default Value Is Mandatory Description
Api Root String https://{CompanyURL}/v4_6_Release/apis/3.0/ Yes Address for the ConnectWise instance.
Company Name String N/A Yes
Public Key String N/A Yes
Private Key String N/A Yes
Client ID String N/A Yes Client ID of ConnectWise application.

Actions

Add Comment to Ticket

Description

Add a new comment to a ticket in ConnectWise.

Parameters

Parameter Name Type Default Value Description
Ticket ID String N/A Yes

ConnectWise ticket ID.

Example: 608718

Comment String N/A Yes Comment content to attach to a ticket.
Internal Checkbox Unchecked Yes If checked, puts comment in the internal section.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
ticket_id N/A N/A
JSON Result
N/A

Close Ticket

Description

Close a ConnectWise ticket.

Parameters

Parameter Name Type Default Value Is Mandatory Description
Ticket ID String N/A Yes

ConnectWise ticket ID.

Example: 608718.

Custom Close Status String N/A No If the specific system uses a custom closed status, for example Completed.

Run On

This action runs on all entities.

Action Results

Script Results
Script Result Name Value Options Example
ticket_id True/False ticket_id:False
JSON Result
N/A
Entity Enrichment

N/A

Insights

N/A

Create Alerts Ticket

Description

Create a ConnectWise ticket for each new Google Security Operations SOAR alert.

Parameters

Parameter Name Type Default Value Is Mandatory Description
Company String N/A Yes Company name.
Board String N/A Yes Board name.
Status String N/A Yes Example: Unassigned
Priority String N/A Yes Example: Priority 3 - Normal Response
Initial Description String N/A Yes N/A
Owner Name String N/A No

ConnectWise member name to assign this ticket to.

Example: connectwise_user_1.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
ticket_id N/A N/A
JSON Result
N/A

Create Ticket

Description

Create a ConnectWise ticket.

Parameters

Parameter Name Type Default Value Is Mandatory Description
Company String N/A Yes Company name.
Board String N/A Yes Board name
Summary String N/A Yes N/A
Status String N/A Yes e.g. Unassigned.
Priority String N/A Yes Example: Priority 3 - Normal Response
Owner Name String N/A No ConnectWise member name to assign this ticket to. Example: connectwise_user_1

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
ticket_id True/False ticket_id:False
JSON Result
N/A

Delete Ticket

Description

Delete a ConnectWise ticket by the ID.

Parameters

Parameter Name Type Default Value Is Mandatory Description
Ticket ID String N/A Yes

The ID of the ticket to be deleted.

Example: 607167

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
N/A

Get Ticket

Description

Get a ConnectWise ticket by ID and attach the ticket JSON as a file.

Parameters

Parameter Name Type Default Value Is Mandatory Description
Ticket ID String N/A Yes Fetch a ticket by ID.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
ticket_json N/A N/A
JSON Result
{
  "773256":
   {
     "customerUpdatedFlag": false,
     "estimatedTimeCost": 0.0,
     "recordType": "ServiceTicket",
     "siteName": "Main",
     "billTime": "NoDefault",
     "site":
       {
         "_info":
           {
             "site_href": "",
             "mobileGuid": "c5e7be2e-af3b-461f-a637-1b3e7e24bdc6"
           },
         "id": 23188, "name": "Main"
        },
     "currency":
       {
         "symbol": "$",
         "isoCode": "USD",
         "_info": {
                   "currency_href": ""
                   },
         "name": "US Dollars", "id": 7
        },
     "estimatedProductCost": 0.0,
     "estimatedExpenseRevenue": 0.0,
     "contactName": "user name",
     "addressLine1": "110 Fifth Avenue ",
     "billingMethod": "ActualRates",
     "id": 773256,
     "impact": "Medium",
     "city": "New York",
     "billProducts": "NoDefault",
     "businessUnitId": 20,
     "zip": "10011",
     "estimatedExpenseCost": 0.0,
     "mobileGuid": "f7b5a0eb-6038-4e14-a661-05c393917841",
     "closedFlag": false,
     "enteredBy": "Siemplify",
     "priority":
        {
          "sort": 6,
          "_info":
             {
               "image_href": "",
               "priority_href": ""
             },
          "id": 4,
          "name": "Priority 3 - Normal Response"
         },
     "source":
         {
           "_info":
             {
                "source_href": ""
              },
           "id": 2,
           "name": "Customer Phone Call"
          },
      "automaticEmailCcFlag": false,
      "board":
         {
           "_info":
             {
                "board_href": ""
             },
          "id": 70,
          "name": "Siemplify - T&M"
          },
     "customFields":
        [{
           "numberOfDecimals": 0,
           "caption": "2nd Shift",
           "type": "Checkbox",
           "id": 20,
           "entryMethod": "EntryField"
         },
         {
            "numberOfDecimals": 0,
            "caption": "3rd Shift",
            "type": "Checkbox",
            "id": 21,
            "entryMethod": "EntryField"
           },
          {
            "numberOfDecimals": 0,
            "caption": "Huddle Rvw",
            "type": "Checkbox",
            "id": 22,
            "entryMethod": "EntryField"
           }],
     "contactEmailAddress": "john_doe@example.com",
     "Status":
          {
            "_info": {"status_href": ""},
            "id": 1351,
            "name": "Unassigned"
           },
     "contactPhoneNumber": "(800) 555‑0175",
     "dateResponded": "2019-01-17T09:21:03Z",
     "isInSla": false,
     "company":
           {
             "_info":
                 {"mobileGuid": "42fcabed-a0f6-4171-bd7a-ca563ba45f7c",
                  "company_href": ""},
             "identifier": "Siemplify",
             "id": 18304,
             "name": "Siemplify"
           },
     "automaticEmailContactFlag": false,
     "hasChildTicket": false,
     "billExpenses": "NoDefault",
     "estimatedTimeRevenue": 0.0,
     "locationId": 119,
     "estimatedProductRevenue": 0.0,
     "automaticEmailResourceFlag": false,
     "dateEntered": "2019-01-17T09:21:03Z",
     "approved": true,
     "severity": "Medium",
     "resolveMinutes": 0,
     "serviceLocation":
           {
              "_info":
                   {"location_href": ""},
              "id": 6,
              "name": "Remote"
            },
     "resPlanMinutes": 0,
     "stateIdentifier": "NY",
     "dateResplan": "2019-01-17T09:21:03Z",
     "subBillingMethod": "ActualRates",
     "Country":
           {
              "_info":
                   {"country_href": ""},
              "id": 1,
              "name": "United States"
            },
     "respondMinutes": 0,
     "allowAllClientsPortalView": false,
     "hasMergedChildTicketFlag": false,
     "summary": "TikcetApiTest",
     "contact":
           {
             "_info":
                  {"contact_href": "",
                   "mobileGuid": "c86377ec-7726-4057-aca2-e992b550140f"
                  },
            "id": 59249,
            "name": "user name"
            },
     "team":
           {
             "_info":
                  {"team_href": ""},
             "id": 78,
             "name": "Siemplify"
           },
     "addressLine2": "5th Floor",
     "_info":
           {
             "configurations_href": "",
             "tasks_href": "",
             "updatedBy": "Siemplify",
             "expenseEntries_href": "",
             "lastUpdated": "2019-01-17T09:21:03Z",
             "products_href": "",
             "activities_href": "",
             "Timeentries_href":"",
             "notes_href": "",
             "documents_href": "",
             "scheduleentries_href": ""
            }
     }
}

Ping

Description

Test Connectivity.

Parameters

N/A

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
N/A

Update Ticket

Description

Update ticket details in ConnectWIse.

Parameters

Parameter Name Type Default Value Is Mandatory Description
Parameter Type Default Value Is Mandatory Description
Ticket ID String N/A Yes

The ID of the ticket to be updated.

Example: 609620

Summary String N/A No Updated summary.
Type Name String N/A No Example: Application
SubType Name String N/A No Example: Adobe
Item Name String N/A No Example: Development
Status String N/A No

New ticket status.

Example: In Progress (plan of action)

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
ticket_id True/False ticket_id:False
JSON Result
N/A

Add Attachment to Ticket

Description

Add an attachment to the ticket in ConnectWise.

Parameters

Parameters Name Type Default Value Is Mandatory Description
Ticket ID String N/A Yes Specify the ID of the ticket to which the document would need to be added.
Base64 Encoded File String N/A Yes Specify the base64 encoded file that needs to be added as an attachment.
Filename String {filename}.{extension} Yes

Specify the filename behind the attachment. This value is also used as a title.

Note: Action needs to provide the correct extension for the file.

Display In Customer Portal Checkbox Checked No If enabled, the attachment is shown in the customer portal.
Allow Only Owner Update Checkbox Checked No If enabled, the action only allows the owner to update the attachment.

Run On

This action runs on all entities.

Action Results

Script Result
Script Result Name Value Options Example
is_success True/False is_success:False
JSON Result
{
    "id": 280,
    "title": "QWEqqqq",
    "fileName": "s.json",
    "serverFileName": "24e7db8d-41b5-4bd0-9db3-a60d46143afe.json",
    "owner": "Admin1",
    "linkFlag": false,
    "imageFlag": false,
    "publicFlag": false,
    "htmlTemplateFlag": false,
    "readOnlyFlag": true,
    "size": 22131,
    "urlFlag": false,
    "guid": "b9fc3fc6-f368-40bb-bc06-233f4d6a299c",
    "_info": {
        "lastUpdated": "2022-05-10T14:02:23Z",
        "updatedBy": "Admin1"
    }
}
Case Wall
Result Type Value / Description Type
Output message*

The action should not fail nor stop a playbook execution:

If the 201 status code is reported (is_success=true): "Successfully added a file as attachment to ticket {ticket_id} in ConnectWise."

The action should fail and stop a playbook execution:

If a critical error is reported: "Error executing action "Add Attachment To Ticket". Reason: {0}''.format(error.Stacktrace)."

If the 400 status code is reported: "Error executing action "Add Attachment To Ticket". Reason: {errors/message}.''

If invalid "Filename" format is provided: "Error executing action "Add Attachment To Ticket". Reason: "Filename" value doesn't follow the needed format. Format: {filename}.{extension}.''

General

Jobs

Synchronize Closed Tickets and Dismissed

Description

Synchronize closed tickets at ConnectWise and dismissed alerts at Google Security Operations SOAR.

Parameters

Parameter Name Type Default Value Description
API Root String N/A N/A
Company Name String N/A N/A
API Public Key String N/A N/A
API Private Key String N/A N/A
Script Name String N/A N/A

Synchronize Comments

Description

Synchronize comments between Google Security Operations SOAR cases and ConnectWise tickets.

Parameters

Parameter Name Type Default Value Description
API Root String https://<Host Name>/v4_6_Release/apis/3.0/ N/A
Company Name String N/A N/A
API Public Key String N/A N/A
API Private Key String N/A N/A
Script Name String N/A N/A