ConnectWise PSA integration
What does the ConnectWise PSA integration do?
Our ConnectWise PSA integration enables the automation of PSA tasks. Use the ConnectWise PSA API within Rewst workflows to perform actions such as managing agreements, contacts, and tickets.
Why use the ConnectWise PSA integration?
Here’s just a taste of what you can automate with relevant Crates, after you've set up your ConnectWise PSA integration:
Add your child organizations, also known as customers, to Rewst.
User onboarding and offboarding
Categorize tickets using OpenAI
Integration prerequisites
Rewst has a number of tasks that can be performed using the ConnectWise API, all of which require different permissions. You can review the ConnectWise PSA Security Roles Matrix for more information.
Set up the ConnectWise PSA integration
Setup steps in ConnectWise
Create a security role in ConnectWise PSA
Navigate to System > Security Roles.
Click + in the top left of your screen.
Name the security Role
Rewst API
.Click save.
Set your permissions as per the Least privilege access requirements for ConnectWise PSA integration section of this document.
Create an API account.
This can be done by following ConnectWise's own instructions.
Note that you'll need to be signed in to ConnectWise PSA to view the documentation.
Create an API member.
Navigate to System > Members > API Members.
Click + to create a new API member.
Enter a Member ID and Member Name. We suggest naming each of these
Rewst
.Select Rewst API as your Role ID.
Select your highest Level, such as Corporate (Level 1).
Select a Location, Department, Name, and Default Territory, as per your company guidelines.
Click Save.
Click on the Rewst API member.
Click API Keys +.
Add a new API Key.
Add
Rewst API
as the Description.Click Save.
Copy and save the public and private key in a secure location. You'll need these to move on to the rest of the setup steps in Rewst.


Set up steps in Rewst
Navigate to Configuration > Integrations in the left side menu of your Rewst platform.
In the integrations page, search for
ConnectWise PSA
.Click on the integration tile to launch the configuration setup page.
In the Configuration form, enter the following into the relevant fields:
The copied API Member ID
The company ID used when logging into ConnectWise PSA
The Hostname for ConnectWise PSA
The private and public API key.
Optionally, change the company query conditions to filter what companies are returned by the API.
Add your own client ID - this is optional, but recommended. Instructions for how to find the client ID can be found here.
Click Save Configuration.
Rewst will do a quick validation of your input. Once completed, you'll see a new section beneath the configuration form for organization mapping. Complete your mapping as desired.

Other configurations
Once the integration has been configured within Rewst, we can use the Rewst Crate: Configure Organization Variables to configure your own custom settings and how Rewst should interact with ConnectWise PSA. Our Guide for that Crate can be found here: Configure Organization Variables
Note that this form asks for information about your RMM / M365 settings as well. While this form can be completed again separately, we recommend that you also set up the integration for Microsoft Graph and your RMM at this same time.
Test the ConnectWise PSA integration
Navigate to Automations > Workflows in the left side menu of your Rewst platform.
Click Create Workflow.
Enter
CW Test Workflow
as the name for your workflow.Click Submit.
Click to expand the ConnectWise PSA accordion menu and open the list of available actions.
Scroll within the section to find the List Companies action and drag it to your canvas.
Click Test in the top right corner of the screen.
You'll be prompted to select a trigger context organization.
Click Test at the bottom right corner of the dialog.
Allow the workflow to run. Click View Results.
Click connect_wise_psa_list_companies.
Expand any list under Results to see part of your list of companies.
Actions and endpoints
Click to expand the below table and view all related ConnectWise PSA actions and endpoints.
ConnectWise PSA pod configuration
Pod authorization
Note that pods do not allow the use of the fat client due to authorization pass-through issues. This means that you can use the web client to access pods.
During pod configuration, you'll need to update your Rewst base URL to match your geographic Rewst instance. This will vary depending on which Rewst instance you are on. Identify your instance by the URL you use to access Rewst. Please use the following table as a guide to identify your Rewst base URL
app.rewst.io
engine.rewst.io
app.pdx.rewst.io
engine.pdx.rewst.io
app.eu.rewst.io
engine.eu.rewst.io
app.rewst.eu
engine.rewst.eu
app.rewst.asia
engine.rewst.asia
Configure ConnectWise pods
Login to ConnectWise PSA as a user that has access to the setup tables. This is likely an admin account.
Click the System icon on the bottom left of the ConnectWise PSA UI.
Click on the Setup Tables menu that appears.
Enter
\*api\
in the table filter. Your returned result should be Manage Hosted API.Click Add and use the below settings:
Description - Enter Rewst
Screen - For our example, we use Service Tickets
Origin - https://app.rewst.io Note that you'll need to update this origin URL to match your Rewst instance. Determine your instance by referencing the included instance table.
URL - https://app.rewst.io/organizations/<org_id>/integrations/embed/ticket/[cw_id] Note that you'll need to update this URL to match your Rewst instance. Determine your instance by referencing the included instance table. You'll also need to add your own
org_id
to the URL. This can be obtained by going to your Rewst platform, looking at the URL, locating the org id between the / marks, and pasting it into the URL below.[cw_id]
should be left as-is.
Select Pod.
Update the URL
You will need to add your own org_id
to the URL above. This can be obtained by going to Rewst and looking at the URL. [cw_id]
should be left as-is.
Add pods to tickets
Click the Settings icon in the top right corner of your screen.
Select Pod Configuration.

Move the Rewst pods to the Displayed table.

