ConnectWise Manage
Provides integration with ConnectWise Manage (ConnectWise PSA) using the REST API.
Revision History
0.0.0.1 - Initial release.
0.0.0.2 - Maintenance update.
0.0.0.3 - Fixed error message handling.
0.0.0.5 - Separated methods and templates.
0.0.0.11 - Improved security.
0.0.0.15 - Fixed serialization.
0.0.0.16 - Removed paging Properties from templates because paging is handled by the Node.
0.0.0.17 - Fixed blank responses and response objects being lost.
0.0.0.18 - Updated connection terms and enriched query templates with field and filter examples.
0.0.0.20 - Added typed query CustomParameters for @parameter replacement in Options.
0.0.0.25 - Updated the OpenAPI document to 2026.4 and added batching for supported bulk operations.
Connection
The Connection stores the ConnectWise PSA base URL and API key credentials used by all methods.
| Property | Type | Description |
|---|---|---|
Site Url |
String | The ConnectWise PSA site URL, e.g. https://example.connectwise.com. |
Company ID |
String | The ConnectWise PSA company identifier used with the API member public key. |
Public Key |
String | The public key generated for the ConnectWise API member. |
Private Key |
Masked | The private key generated for the ConnectWise API member. |
Setup Notes
This Node uses Basic Authentication with a ConnectWise API member and API key, as described in ConnectWise Manage Member Authentication.
1. Create an API Member
- In ConnectWise PSA, open
System -> Members -> API Members. - Click
+to create an API member. - Enter
FlowgearinMember ID. - Enter an email address for your company.
- Under
System, selectAdminor a custom security role with the permissions Flowgear needs. - Complete the remaining required fields.
- Click
Save.
2. Create an API Key
- Select the API member you created for Flowgear, then open the
API Keystab. - Click
+to create an API key. - Enter
Flowgearas the description, then clickSave. - Copy the private key when it is shown. ConnectWise only displays it once.
3. Create the Connection
- Enter your ConnectWise PSA URL in
Site Url, e.g.https://mycompany.myconnectwise.net. - Enter your company identifier in
Company ID. - Enter the API member public key in
Public Key. - Enter the API member private key in
Private Key.
Methods
This Node exposes template-driven Query, Create, Update, and Delete operations for ConnectWise PSA resources.
Select a template for the method you want to use. The template supplies the correct OperationId and the expected Options and Items shape for the selected ConnectWise endpoint.
Query
Retrieves ConnectWise PSA resources using GET operations. Use Query for single-record lookups, lists, count endpoints, info endpoints, and other read-only operations exposed by the selected template.
Paging options such as page, pageSize, and pageId are handled internally by the Node and are not exposed in the template.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The ConnectWise PSA Connection profile. |
OperationId |
String | The unique identifier for the selected operation to be performed. |
Options |
Object | Route values, query values, and operation controls required by the selected request. |
CustomParameters |
Object | Values substituted into Options entries that reference @parameters. |
| Return | Type | Description |
|---|---|---|
Response |
Array | Response rows returned by the selected operation. |
Create
Creates ConnectWise PSA resources using POST operations. Some ConnectWise POST endpoints perform actions instead of creating a standard record. Use the selected template to confirm the required Options and Items shape.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The ConnectWise PSA Connection profile. |
OperationId |
String | The unique identifier for the selected operation to be performed. |
Options |
Object | Route values, query values, and operation controls required by the selected request. |
Items |
Array | Optional request body rows sent to ConnectWise PSA. |
| Return | Type | Description |
|---|---|---|
Response |
Array | Response rows returned by the selected operation. |
Update
Updates ConnectWise PSA resources using PUT or PATCH operations. PUT operations replace the entity with the supplied body. PATCH operations update specific fields on the entity.
For PATCH templates, each Items row represents one patch operation. Supported op values are add, replace, and remove. The path value is case-sensitive and should target a field path exposed by the selected template.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The ConnectWise PSA Connection profile. |
OperationId |
String | The unique identifier for the selected operation to be performed. |
Options |
Object | Route values, query values, and operation controls required by the selected request. |
Items |
Array | Optional request body rows sent to ConnectWise PSA. |
| Return | Type | Description |
|---|---|---|
Response |
Array | Response rows returned by the selected operation. |
Delete
Deletes ConnectWise PSA resources using DELETE operations. Most delete templates require the record ID or parent IDs in Options.
Some bulk delete templates accept Items rows with an id value. The Node groups supported bulk requests into ConnectWise batches.
| Parameter | Type | Description |
|---|---|---|
Connection |
Connection | The ConnectWise PSA Connection profile. |
OperationId |
String | The unique identifier for the selected operation to be performed. |
Options |
Object | Route values, query values, and operation controls required by the selected request. |
Items |
Array | Optional request body rows sent to ConnectWise PSA. |
| Return | Type | Description |
|---|---|---|
Response |
Array | Response rows returned by the selected operation. |
Usage Notes
- Templates are filtered by method. A
Querytemplate can only be executed byQuery, a POST template byCreate, a PUT or PATCH template byUpdate, and a DELETE template byDelete. Optionscontains route and query parameters for the selected operation. Common query options includeconditions,childConditions,customFieldConditions,fields, andorderBy.- Use
conditionsto filter by fields returned by the selected GET operation. Use reference paths such asboard/namewhen filtering fields on referenced objects. - Use
childConditionswhen the endpoint supports filtering a child collection, e.g.communicationItems/value like "john@example.com". - Use
customFieldConditionswhen the endpoint supports custom fields, e.g.caption="TomNumber" AND value != null. - Wrap string values in double quotes, leave numeric values unquoted, leave Boolean values unquoted, and wrap DateTime values in square brackets, e.g.
[2016-08-20T18:04:26Z]. - Use
fieldsto limit the fields returned by the response, e.g.id,name,status/id. UseorderBywith a field and direction, e.g.name asc. CustomParametersis available onQuery. Add values keyed asStatusNameor@StatusName, then reference them inOptionsas@StatusName.- For PATCH operations that update a referenced object, replace the whole reference object, e.g. patch
companywith an object value instead of using a path such ascompany/identifier. - When patching
customFields, send the fullcustomFieldsarray expected by ConnectWise PSA. Create,Update, andDeleteresponses include aFlowgearobject withIsSuccessand, when available,Messagefields.
Examples
Query With Search Conditions
- Use
conditionsfor the ConnectWise search expression andCustomParametersfor values that change between Workflow runs. - Search conditions support comparison operators such as
=,!=,<,<=,>,>=,contains,like,in, andnot. Combine expressions withANDorOR.
In Options, set:
conditions:board/name = "Integration" AND status/name != "@StatusName" AND priority/id in (1, 2, @PriorityId) AND lastUpdated >= [@UpdatedSince]fields:id,summary,status/name,board/name,lastUpdatedorderBy:lastUpdated desc
In CustomParameters, set:
StatusName:ClosedPriorityId:3UpdatedSince:2026-01-01T00:00:00Z
Patch Specific Fields
Select a PATCH template under Update, then supply one or more Items rows with op, path, and value.
Available op actions are:
add: Adds a value to the selected field.replace: Replaces the selected field value.remove: Removes the selected field value.
In Items, add one row for each field update.
Row 1:
op:replacepath:summaryvalue:New Summary
Row 2:
op:replacepath:companyvalue:New Company
Known Issues
- Binary responses are not currently supported.