# ConnectWise PSA integration

{% hint style="info" %}
Note that ConnectWise PSA was previously known as ConnectWise Manage.

If you’re new to integrations in Rewst, read through our introductory integration documentation [here](https://docs.rewst.help/documentation/integrations).
{% endhint %}

## 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](https://developer.connectwise.com/@api/deki/files/422/Security_Roles_Matrix_11132017.xlsx?revision=1) for more information.

{% hint style="info" %}
You'll need an active ConnectWise Developer account to access the above URL.
{% endhint %}

## Set up the ConnectWise PSA integration

### Setup steps in ConnectWise

1. Create a security role in ConnectWise PSA
   1. Navigate to **System > Security Roles**.
   2. Click **+** in the top left of your screen.<br>

      <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F2aoyQmfdR4U6nZ5TtTuM%2FScreenshot%202025-06-16%20at%2012.53.20%E2%80%AFPM.png?alt=media&#x26;token=d965fe00-dd4a-421e-bc62-ccd8e74130e6" alt="" width="375"><figcaption></figcaption></figure>
   3. Name the security Role `Rewst API`. &#x20;
   4. Click **save**.
   5. Set your permissions as per the [#permission-requirements-for-connectwise-psa-integration](#permission-requirements-for-connectwise-psa-integration "mention") section of this document.
2. Create an API account.
   1. This can be done by following [ConnectWise's own instructions](https://developer.connectwise.com/Special:Userlogin?returntotitle=Products%2FManage%2FDeveloper_Guide%2FAuthentication#tab=login).&#x20;
   2. Note that you'll need to be signed in to ConnectWise PSA to view the documentation.&#x20;
3. Create an API member.
   1. Navigate to **System > Members > API Members**.
   2. Click **+** to create a new API member.<br>

      <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FLlqj7t7KiNcnWmCscp0E%2FScreenshot%202025-06-16%20at%201.32.24%E2%80%AFPM.png?alt=media&#x26;token=fc24a97a-90bd-4405-adde-3c5ea9f33535" alt="" width="375"><figcaption></figcaption></figure>
   3. Enter a **Member ID** and **Member Name**. We suggest naming each of these `Rewst`.
   4. Select **Rewst API** as your **Role ID**.
   5. Select your highest **Level**, such as Corporate (Level 1)*.*
   6. Select a **Location**, **Department**, **Name**, and **Default Territory**, as per your company guidelines.
   7. Click **Save**.
   8. Click on the **Rewst API member**.
   9. Click **API Keys** **+**.
   10. Add a new API Key.
   11. Add `Rewst API` as the **Description**.
   12. Click **Save**.
   13. 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.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fgit-blob-f044d84ecee80cdb5a45896af7e5561a7829ab3b%2Fcwm-api-member.jpg?alt=media" alt=""><figcaption><p>Creating an API Member in ConnectWise PSA</p></figcaption></figure>

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fgit-blob-ec676315428a139b980812e9b79e7d42950382c0%2Fpublic-api-key.jpg?alt=media" alt=""><figcaption><p>Public and Private Key</p></figcaption></figure>

### Set up steps in Rewst

1. Navigate to **Configuration > Integrations** in the left side menu of your Rewst platform.
2. In the integrations page, search for `ConnectWise PSA`. \
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FdBZ3zUfte7FM6BC5CIoO%2FScreenshot%202025-02-11%20at%206.01.15%E2%80%AFPM.png?alt=media\&token=5d68de3e-3780-4f95-a8b7-d03a351c7a05)
3. Click on the integration tile to launch the configuration setup page.
4. In the **Configuration** form, enter the following into the relevant fields:
   1. The copied **API Member ID**&#x20;
   2. The **company ID** used when logging into ConnectWise PSA
   3. The **Hostname** for ConnectWise PSA
   4. The private and public API key.
      1. Optionally, change the company query conditions to filter what companies are returned by the API.
   5. Add your own **client ID** - this is optional, but recommended. Instructions for how to find the client ID can be found [here](https://www.youtube.com/watch?v=4ZZMM-ERFf0).&#x20;
5. Click **Save Configuration**.
6. Rewst will do a quick validation of your input. Once completed, you'll see a new section beneath the configuration form for[ organization mapping](https://docs.rewst.help/documentation/integrations#what-is-organization-mapping). Complete your mapping as desired.&#x20;

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FZazx2HpbgLJVIZDQ4SHx%2FScreenshot%202025-06-11%20at%2011.28.24%E2%80%AFAM.png?alt=media&#x26;token=2f44fc7e-5c2b-4404-a119-f12d85d20c5f" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**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 Variable*](https://docs.rewst.help/prebuilt-automations/existing-crate-documentation/configure-organization-variables)[*s*](https://docs.rewst.help/~/revisions/IAv4UYPrwRFrpB0SUQW8/documentation/crates/existing-crate-documentation/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.
{% endhint %}

## Test the ConnectWise PSA integration

1. Navigate to **Automations > Workflows in the left side menu of your Rewst platform.**
2. Click **Create Workflow**.
3. Enter `CW Test Workflow` as the name for your workflow.
4. Click **Submit**.\ <br>

   <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FS6y9RVkrY6Js23PBZurY%2FScreenshot%202025-06-16%20at%202.20.05%E2%80%AFPM.png?alt=media&#x26;token=a643f7e2-408d-4a9b-b2a3-f18fbaf88ada" alt="" width="310"><figcaption></figcaption></figure>
5. Click to expand the ConnectWise PSA accordion menu and open the list of available actions.\ <br>

   <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FxbYWnS8jehjNJdSUb1Bn%2FScreenshot%202025-06-16%20at%203.18.52%E2%80%AFPM.png?alt=media&#x26;token=ee2c5ab7-c10f-4f37-be8a-6d4dcae74a4f" alt="" width="175"><figcaption></figcaption></figure>
6. **Scroll within the section to find the List Companies** action and drag it to your canvas.
7. Click **Test** in the top right corner of the screen.<br>

   <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FrP8HWma613RQhB4zlMLw%2FScreenshot%202025-06-16%20at%203.21.27%E2%80%AFPM.png?alt=media&#x26;token=1327f2b4-142a-41d8-86ba-9e3d850dd8cc" alt="" width="375"><figcaption></figcaption></figure>
8. You'll be prompted to select a trigger context organization.
9. Click **Test** at the bottom right corner of the dialog.
10. Allow the workflow to run. Click **View Results**.
11. Click **connect\_wise\_psa\_list\_companies**.
12. 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.

<details>

<summary>Actions table for ConnectWise PSA</summary>

| Category                          | Action                                      |
| --------------------------------- | ------------------------------------------- |
| **Activities**                    | List Sales Activities                       |
| **Activities**                    | Create Sales Activity                       |
| **Activities**                    | Get Sales Activity                          |
| **Activities**                    | Delete Sales Activity                       |
| **Activities**                    | Replace Sales Activity                      |
| **Activities**                    | Update Sales Activity                       |
| **Address Formats**               | List Company Address Formats                |
| **Address Formats**               | Create Company Address Format               |
| **Address Formats**               | Get Company Address Format                  |
| **Address Formats**               | Delete Company Address Format               |
| **Address Formats**               | Replace Company Address Format              |
| **Address Formats**               | Update Company Address Format               |
| **Agreement Additions**           | List Agreement Additions                    |
| **Agreement Additions**           | Create Agreement Addition                   |
| **Agreement Additions**           | Get Agreement Addition                      |
| **Agreement Additions**           | Delete Agreement Additions                  |
| **Agreement Additions**           | Replace Agreement Additions                 |
| **Agreement Additions**           | Update Agreement Additions                  |
| **Agreement Adjustments**         | List Agreement Adjustments                  |
| **Agreement Adjustments**         | Create Agreement Adjustment                 |
| **Agreement Adjustments**         | Get Agreement Adjustments                   |
| **Agreement Adjustments**         | Delete Agreement Adjustments                |
| **Agreement Adjustments**         | Replace Agreement Adjustments               |
| **Agreement Adjustments**         | Update Agreement Adjustments                |
| **Agreement Types**               | List Agreement Types                        |
| **Agreement Types**               | Create Agreement Type                       |
| **Agreement Types**               | Get Agreement Type                          |
| **Agreement Types**               | Delete Agreement Type                       |
| **Agreement Types**               | Replace Agreement Types                     |
| **Agreement Types**               | Update Agreement Types                      |
| **Agreements**                    | List Agreements                             |
| **Agreements**                    | Create Agreement                            |
| **Agreements**                    | Get Agreement                               |
| **Agreements**                    | Delete Agreement                            |
| **Agreements**                    | Replace Agreement                           |
| **Agreements**                    | Update Agreement                            |
| **Agreements**                    | List Agreements Configurations              |
| **Agreements**                    | Create Agreement Configurations             |
| **Agreements**                    | Get Agreement Configuration                 |
| **Agreements**                    | Delete Agreement Configuration              |
| **Audit Trail**                   | Get Audit Trail                             |
| **Billing Cycles**                | List Finance Billing Cycles                 |
| **Billing Cycles**                | Create Finance Billing Cycle                |
| **Billing Cycles**                | Get Finance Billing Cycle                   |
| **Billing Cycles**                | Delete Finance Billing Cycle                |
| **Billing Cycles**                | Replace Finance Billing Cycle               |
| **Billing Cycles**                | Update Finance Billing Cycle                |
| **Billing Terms**                 | List Finance Billing Terms                  |
| **Billing Terms**                 | Create Finance Billing Term                 |
| **Billing Terms**                 | Get Finance Billing Term                    |
| **Billing Terms**                 | Delete Finance Billing Term                 |
| **Billing Terms**                 | Replace Finance Billing Term                |
| **Billing Terms**                 | Update Finance Billing Term                 |
| **Boards**                        | List Service Boards                         |
| **Boards**                        | Create Service Board                        |
| **Boards**                        | Get Service Board                           |
| **Boards**                        | Delete Service Board                        |
| **Boards**                        | Replace Service Board                       |
| **Boards**                        | Update Service Board                        |
| **Boards**                        | Copy Service Board                          |
| **Boards**                        | List Service Board Statuses                 |
| **Boards**                        | List Service Board Types                    |
| **Boards**                        | List Service Board Subtypes                 |
| **Boards**                        | List Service Board Items                    |
| **Calendars**                     | List Calendars                              |
| **Calendars**                     | Create Calendar                             |
| **Calendars**                     | Get Calendar                                |
| **Calendars**                     | Update Calendar                             |
| **Calendars**                     | Replace Calendar                            |
| **Calendars**                     | Delete Calendar                             |
| **Calendars**                     | Copy Calendar                               |
| **Callbacks**                     | List Callbacks                              |
| **Callbacks**                     | Delete Callback                             |
| **Campaign Audits**               | List Campaign Audits                        |
| **Campaign Audits**               | Create Campaign Audit                       |
| **Campaign Audits**               | Get Campaign Audit                          |
| **Campaign Audits**               | Delete Campaign Audits                      |
| **Campaign Audits**               | Replace Campaign Audits                     |
| **Campaign Audits**               | Update Campaign Audits                      |
| **Campaign Emails Opened**        | List Marketing Campaign Emails Opened       |
| **Campaign Emails Opened**        | Create Marketing Campaign Emails Opened     |
| **Campaign Emails Opened**        | Get Marketing Campaign Emails Opened        |
| **Campaign Emails Opened**        | Delete Marketing Campaign Emails Opened     |
| **Campaign Emails Opened**        | Replace Marketing Campaign Emails Opened    |
| **Campaign Emails Opened**        | Update Marketing Campaign Emails Opened     |
| **Campaign Forms Submitted**      | List Campaign Forms Submitted               |
| **Campaign Forms Submitted**      | Create Campaign Forms Submitted             |
| **Campaign Forms Submitted**      | Get Campaign Forms Submitted                |
| **Campaign Forms Submitted**      | Delete Campaign Forms Submitted             |
| **Campaign Forms Submitted**      | Replace Campaign Forms Submitted            |
| **Campaign Forms Submitted**      | Update Campaign Forms Submitted             |
| **Campaign Links Clicked**        | List Campaign Links Clicked                 |
| **Campaign Links Clicked**        | Create Campaign Links Clicked               |
| **Campaign Links Clicked**        | Get Campaign Links Clicked                  |
| **Campaign Links Clicked**        | Delete Campaign Links Clicked               |
| **Campaign Links Clicked**        | Replace Campaign Links Clicked              |
| **Campaign Links Clicked**        | Update Campaign Links Clicked               |
| **Campaigns**                     | List Marketing Campaigns                    |
| **Campaigns**                     | Create Marketing Campaign                   |
| **Campaigns**                     | Get Marketing Campaign                      |
| **Campaigns**                     | Delete Marketing Campaign                   |
| **Campaigns**                     | Replace Marketing Campaign                  |
| **Campaigns**                     | Update Marketing Campaign                   |
| **Campaigns**                     | List Campaign Activities                    |
| **Campaigns**                     | List Campaign Opportunities                 |
| **Campaigns**                     | Get Campaign Count                          |
| **Classifications**               | List Expense Classifications                |
| **Classifications**               | Get Expense Classification                  |
| **Communication Types**           | List Communication Types                    |
| **Communication Types**           | Create Communication Type                   |
| **Communication Types**           | Get Communication Type                      |
| **Communication Types**           | Delete Communication Type                   |
| **Communication Types**           | Replace Communication Type                  |
| **Communication Types**           | Update Company Communication Type           |
| **Companies**                     | List Companies                              |
| **Companies**                     | Create Company                              |
| **Companies**                     | Get Company                                 |
| **Companies**                     | Delete Company                              |
| **Companies**                     | Replace Company                             |
| **Companies**                     | Update Company                              |
| **Company Custom Notes**          | List Custom Status Notes                    |
| **Company Custom Notes**          | Create Custom Status Note                   |
| **Company Custom Notes**          | Get Custom Status Note                      |
| **Company Custom Notes**          | Delete Custom Status Note                   |
| **Company Custom Notes**          | Replace Custom Status Note                  |
| **Company Custom Notes**          | Update Custom Status Note                   |
| **Company Finances**              | Replace Company Finance Information         |
| **Company Finances**              | List Company Finances                       |
| **Company Finances**              | Get Company Finance                         |
| **Company Finances**              | Update Company Finance Information          |
| **Company Sites**                 | List Sites                                  |
| **Company Sites**                 | Get Site                                    |
| **Company Statuses**              | List Statuses                               |
| **Company Statuses**              | Create Status                               |
| **Company Statuses**              | Get Status                                  |
| **Company Statuses**              | Delete Status                               |
| **Company Statuses**              | Replace Status                              |
| **Company Statuses**              | Update Status                               |
| **Company Types**                 | List Company Types                          |
| **Company Types**                 | Create Company Type                         |
| **Company Types**                 | Get Company Type                            |
| **Company Types**                 | Delete Company Type                         |
| **Company Types**                 | Replace Company Type                        |
| **Company Types**                 | Update Company Type                         |
| **Configuration Types**           | List Configurations Types                   |
| **Configuration Types**           | Create Configurations Type                  |
| **Configuration Types**           | Get Configurations Type                     |
| **Configuration Types**           | Delete Configurations Type                  |
| **Configuration Types**           | Replace Configurations Type                 |
| **Configuration Types**           | Update Configurations Type                  |
| **Configurations**                | List Configurations                         |
| **Configurations**                | Create Configuration                        |
| **Configurations**                | Get Configuration                           |
| **Configurations**                | Delete Configuration                        |
| **Configurations**                | Replace Configuration                       |
| **Configurations**                | Update Configuration                        |
| **Contact Groups**                | List Contact Groups                         |
| **Contact Groups**                | Create Contact Group                        |
| **Contact Groups**                | Get Contact Group                           |
| **Contact Groups**                | Delete Contact Group                        |
| **Contact Groups**                | Replace Contact Group                       |
| **Contact Groups**                | Update Contact Group                        |
| **Contacts**                      | List Contacts                               |
| **Contacts**                      | Create Contact                              |
| **Contacts**                      | Get Contact                                 |
| **Contacts**                      | Delete Contact                              |
| **Contacts**                      | Replace Contact                             |
| **Contacts**                      | Update Contact                              |
| **Contacts**                      | Get Contact Image                           |
| **Contacts**                      | Get Contact Portal Security                 |
| **Contacts**                      | Get Default Contact                         |
| **Contacts**                      | Create Password Request for Contact         |
| **Contacts**                      | Validate Portal Credentials for Contact     |
| **Contacts**                      | Get Contact Communications                  |
| **Cwm Confirmations**             | Create Pod Confirmation                     |
| **Documents**                     | List Documents                              |
| **Documents**                     | Get Document                                |
| **Documents**                     | Delete Document                             |
| **Documents**                     | Download Document                           |
| **Documents**                     | Get Document Thumbnail                      |
| **Expense Entries**               | List Expense Entries                        |
| **Expense Entries**               | Create Expense Entry                        |
| **Expense Entries**               | Get Expense Entry                           |
| **Expense Entries**               | Delete Expense Entry                        |
| **Expense Entries**               | Replace Expense Entry                       |
| **Expense Entries**               | Update Expense Entry                        |
| **Expense Reports**               | List Expense Reports                        |
| **Expense Reports**               | Get Expense Report                          |
| **Expense Reports**               | Reverse Expense Report                      |
| **Expense Reports**               | Submit Expense Report                       |
| **Generic Request**               | CW PSA API Request                          |
| **Holidays**                      | List Holiday List's Holidays                |
| **Holidays**                      | Create Holiday List's Holiday               |
| **Holidays**                      | Get Holiday List's Holiday                  |
| **Holidays**                      | Delete Holiday List's Holiday               |
| **Holidays**                      | Replace Holiday List's Holiday              |
| **Holidays**                      | Update Holiday List's Holiday               |
| **In Out Boards**                 | List In Out Boards                          |
| **In Out Boards**                 | Create In Out Board                         |
| **In Out Boards**                 | Get In Out Board                            |
| **In Out Boards**                 | Delete In Out Board                         |
| **In Out Boards**                 | Replace In Out Board                        |
| **In Out Boards**                 | Update In Out Board                         |
| **Invoices**                      | List Finance Invoices                       |
| **Invoices**                      | Create Invoice                              |
| **Invoices**                      | Get Invoice                                 |
| **Invoices**                      | Delete Invoice                              |
| **Invoices**                      | Replace Invoice                             |
| **Invoices**                      | Update Invoice                              |
| **Invoices**                      | Get Invoice PDF                             |
| **Knowledge Base Articles**       | List Service Knowledge Base Articles        |
| **Knowledge Base Articles**       | Create Service Knowledge Base Article       |
| **Knowledge Base Articles**       | Get Service Knowledge Base Article          |
| **Knowledge Base Articles**       | Delete Service Knowledge Base Article       |
| **Knowledge Base Articles**       | Replace Service Knowledge Base Article      |
| **Knowledge Base Articles**       | Update Service Knowledge Base Article       |
| **Knowledge Base Categories**     | List Service Knowledge Base Categories      |
| **Knowledge Base Categories**     | Create Service Knowledge Base Category      |
| **Knowledge Base Categories**     | Get Service Knowledge Base Category         |
| **Knowledge Base Categories**     | Delete Service Knowledge Base Category      |
| **Knowledge Base Categories**     | Replace Service Knowledge Base Category     |
| **Knowledge Base Categories**     | Update Service Knowledge Base Category      |
| **Knowledge Base Sub Categories** | List Service Knowledge Base Sub Categories  |
| **Knowledge Base Sub Categories** | Create Service Knowledge Base Sub Category  |
| **Knowledge Base Sub Categories** | Get Service Knowledge Base Sub Category     |
| **Knowledge Base Sub Categories** | Delete Service Knowledge Base Sub Category  |
| **Knowledge Base Sub Categories** | Replace Service Knowledge Base Sub Category |
| **Knowledge Base Sub Categories** | Update Service Knowledge Base Sub Category  |
| **Member Skills**                 | List Members Skills                         |
| **Member Skills**                 | Create Members Skill                        |
| **Member Skills**                 | Get Members Skill                           |
| **Member Skills**                 | Delete Members Skill                        |
| **Member Skills**                 | Replace Members Skill                       |
| **Member Skills**                 | Update Members Skill                        |
| **Members**                       | List Members                                |
| **Members**                       | Create Member                               |
| **Members**                       | Get Member                                  |
| **Members**                       | Replace Member                              |
| **Members**                       | Update Member                               |
| **Members**                       | Deactivate Member                           |
| **Members**                       | Link SSO User to Member                     |
| **Members**                       | Submit Member                               |
| **Members**                       | Unlink SSO User from Member                 |
| **Members**                       | Delete Member's Unused Time Sheets          |
| **Members**                       | Create Member Identifier Token              |
| **Opportunities**                 | List Opportunities                          |
| **Opportunities**                 | Create Opportunity                          |
| **Opportunities**                 | Get Opportunity Count                       |
| **Opportunities**                 | Get Opportunity                             |
| **Opportunities**                 | Delete Opportunity                          |
| **Opportunities**                 | Replace Opportunity                         |
| **Opportunities**                 | Update Opportunity                          |
| **Opportunities**                 | Convert Opportunity To Agreement            |
| **Opportunities**                 | Convert Opportunity To Project              |
| **Opportunities**                 | Convert Opportunity To Sales Order          |
| **Opportunities**                 | Convert Opportunity To Service Ticket       |
| **Opportunity Forecasts**         | List Opportunity's Sales Forecasts          |
| **Opportunity Forecasts**         | Create Forecast for Sales Opportunity       |
| **Opportunity Forecasts**         | Delete Opportunity's Sales Forecast         |
| **Opportunity Forecasts**         | Replace Opportunity's Sales Forecast        |
| **Opportunity Forecasts**         | Update Opportunity's Sales Forecast         |
| **Opportunity Forecasts**         | Copy Opportunity's Sales Forecast           |
| **Opportunity Statuses**          | List Sales Opportunities Statuses           |
| **Opportunity Statuses**          | Create Sales Opportunities Status           |
| **Opportunity Statuses**          | Get Sales Opportunities Status              |
| **Opportunity Statuses**          | Delete Sales Opportunities Status           |
| **Opportunity Statuses**          | Replace Sales Opportunities Status          |
| **Opportunity Statuses**          | Update Sales Opportunities Status           |
| **Priorities**                    | List Service Priorities                     |
| **Priorities**                    | Create Service Priority                     |
| **Priorities**                    | Get Service Priority                        |
| **Priorities**                    | Delete Service Priority                     |
| **Priorities**                    | Replace Service Priority                    |
| **Priorities**                    | Update Service Priority                     |
| **Priorities**                    | Get Service Priority Image                  |
| **Procurement Adjustments**       | List Procurement Adjustments                |
| **Procurement Adjustments**       | Create Procurement Adjustment               |
| **Procurement Adjustments**       | Get Procurement Adjustment                  |
| **Procurement Adjustments**       | Delete Procurement Adjustment               |
| **Procurement Adjustments**       | Replace Procurement Adjustment              |
| **Procurement Adjustments**       | Update Procurement Adjustment               |
| **Product Types**                 | List Procurement Types                      |
| **Product Types**                 | Create Procurement Type                     |
| **Product Types**                 | Get Procurement Type                        |
| **Product Types**                 | Delete Procurement Type                     |
| **Product Types**                 | Replace Procurement Type                    |
| **Product Types**                 | Update Procurement Type                     |
| **Products**                      | List Products                               |
| **Products**                      | Create Product                              |
| **Products**                      | Get Product                                 |
| **Products**                      | Delete Product                              |
| **Products**                      | Replace Product                             |
| **Products**                      | Update Product                              |
| **Products**                      | Detach Product                              |
| **Project Notes**                 | List Project Notes                          |
| **Project Notes**                 | Create Project Note                         |
| **Project Notes**                 | Get Project Note                            |
| **Project Notes**                 | Delete Project Note                         |
| **Project Notes**                 | Replace Project Note                        |
| **Project Notes**                 | Update Project Note                         |
| **Project Phases**                | List Project Phases                         |
| **Project Phases**                | Create Project Phase                        |
| **Project Phases**                | Get Project Phase                           |
| **Project Phases**                | Delete Project Phase                        |
| **Project Phases**                | Replace Project Phase                       |
| **Project Phases**                | Update Project Phase                        |
| **Project Statuses**              | List Project Statuses                       |
| **Project Statuses**              | Create Project Status                       |
| **Project Statuses**              | Get Project Status                          |
| **Project Statuses**              | Delete Project Status                       |
| **Project Statuses**              | Replace Project Status                      |
| **Project Statuses**              | Update Project Status                       |
| **Project Ticket Notes**          | Mark Project Ticket Note As                 |
| **Project Ticket Notes**          | List Project Tickets All Notes              |
| **Project Tickets**               | List Project Tickets                        |
| **Project Tickets**               | Create Project Ticket                       |
| **Project Tickets**               | Get Project Ticket                          |
| **Project Tickets**               | Delete Project Ticket                       |
| **Project Tickets**               | Replace Project Ticket                      |
| **Project Tickets**               | Update Project Ticket                       |
| **Project Tickets**               | List Project Tickets Activities             |
| **Project Tickets**               | List Project Ticket Configuration           |
| **Project Tickets**               | Create Project Tickets Configuration        |
| **Project Tickets**               | Get Project Tickets Configuration           |
| **Project Tickets**               | Delete Project Tickets Configuration        |
| **Project Tickets**               | Convert Project Ticket                      |
| **Project Tickets**               | List Project Ticket's Documents             |
| **Project Tickets**               | List Project Ticket's Products              |
| **Project Tickets**               | List Project Ticket's Schedule Entries      |
| **Project Tickets**               | List Project Ticket's Time Entries          |
| **Project Tickets**               | Get Project Tickets Count                   |
| **Project Tickets**               | Search Project Tickets                      |
| **Project Types**                 | List Project Types                          |
| **Project Types**                 | Create Project Type                         |
| **Project Types**                 | Get Project Type                            |
| **Project Types**                 | Delete Project Type                         |
| **Project Types**                 | Replace Project Type                        |
| **Project Types**                 | Update Project Type                         |
| **Projects**                      | List Projects                               |
| **Projects**                      | Create Project                              |
| **Projects**                      | Get Project                                 |
| **Projects**                      | Delete Project                              |
| **Projects**                      | Replace Project                             |
| **Projects**                      | Update Project                              |
| **Purchase Order Statuses**       | List Purchase Order Statuses                |
| **Purchase Order Statuses**       | Create Purchase Order Status                |
| **Purchase Order Statuses**       | Get Purchase Order Status                   |
| **Purchase Order Statuses**       | Delete Purchase Order Status                |
| **Purchase Order Statuses**       | Update Purchase Order Status                |
| **Purchase Order Statuses**       | Replace Purchase Order Status               |
| **Purchase Orders**               | List Purchase Orders                        |
| **Purchase Orders**               | Create Purchase Order                       |
| **Purchase Orders**               | Get Purchase Order                          |
| **Purchase Orders**               | Delete Purchase Order                       |
| **Purchase Orders**               | Replace Purchase Order                      |
| **Purchase Orders**               | Update Purchase Order                       |
| **Reports**                       | List Reports                                |
| **Reports**                       | Get Reports By Report Name                  |
| **Reports**                       | List Reports By Report Name Columns         |
| **Roles**                         | List Sales Roles                            |
| **Roles**                         | Create Sales Role                           |
| **Roles**                         | Get Sales Role                              |
| **Roles**                         | Delete Sales Role                           |
| **Roles**                         | Replace Sales Role                          |
| **Roles**                         | Update Sales Role                           |
| **Schedules**                     | List Schedule Types                         |
| **Schedules**                     | List Schedule Entries                       |
| **Schedules**                     | Get Schedule Entry                          |
| **Schedules**                     | Create Schedule Entry                       |
| **Schedules**                     | Update Schedule Entry                       |
| **Schedules**                     | Delete Schedule Entry                       |
| **Security Roles**                | List Security Roles                         |
| **Security Roles**                | Create Security Role                        |
| **Security Roles**                | Get Security Role                           |
| **Security Roles**                | Delete Security Role                        |
| **Severities**                    | List Service Severities                     |
| **Severities**                    | Get Service Severity                        |
| **Severities**                    | Replace Service Severity                    |
| **Severities**                    | Update Service Severity                     |
| **Skill Categories**              | List Skill Categories                       |
| **Skill Categories**              | Create Skill Category                       |
| **Skill Categories**              | Get Skill Category                          |
| **Skill Categories**              | Delete Skill Category                       |
| **Skill Categories**              | Replace Skill Category                      |
| **Skill Categories**              | Update Skill Category                       |
| **Skills**                        | List Skills                                 |
| **Skills**                        | Create Skill                                |
| **Skills**                        | Get Skill                                   |
| **Skills**                        | Delete Skill                                |
| **Skills**                        | Replace Skill                               |
| **Skills**                        | Update Skill                                |
| **Slas**                          | List Service SLAs                           |
| **Slas**                          | Create Service SLAs                         |
| **Slas**                          | Get Service SLAs                            |
| **Slas**                          | Delete Service SLAs                         |
| **Slas**                          | Replace Service SLAs                        |
| **Slas**                          | Update Service SLAs                         |
| **Sources**                       | List Service Sources                        |
| **Sources**                       | Create Service Sources                      |
| **Sources**                       | Get Service Sources                         |
| **Sources**                       | Delete Service Sources                      |
| **Sources**                       | Replace Service Sources                     |
| **Sources**                       | Update Service Sources                      |
| **Survey Results**                | List Service Survey Results                 |
| **Survey Results**                | Create Service Survey Result                |
| **Survey Results**                | Get Service Survey Result                   |
| **Survey Results**                | Delete Service Survey Result                |
| **Survey Results**                | Replace Service Survey Result               |
| **Survey Results**                | Update Service Surveys Result               |
| **Surveys**                       | List Surveys                                |
| **Surveys**                       | Create Survey                               |
| **Surveys**                       | Get Survey                                  |
| **Surveys**                       | Delete Survey                               |
| **Surveys**                       | Replace Survey                              |
| **Surveys**                       | Update Survey                               |
| **Surveys**                       | Copy Survey                                 |
| **Ticket Notes**                  | List Project Ticket Notes                   |
| **Ticket Notes**                  | Create Project Ticket Notes                 |
| **Ticket Notes**                  | Get Project Ticket Notes                    |
| **Ticket Notes**                  | Delete Project Ticket Notes                 |
| **Ticket Notes**                  | Replace Project Ticket Notes                |
| **Ticket Notes**                  | Update Project Ticket Notes                 |
| **Ticket Notes**                  | List Service Ticket Notes                   |
| **Ticket Notes**                  | List All Service Ticket Notes               |
| **Ticket Notes**                  | Add Note to Service Ticket                  |
| **Ticket Notes**                  | Get Service Ticket Note                     |
| **Ticket Notes**                  | Delete Service Ticket Notes                 |
| **Ticket Notes**                  | Replace Service Ticket Notes                |
| **Ticket Notes**                  | Update Service Ticket Notes                 |
| **Ticket Tasks**                  | List Project Ticket Tasks                   |
| **Ticket Tasks**                  | Create Project Ticket Task                  |
| **Ticket Tasks**                  | Get Project Ticket Task                     |
| **Ticket Tasks**                  | Delete Project Ticket Task                  |
| **Ticket Tasks**                  | Replace Project Ticket Task                 |
| **Ticket Tasks**                  | Update Project Ticket Task                  |
| **Ticket Tasks**                  | List Service Ticket Tasks                   |
| **Ticket Tasks**                  | Create Service Ticket Task                  |
| **Ticket Tasks**                  | Get Service Ticket Task                     |
| **Ticket Tasks**                  | Delete Service Ticket Task                  |
| **Ticket Tasks**                  | Replace Service Ticket Task                 |
| **Ticket Tasks**                  | Get Service Ticket Task Count               |
| **Ticket Tasks**                  | Update Service Ticket Task                  |
| **Tickets**                       | List Service Tickets                        |
| **Tickets**                       | Create Service Ticket                       |
| **Tickets**                       | Get Service Ticket                          |
| **Tickets**                       | Delete Service Ticket                       |
| **Tickets**                       | Replace Service Ticket                      |
| **Tickets**                       | Update Service Ticket                       |
| **Tickets**                       | List Service Tickets Activities             |
| **Tickets**                       | Attach Children to Service Ticket           |
| **Tickets**                       | List Service Ticket Configurations          |
| **Tickets**                       | Create Service Ticket Configuration         |
| **Tickets**                       | Get Service Ticket Configuration            |
| **Tickets**                       | Delete Service Ticket Configuration         |
| **Tickets**                       | Add Configuration to Service Ticket         |
| **Tickets**                       | Convert Service Ticket To Project           |
| **Tickets**                       | Merge Service Tickets                       |
| **Tickets**                       | List Service Tickets Products               |
| **Tickets**                       | List Service Ticket's Schedule Entries      |
| **Tickets**                       | List Service Tickets Time Entries           |
| **Tickets**                       | Get Service Tickets Count                   |
| **Tickets**                       | Search Service Tickets                      |
| **Time Entries**                  | List Time Entries                           |
| **Time Entries**                  | Create Time Entry                           |
| **Time Entries**                  | Get Time Entry                              |
| **Time Entries**                  | Delete Time Entry                           |
| **Time Entries**                  | Replace Time Entry                          |
| **Time Entries**                  | Update Time Entry                           |
| **Time Entries**                  | Create Default Time Entry                   |
| **Time Sheets**                   | List Time Sheets                            |
| **Time Sheets**                   | Get Time Sheet                              |
| **Time Sheets**                   | Approve Time Sheet                          |
| **Time Sheets**                   | Reject Time Sheet                           |
| **Time Sheets**                   | Reverse Time Sheet                          |
| **Time Sheets**                   | Submit Time Sheet                           |
| **Work Roles**                    | List Time Work Roles                        |
| **Work Roles**                    | Create Time Work Role                       |
| **Work Roles**                    | Get Time Work Role                          |
| **Work Roles**                    | Delete Time Work Role                       |
| **Work Roles**                    | Replace Time Work Role                      |
| **Work Roles**                    | Update Time Work Role                       |
| **Work Types**                    | List Work Types                             |
| **Work Types**                    | Create Work Type                            |
| **Work Types**                    | Get Work Type                               |
| **Work Types**                    | Delete Work Type                            |
| **Work Types**                    | Replace Work Type                           |
| **Work Types**                    | Update Work Type                            |

</details>

## ConnectWise PSA pod configuration

{% hint style="warning" %}
Pod authorization

*Pods* are a way to customize each of your screens in ConnectWise with relevant information that is often out of the view or displayed elsewhere in ConnectWise. 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.
{% endhint %}

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

| Rewst URL        | 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

1. Login to ConnectWise PSA as a user that has access to the setup tables. This is likely an admin account.
2. Click the **System** icon on the bottom left of the ConnectWise PSA UI.
3. Click on the **Setup Tables** menu that appears.
4. Enter `*api` in the table filter. Your returned result should be **Manage Hosted API**.
5. Click **Add** and use the below settings:
   1. **Description** - Enter **Rewst**
   2. **Screen** - For our example, we use **Service Tickets**
   3. **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.
   4. **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.
6. Select **Pod**.

{% hint style="warning" %}
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.
{% endhint %}

### Add pods to tickets

1. Click the **Settings** icon in the top right corner of your screen.
2. Select **Pod Configuration**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fgit-blob-ed1c6e2778498ee969d0776fcaf37fe0b2ffd2d4%2Fcwm-pod-config.png?alt=media" alt=""><figcaption><p>Selecting the Settings Icon</p></figcaption></figure>

3. **Move** the Rewst pods to the **Displayed** table.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fgit-blob-6cbb0dfa8a22ea9e6a1af2c46eb33dfdf13a90e1%2Fcwm-pod-configuration-window.png?alt=media" alt=""><figcaption><p>Adding Rewst Configured Pods</p></figcaption></figure>

{% hint style="danger" %}
**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>.\\
{% endhint %}

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:&#x20;

<figure><img src="https://github.com/RewstApp/docs.rewst.help/assets/121902974/7ce5ce24-e338-41a2-99d2-9db4effd218a" alt=""><figcaption></figcaption></figure>

To execute a new instance of the pod, click on the **Links** dropdown in the ticket and choose **Rewst - Start Pod on this Ticket**.

<figure><img src="https://github.com/RewstApp/docs.rewst.help/assets/121902974/058d6794-48ba-4f7d-b5ba-d15b2f295b87" alt="" width="375"><figcaption></figcaption></figure>

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.

<figure><img src="https://github.com/RewstApp/docs.rewst.help/assets/121902974/a1e209d6-c432-44aa-9785-14d24f47410f" alt=""><figcaption></figcaption></figure>

## Permission requirements for ConnectWise PSA integration

{% hint style="info" %}
Our listed ConnectWise PSA permission requirements are what is needed for Rewst's Crates to run. Other API actions that you may wish to use in custom-built workflows may require additional permissions. For questions about what permissions would be required to achieve a specific goal, reach out to Rewst support.
{% endhint %}

Update any of the below permissions scopes in ConnectWise PSA by doing the following in ConnectWise PSA:

1. Click **>** in the left side menu.&#x20;
2. Navigate to **System > Security Roles**.
3. Click **+**.
4. Enter the name of your security role.
5. Click Save.
6. A new set of accordion menus will appear. Click to expand each as it corresponds to your needed permission for Rewst.
7. Click ⌄ under the column for the required level of permission. Change the permission level from **None** to whichever option is indicated in our documentation.
8. When all desired permissions are updated, click **Save**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fqemy5MAKmVAE31tlZtrN%2FScreenshot%202025-11-11%20at%204.14.57%E2%80%AFPM.png?alt=media&#x26;token=c084bc99-c572-483e-b098-2ce9f85d8c01" alt="A white screen with grey and blue elements, and black text. Center screen is a table with down arrows, which reveal menus of options when clicked. The table is for setting permission levels in ConnectWise PSA."><figcaption><p>Match the line item under each accordion menu with the scope header at the top of the page to find where to make your adjustment.</p></figcaption></figure>

Click to expand and view your relevant permission scopes.

<details>

<summary>Authentication requirements</summary>

To initiate the successful authentication of the ConnectWise PSA integration with Rewst, and pull back the list of companies you want to associate, the following permission scopes are needed:

System&#x20;

* &#x20;Member Maintenance: Set **Inquire** to **All**

Companies&#x20;

* Company Maintenance: Set **Inquire** to **All**&#x20;

{% hint style="danger" %}
If you are seeing a 403 Forbidden error when running workflows, this is due to incorrect permissions. Ensure that the above authentication requirements are complete to resolve this error.&#x20;
{% endhint %}

</details>

<details>

<summary>Additional action requirements</summary>

In addition to the above that’s required for authentication, there are several more actions the ConnectWise PSA integration is capable of taking within Rewst. To use them all, you’ll need the following additional security roles configured for this account:

**Companies**

* **Configurations**: Set **Add**, **Edit**, **Inquire** to **All**
* **Contacts**: Set **Add**, **Edit**, **Inquire** to **All**
* **Manage Attachments**: Set **Add**, **Edit**, and **Delete** to **My**, **Inquire** to **All**
* **Team Members**: Set **Inquire** to **All**

**Finance**&#x20;

* **Agreements**: Set **Inquire** to **All**
* **Billing View Time**: Set **Inquire** to **All**&#x20;
  * Required for adding billable time to tickets
* **Billing View Time**: Set **Edit** to **All**&#x20;
  * Required for adding billable time to tickets

**Project**

* **Project Ticket**: Set **Add**, **Edit**, **Inquire** to **All**
* **Project Ticket - Dependancies**: Set **Add**, **Edit**, **Inquire** to **All**
* **Close Project Tickets**: Set **Edit**, **Inquire** to **All**

**Service Desk**&#x20;

* **Service Tickets**: Set **Add**, **Edit**, **Inquire** to **All**
* **Service Ticket – Dependencies**: Set **Add**, **Edit**, **Inquire** to **All**
* **Close Service Tickets**: Set **Edit**, **Inquire** to **All**
* **Merge Tickets**: Set **Add**, **Edit**, **Inquire** to **All**

**System**&#x20;

* **My Account**: Set **Add**, **Edit**, **Delete**, **Inquire** to **My**
* **Table Setup**: Set **Add**, **Inquire** to **All** (Additional customization can be done to allow or disallow tables)

**Time & Expense**&#x20;

* **Time Entry**: Set **Add**, **Edit** and **Inquire** to **All**, **Delete** to **My**
* **Time Entry Billable Option**: Set **Add**, **Edit** and **Inquire** to **All**, **Delete** to **My**

</details>

<details>

<summary>Breakdown of actions per security role</summary>

The following tables outline the various actions the ConnectWise PSA integration can take within Rewst, grouped by their security roles in ConnectWise, and each of their required permission levels to be able to execute them in workflows. We also have a generic request action, that will require any relevant scopes for what it’s being used for. For more information on the ConnectWise API and its required permissions, please refer to the [Official ConnectWise API documentation](https://developer.connectwise.com/).

#### Companies

<table><thead><tr><th width="253">Actions</th><th width="286.3333333333333">API endpoint</th><th>Required permission</th></tr></thead><tbody><tr><td>List Companies</td><td>/company/companies</td><td>Inquire</td></tr><tr><td>Get Company</td><td>/company/companies/{id}</td><td>Inquire</td></tr><tr><td>List Communication Types</td><td>/company/communicationTypes</td><td>Inquire</td></tr><tr><td>List Contacts</td><td>/company/contacts</td><td>Inquire</td></tr><tr><td>Get Contact</td><td>/company/contacts/{id}</td><td>Inquire</td></tr><tr><td>Create Contact</td><td>/company/contacts</td><td>Add</td></tr></tbody></table>

#### Service Desk

<table><thead><tr><th width="260">Actions</th><th width="286.3333333333333">API endpoint</th><th>Required permission</th></tr></thead><tbody><tr><td>List Service Tickets</td><td>/service/tickets</td><td>Inquire</td></tr><tr><td>Get Service Ticket</td><td>/service/tickets/{id}</td><td>Inquire</td></tr><tr><td>Get Tasks</td><td>/service/tickets/{id}/tasks</td><td>Inquire</td></tr><tr><td>Create Task</td><td>/service/tickets/tasks/{id}</td><td>Add</td></tr><tr><td>Create Bulk Tasks</td><td>/service/tickets/tasks/bulk</td><td>Add</td></tr><tr><td>Update Task</td><td>/service/tickets/tasks/{id}</td><td>Edit</td></tr><tr><td>Update Service Ticket</td><td>/service/tickets/{id}</td><td>Edit</td></tr><tr><td>Create Service Ticket</td><td>/service/tickets</td><td>Add</td></tr></tbody></table>

#### Time and expense

<table><thead><tr><th width="265">Actions</th><th width="278.3333333333333">API endpoint</th><th>Required permission</th></tr></thead><tbody><tr><td>Add Time Entry</td><td>/time/entries</td><td>Add</td></tr></tbody></table>

#### Finance

<table><thead><tr><th width="267">Actions</th><th width="276.3333333333333">API endpoint</th><th>Required permission</th></tr></thead><tbody><tr><td>List Agreements</td><td>/finance/agreements</td><td>Inquire</td></tr></tbody></table>

</details>

## 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:

1. 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`).
2. Symbol - These define how you want to filter your incoming data. This can range from one-character symbols (eg: `=`), to entire words (eg: `contains`).
3. 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**

1. Easily locate companies by name
   1. Action: `List Companies`
   2. Query Condition: `name="Test Rewst"`
2. Organize tickets by board names for efficient processing
   1. Action: `List Service Tickets`
   2. Query Condition: `board/name="Integration"`
3. Target contacts based on communication preferences
   1. Action: `List Contacts`
   2. Child Condition: `communicationItems/value like "[john@Outlook.com](<mailto:john@Outlook.com>)" AND communicationItems/communicationType="Email"`

### **How to use symbols:**

* `=`: Matches exactly
* `!=`: Does not match
* `<, <=, >, >=`: Relational operators
* `contains, 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 "john@Outlook.com" 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

1. Log in to ConnectWise PSA.
2. Navigate to **System > Members**.
3. Click **API Members**. Here, you'll find settings specific to API interactions and configurations.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FWKQueCtXTz56vti5y4dW%2Fimage.png?alt=media&#x26;token=e9baa308-7ab9-47b8-b7e1-bffe737ccae4" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F70eYPAc4EqYVWe6VfwRF%2Fimage.png?alt=media&#x26;token=d1317f29-821a-4b2d-af17-94a1b2ceaccc" alt=""><figcaption></figcaption></figure>

5. After selecting the Rewst user:
   1. Navigate to the **API Logs** tab.&#x20;
   2. Click **Start Debug Mode**.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FzIlrp8N9jvpXCJXaZF2D%2Fimage.png?alt=media&#x26;token=190346d7-28ff-465b-bfe1-e8a0dc4fc802" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FVpMPY9ILpxxFPdNEN1K4%2Fimage.png?alt=media&#x26;token=b273e4d1-704f-4de9-ad5f-059d34c42df6" alt=""><figcaption></figcaption></figure>

7. Replicate the issue or process you are troubleshooting
8. Return to the **API Logs** tab.
9. 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

<table data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Bulk Create Client from PSA</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FLlr0ML0z3UqzOvIsp3Em%2FScreenshot%202025-06-17%20at%203.39.46%E2%80%AFPM.png?alt=media&#x26;token=db2a509f-099c-4324-bb43-c0d16a314543">Screenshot 2025-06-17 at 3.39.46 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/bulk-create-client-from-psa-crate">bulk-create-client-from-psa-crate</a></td></tr><tr><td><strong>OpenAI Ticket Categorization</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FQvWLRqtPdpI4AITi4Hbn%2FScreenshot%202025-06-17%20at%203.47.08%E2%80%AFPM.png?alt=media&#x26;token=d7845ce4-8c13-408b-a5b6-d667723a2156">Screenshot 2025-06-17 at 3.47.08 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/openai-ticket-categorisation-setup">openai-ticket-categorisation-setup</a></td></tr><tr><td><strong>PSA: Update ticket with User Onboard Links</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FmdkU71foVlkLtTllZCcZ%2FScreenshot%202025-11-11%20at%203.56.56%E2%80%AFPM.png?alt=media&#x26;token=161ab193-e246-4d28-9ba1-96da6786f5f6">Screenshot 2025-11-11 at 3.56.56 PM.png</a></td><td></td></tr><tr><td><strong>OpenAI Ticket Sentiment Analysis</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FkKYiBMGKPKxJGnyvOOSo%2FScreenshot%202025-06-17%20at%203.48.28%E2%80%AFPM.png?alt=media&#x26;token=1c0417de-a445-46d3-8a82-3696ecd9798d">Screenshot 2025-06-17 at 3.48.28 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/openai-ticket-sentiment-setup">openai-ticket-sentiment-setup</a></td></tr><tr><td><strong>CW PSA: Pod Technician Toolbox Crate V2</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FucSkqUtGXgY5R5YDUyvt%2FScreenshot%202025-06-17%20at%203.49.13%E2%80%AFPM.png?alt=media&#x26;token=fc976736-ba79-4695-96b3-71c1cd867ca8">Screenshot 2025-06-17 at 3.49.13 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/cwm-technician-toolbox-via-pod-1">cwm-technician-toolbox-via-pod-1</a></td></tr><tr><td><strong>PSA: Update ticket with User Offboard Links</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FHBCG0FCQACHrXBsiin60%2FScreenshot%202025-11-11%20at%203.56.13%E2%80%AFPM.png?alt=media&#x26;token=54f12658-7961-4aff-a852-8e7b55b19067">Screenshot 2025-11-11 at 3.56.13 PM.png</a></td><td></td></tr><tr><td><strong>Assign Asset/Config to Ticket Based on Contact</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FsoUhbEUm6ktpzP7Kn27k%2FScreenshot%202025-06-17%20at%203.50.15%E2%80%AFPM.png?alt=media&#x26;token=34d0edde-b681-40f0-98b0-771dd8fd0ef3">Screenshot 2025-06-17 at 3.50.15 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/assign-asset-config-to-ticket-based-on-contact-crate">assign-asset-config-to-ticket-based-on-contact-crate</a></td></tr><tr><td><strong>Use OpenAI to Suggest Responses to New Tickets</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FDjxC9gFOXcDQeiKgdGFB%2FScreenshot%202025-06-17%20at%203.51.29%E2%80%AFPM.png?alt=media&#x26;token=55802c12-4d6b-4efb-9670-58facc531410">Screenshot 2025-06-17 at 3.51.29 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/use-openai-to-suggest-responses-to-new-tickets-crate">use-openai-to-suggest-responses-to-new-tickets-crate</a></td></tr><tr><td><strong>Prompt to Combine Similar Tickets</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FnCjgAUw1RDHsEUN56kGa%2FScreenshot%202025-06-17%20at%203.51.04%E2%80%AFPM.png?alt=media&#x26;token=380bbfab-11c7-455b-8c9a-d98fa60ee741">Screenshot 2025-06-17 at 3.51.04 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/prompt-to-combine-similar-tickets-crate">prompt-to-combine-similar-tickets-crate</a></td></tr><tr><td><strong>Browse Rewst Form Triggers Within a Form and Attach to a Ticket</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FptF8RzDa4rpp6zgz5czQ%2FScreenshot%202025-06-17%20at%203.52.02%E2%80%AFPM.png?alt=media&#x26;token=dd87733f-deb8-4779-9459-dc2fe4a7a6d7">Screenshot 2025-06-17 at 3.52.02 PM.png</a></td><td></td></tr><tr><td><strong>ConnectWise PSA Agreement Mapping</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FrpcGOkRKZJv8gakaGnlV%2FScreenshot%202025-06-17%20at%203.52.20%E2%80%AFPM.png?alt=media&#x26;token=58826f53-34a4-4258-80d4-49f32e9b7f7f">Screenshot 2025-06-17 at 3.52.20 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/connectwise-psa-agreement-mapping">connectwise-psa-agreement-mapping</a></td></tr><tr><td><strong>Consolidate and Manage Duplicate Configurations</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fk9r6tUqpWT2GtHSp6Lkz%2FScreenshot%202025-06-17%20at%203.52.39%E2%80%AFPM.png?alt=media&#x26;token=9084ade6-35c8-4e85-a521-1ce8669f80b2">Screenshot 2025-06-17 at 3.52.39 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/consolidate-and-manage-duplicate-configurations-crate">consolidate-and-manage-duplicate-configurations-crate</a></td></tr><tr><td><strong>Sync AzureAD Account Information with ConnectWise PSA Contacts (V3)</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FFgdCrymYHExvThyIBVTc%2FScreenshot%202025-06-17%20at%203.53.00%E2%80%AFPM.png?alt=media&#x26;token=de4c2933-87f4-4b88-be3f-1814f3867aa7">Screenshot 2025-06-17 at 3.53.00 PM.png</a></td><td><a href="../../../crates/existing-crate-documentation/sync-azuread-account-information-with-connectwise-psa-contacts-v3-crate">sync-azuread-account-information-with-connectwise-psa-contacts-v3-crate</a></td></tr><tr><td><strong>Upload File to PSA Ticket</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FvJtlKTsUIJp9cFVTkuij%2FScreenshot%202025-06-17%20at%203.53.16%E2%80%AFPM.png?alt=media&#x26;token=670c8a53-6e26-4e3a-9b26-74a873399e76">Screenshot 2025-06-17 at 3.53.16 PM.png</a></td><td></td></tr><tr><td><strong>Configure CWM Agreement for Duo Sync</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FX9VyFuCIhCvNFFAt1thu%2FScreenshot%202025-06-17%20at%203.53.36%E2%80%AFPM.png?alt=media&#x26;token=265624c2-3007-44c6-acca-3d3171c45d7c">Screenshot 2025-06-17 at 3.53.36 PM.png</a></td><td></td></tr><tr><td><strong>Set ConnectWise PSA Board OnCall Member</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F99iE3JIotTRoJ1QceBxD%2FScreenshot%202025-06-17%20at%203.54.10%E2%80%AFPM.png?alt=media&#x26;token=422067ba-6f3f-459e-ad56-a2261923099d">Screenshot 2025-06-17 at 3.54.10 PM.png</a></td><td></td></tr><tr><td><strong>Deactivate ConnectWise PSA Contacts When Their Company is Deactivated</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F5gF6f5GhnjCquQ4Dgjyk%2FScreenshot%202025-06-17%20at%203.54.32%E2%80%AFPM.png?alt=media&#x26;token=265ecdec-d945-42d1-aa16-c497f37ffe70">Screenshot 2025-06-17 at 3.54.32 PM.png</a></td><td></td></tr><tr><td><strong>Sync On-Prem Users to CWM Contacts</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FI3tiGxjmoE0WSrx9nmE1%2FScreenshot%202025-06-17%20at%203.54.55%E2%80%AFPM.png?alt=media&#x26;token=90e931b3-4a55-462b-9cdd-d1fa29f544e4">Screenshot 2025-06-17 at 3.54.55 PM.png</a></td><td></td></tr><tr><td><strong>Mark CWM Overdue Tasks Complete</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FcUkjwzepj2TaHLffgt0g%2FScreenshot%202025-06-17%20at%203.55.21%E2%80%AFPM.png?alt=media&#x26;token=fbcc673f-2f40-4f2e-a43f-6acd39c437ac">Screenshot 2025-06-17 at 3.55.21 PM.png</a></td><td></td></tr><tr><td><strong>Sync VIP Contact Status to ITG Status</strong></td><td><a href="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2Fg3pkI2bPzwVY8ksIn7Ry%2FScreenshot%202025-06-17%20at%203.55.39%E2%80%AFPM.png?alt=media&#x26;token=bb18d0d4-2725-47d0-a5fa-2d0eb3e78dd1">Screenshot 2025-06-17 at 3.55.39 PM.png</a></td><td></td></tr></tbody></table>

{% hint style="success" %}
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](https://rewst.canny.io/integrations).
{% endhint %}