Firefox dynamic state partitioning
An issue arises with Firefox's Dynamic State Partitioning where the default network.cookie.cookieBehavior
value of 5 rejects (known) trackers and partitions third-party storage, hindering the authentication process and causing a logged GraphQL error. This issue also occurs with embedded forms.
Firefox users must set network.cookie.cookieBehavior
to 4 for successful pod authentication.
Consult the official Firefox documentation for more information: https://developer.mozilla.org/en-US/docs/Web/Privacy/State_Partitioning#disable_dynamic_state_partitioning.\
You'll have a workflow called [Rewst Master v3] Pods: Technician Toolbox
within your organization.
Re-run a pod from a ticket
Let's imagine you have a ticket that has had its associated pod workflow execution expire (or fail for one reason or another). If you attempt to view the pod in the ticket you'll see something along the lines of:
To execute a new instance of the pod, click on the Links dropdown in the ticket and choose Rewst - Start Pod on this Ticket.
After you have used this button, a web page will open and close. This will send a request to the Live Link trigger and start a new execution for that ticket. Allow some time to pass for the ticket to update. You should see the pod populate once the execution has gone through.
Least privilege access requirements for ConnectWise PSA integration
Query and filter in ConnectWise PSA actions
Query string parameters and conditions
The ability to filter and query specific data is essential when working with ConnectWise PSA Actions in Rewst. Query string parameters and conditions let you use specific symbols and expressions to pinpoint the exact data you need.
Build a query string
Query strings are made up of three parts:
Attribute - This can be the name of the attribute you’re looking to filter on (eg:
name
), or it can be the path to get to the attribute you’re looking to filter on (eg:board/name
).Symbol - These define how you want to filter your incoming data. This can range from one-character symbols (eg:
=
), to entire words (eg:contains
).Value - This is what you’re actually looking for. This can be a wide range of data types including Strings (eg:
"hello world"
) and Booleans (eg:True
)
These three parts can be combine to pull any data you need.
Query conditions vs child conditions
Query conditions are used to find any value that can contain only one value, such as a string or a boolean. Child conditions are used when the property you're filtering on contains many values, such as a list.
Examples
Easily locate companies by name
Action:
List Companies
Query Condition:
name="Test Rewst"
Organize tickets by board names for efficient processing
Action:
List Service Tickets
Query Condition:
board/name="Integration"
Target contacts based on communication preferences
Action:
List Contacts
Child Condition:
communicationItems/value like "[[email protected]](<mailto:[email protected]>)" AND communicationItems/communicationType="Email"
How to use symbols:
=
: Matches exactly!=
: Does not match<, <=, >, >=
: Relational operatorscontains, like, in, not
: Specific condition operators
Practical examples
Learn how to apply query string parameters and conditions in real-world scenarios.
Example 1: List Companies
Action:
List Companies
Query Condition:
name="Test Rewst"
Explanation: Easily locate companies by name.
Example 2: List Service Tickets
Action:
List Service Tickets
Query Condition:
board/name="Integration"
Explanation: Organize tickets by board names for efficient processing.
Example 3: List Contacts with Specific Communication Items
Action:
List Contacts
Child Condition:
communicationItems/value like "[email protected]" AND communicationItems/communicationType="Email"
Explanation: Target contacts based on communication preferences.
Query nested attributes
Accessing data within nested objects requires a specific approach.
Syntax: Use a forward slash
/
Example:
communicationItems/value
Use Case: When you need to extract specific attributes from nested entities, such as communication items within contacts.
Conditions in ConnectWise PSA actions
Different conditions serve different purposes. Mastering these conditions enables you to build complex and tailored queries.
Strings: Match text patterns (
Summary = "string"
)Integers: Locate numerical values (
Board/Id = 123
)Boolean: Filter by true/false conditions (
ClosedFlag = True
)Datetimes: Sort by date and time (
LastUpdated = [2016-08-20T18:04:26Z]
)Operators: Define relational/logical conditions (
Summary Not Contains "Low Priority"
)Logic Operators: Combine multiple conditions (
AND, OR
)Reference Conditions: Access fields within referenced objects (
manufacturer/name
)
Troubleshoot API issues from ConnectWise logs
Log in to ConnectWise PSA.
Navigate to System > Members.
Click API Members. Here, you'll find settings specific to API interactions and configurations.

Under the API Members tab, locate and select the user associated with Rewst's integration.

After selecting the Rewst user:
Navigate to the API Logs tab.
Click Start Debug Mode.

In the Debug Mode dialog:
Enter length of time (e.g.
5
) in the Minutes field. This will capture logs for the specified duration.Click Ok.

Replicate the issue or process you are troubleshooting
Return to the API Logs tab.
Click Download Logs. Once downloaded, you can review these logs, and send them to Rewst support for troubleshooting assistance.
Crates related to the ConnectWise PSA integration

Add Rewst Form Link to New User Request Tickets

Add Rewst Form Link to Offboarding Request Tickets

Assign Asset/Config to Ticket Based on Contact

Use OpenAI to Suggest Responses to New Tickets

Prompt to Combine Similar Tickets

Browse Rewst Form Triggers Within a Form and Attach to a Ticket

Consolidate and Manage Duplicate Configurations

Sync AzureAD Account Information with ConnectWise PSA Contacts (V3)

Upload File to PSA Ticket

Configure CWM Agreement for Duo Sync

Set ConnectWise PSA Board OnCall Member

Deactivate ConnectWise PSA Contacts When Their Company is Deactivated

Sync On-Prem Users to CWM Contacts

Mark CWM Overdue Tasks Complete

Sync VIP Contact Status to ITG Status
Got an idea for a new integration? Rewst is constantly adding new integrations to our integrations page. Submit your idea or upvote existing ideas here in our Canny feedback collector.
Last updated
Was this helpful?