# Autotask PSA integration

{% hint style="info" %}
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 Autotask PSA integration do?

Our Autotask PSA integration enables seamless synchronization of ticketing, client data, and service management workflows between Autotask PSA and Rewst. It allows MSPs to automate repetitive tasks like ticket creation, status updates, and client information syncing, reducing manual effort and improving operational efficiency.

### Why use the Autotask PSA integration?

#### Automate ticket creation

A critical server outage alert is triggered in your RMM tool. Rewst detects the alert, and **creates a high-priority ticket in** Autotask PSA with details like impacted client, server ID, and error logs. It assigns the ticket to the infrastructure Team based on the ticket category, and triggers a Slack or Teams alert to the assigned team with a direct link to the Autotask PSA ticket.

#### Contract renewal automation

A client’s managed services contract is nearing expiration in Autotask PSA. Rewst identifies expiring contracts and triggers a renewal workflow. It generates a quote in Autotask PSA, emails it to the client, schedules a follow-up task for the account manager, and updates the contract status to **Renewal Pending** in Autotask PSA.

#### Client onboarding and offboarding

A new client signs up for managed services. Rewst creates the client’s Autotask PSA account, assigns contracts, and configures service templates. It provisions user accounts in Microsoft 365 or Google Workspace via integrated workflows, then triggers an onboarding checklist for the service team in Autotask PSA.

#### Asset and configuration management

A new firewall is deployed, Rewst **creates a configuration item (CI) in** Autotask PSA with details like serial number, warranty date, and network role, then links the CI to the client’s Autotask PSA profile and updates your documentation platform (eg. IT Glue documentation), and schedules warranty renewal reminders in Autotask PSA.

## Set up the Autotask PSA integration

### Set up steps in Autotask PSA

1. Log into Autotask PSA as an Administrator
2. Navigate to **Admin > Account Settings & Users.**
3. Click to expand the **Resources/Users (HR)** accordion menu.
4. Scroll down the page to the **Security** menu. Click **Security Levels**. Here there should be an API user with the security level of **system.** It has the appropriate administrator privileges to allow for the full functionality of the automations. Datto’s own documentation about this system security level can be found [here](https://ww1.autotask.net/help/content/4_Admin/1CompanySettings_Users/ResourcesUsersHR/Resources/API_User_Add_Edit.htm).
5. Hover over <img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F90EBTi8h2D9PHxq8MBjK%2FScreenshot%202025-03-31%20at%204.34.56%E2%80%AFPM.png?alt=media&#x26;token=8898c2eb-fe80-47db-9105-045bea91f97f" alt="" data-size="line"> to the right of the API user. Click **Copy** in the dialog that appears. This will open a new tab in your browser.
6. Enter a descriptive name which includes Rewst in the text in the **Name** field.
7. Scroll down and expand the **Other** accordion menu. Ensure that the **can create webhooks** box is checked on, and the **maximum number of webhooks** is set to `50`.\ <br>

   <figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FvK72sPezJ4Ymwyvzle4s%2FScreenshot%202025-03-31%20at%204.40.22%E2%80%AFPM.png?alt=media&#x26;token=3ce283a3-9c7a-4b2b-80c2-6020ae49b5d6" alt=""><figcaption></figcaption></figure>
8. Click **Save**.
9. Navigate to **Commonly Used >** **Resources (Users)**. Click **⌄** to expand the **+New** drop down selector.&#x20;
10. Click **New API User**. This will open a new browser tab.\
    \
    ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FmskxifnZbkNu4NbejL0H%2FCleanShot%202025-03-18%20at%2013.28.43.jpg?alt=media\&token=6cc03cb9-775d-4f8e-bfbf-84d3ec61ba3d)
11. Enter the following information into the relevant fields in the **General** menu:
    1. **First Name**
    2. **Last Name**
    3. **Email Address**
    4. **Security Level**: use the level you created or cloned in step 3
    5. **Primary Internal Location**\
       \
       ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FG3yahPISquNeo3LK5jj8%2FCleanShot%202025-03-18%20at%2013.40.11.jpg?alt=media\&token=87f1d2f7-397f-4a19-a0fd-aec94f73c6fd)
12. Scroll down to the **Credentials** submenu. Click **Generate Key**. Click **Generate Secret**. Copy both results into a secure location. You’ll need this information for continued setup steps in Rewst.\
    \
    ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FkTst9OUMUrbK1IHDA0xJ%2FCleanShot%202025-03-18%20at%2013.41.05.jpg?alt=media\&token=0075a361-6610-4ad5-9c69-755d424ed432)
13. Select **Integration Vendor** under the **API Tracking Identifier** submenu. Select **Rewst - Automation** from the **Integration Vendor** drop down selector.\
    \
    ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FOQSdjPGCSWt9BdVSS9L1%2FCleanShot%202025-03-18%20at%2013.54.48%20\(1\).jpg?alt=media\&token=84c2e3ef-cee2-4568-a821-21667ec27e1a)
14. Note your API Username with the format `APIUser@example.com`, and API URL: for example, `https://ww2.autotask.net...` .
15. Click **Save & Close**.

{% hint style="danger" %}
Before saving and closing the API user page, copy the Secret Key and Username . The secret key won't be displayed again, once saved.
{% endhint %}

### Set up steps in Rewst

1. Navigate to **Marketplace > Integrations** in the left side menu of your Rewst platform.
2. Search for Autotask PSA in the integrations page.
3. Click on the integration tile to launch the configuration setup page.\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FtfPV4Os6t1KJ866heMBr%2FCleanShot%202025-03-18%20at%2013.42.07.jpg?alt=media\&token=d3876bd2-e171-4b0b-b68b-fa0537befd15)
4. Name the configuration with a definitive name such as `Rewst Autotask PSA integration`.
5. Enter the API credentials copied from Datto into the relevant fields:
   1. **Platform**: `https://ww2.autotask.net`
      1. Choose your zone of residence from the drop-down selector.
      2. This can also be referenced in your Autotask PSA URL.
   2. **Username (Key)**: `APIUser@example.com`
   3. **API User Password**: `[Paste Secret Key]`&#x20;
6. Click **Save**.&#x20;
7. 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%2F8ppaOX8CFQUswoSiaQhm%2FScreenshot%202025-04-04%20at%201.08.48%E2%80%AFPM.png?alt=media&#x26;token=c136baea-c0c3-4b55-82cf-242a934d2860" alt=""><figcaption></figcaption></figure>
8. Note the **company Filter** section at the bottom of the configuration page. Click ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FyCxFMPg9Y0CdnSACizFa%2FScreenshot%202025-03-26%20at%2011.10.58%E2%80%AFAM.png?alt=media\&token=f0cfb3c2-ec45-4821-b622-9065f9719966)to create a new company filter. This will display a new submenu of options.
   1. **Filter**: Choose what you would like filtered from the drop-down selector.
   2. **Operation**: Choose which operation you would like to use.
   3. **Value**: This must be an integer. The below guide is an example for how this may be used.

{% hint style="info" %}
**Accepted company type values**

Ensure you enter the number for the company type you would like to filter on.

```
1 = Customer
2 = Lead
3 = Prospect
4 = Dead
6 = Cancelation
7 = Vendor
8 = Partner
```

{% endhint %}

{% hint style="danger" %}
If there are too many customers in the query, you may experience long loading times when refreshing options. If this is the case, you can make use of the page filters to make the list of customers smaller.&#x20;
{% endhint %}

## Test the integration

1. Navigate to **Automation > Workflows** in Rewst.
2. Create a new workflow and name it with something short and descriptive, such as `Test Autotask PSA Integration`.
3. Drag and drop the action **List Companies** from the left actions menu to the workflow builder canvas.
4. Click <img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FTlHXIe1WogVza7RGV21F%2FScreenshot%202025-02-21%20at%2011.13.39%E2%80%AFAM.png?alt=media&#x26;token=eaf6b0b4-69f6-4f6c-b1eb-0200e0711199" alt="" data-size="line"> to add a trigger to your workflow.
5. Name your trigger whatever you’d like.
6. Click into the trigger’s settings.
7. Toggle **Enabled** to on.\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FDWxdeCtFVnTfv10DWCES%2FCleanShot%202025-03-18%20at%2017.44.00.jpg?alt=media\&token=01baa495-a32e-4123-b488-c45808cc4bd0)
8. Set the **Trigger Type** to **Core - Always Pass**.
9. Click **+** next to **Integration Overrides**. Add **Autotask PSA** as your integration override.\
   \
   ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FEG6YD4B1u9QQfwdpMqej%2FCleanShot%202025-03-18%20at%2017.45.35.jpg?alt=media\&token=8dcf2670-b775-4f52-82a8-f661cee748cd)
10. In the **Activate Trigger To Run For** section, keep **Selected Organization** toggled on. Toggle **All current and future managed organizations** on, choose just one, or individually select organizations from the **Organizations** drop-down selector.\
    \
    ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FcR87tkCZGtiKoHkpIBTm%2FCleanShot%202025-03-18%20at%2017.52.21.jpg?alt=media\&token=52d590bf-19e7-491e-bc78-72b735b0d7ed)
11. Click **Submit** to save your trigger.
12. Click **Publish** to save your changes.
13. Click Test to run your workflow. Note that this will bring up a drop-down selector to choosing organizations.
14. Select your MSP level.
15. Click **Test** and confirm that the execution finishes without errors.\
    \
    ![](https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2F8OYC4OoZq6UpsSmPtNTl%2FCleanShot%202025-03-18%20at%2017.53.50.jpg?alt=media\&token=bc090c12-8597-4f00-873a-9a3fa7fa334d)
16. If the test for your MSP is successful, do the same test again. At this point in your steps, select a client organization instead, and ensure that it finishes with no errors.

## Crates related to the Autotask PSA integration

To see an up-to-date list of Crates that can be unpacked after completing Autotask PSA integration, navigate to **Crates > Crate Marketplace** in the left side menu of your Rewst platform.

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FLS1IevTlX0uAR5zzmIaK%2FScreenshot%202025-11-13%20at%2012.33.25%E2%80%AFPM.png?alt=media&#x26;token=eaf2d5fb-b53b-4444-9cbd-e03f47f7b6f5" alt=""><figcaption></figcaption></figure>

Click **Filter** to expand the filter menu. Enter **Autotask PSA** into the **Integrations** field, and watch Rewst filter down to just the Crates that relate to that integration. Any other prerequisites for the Crate will be listed in the right side of that Crate's details page.&#x20;

<figure><img src="https://1835401289-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAQQ1EHVcEsGKBPVHmiav%2Fuploads%2FGldg2i3cZRUJIf2Zacfk%2FScreenshot%202025-11-13%20at%2012.39.02%E2%80%AFPM.png?alt=media&#x26;token=b422de56-f840-4f9e-9589-25dc4f08fc4e" alt="" width="131"><figcaption></figcaption></figure>

## Webhook setup for triggers

By default, the Autotask PSA API User system security level does not have permission to create company webhooks. When you configure a trigger in the Rewst platform, you'll receive an error message stating that the webhook could not be created. To resolve this, you'll need to create a new security level by doing the following:

1. Log in to Autotask PSA.
2. Navigate to **Admin > Account Settings & Users**.
3. Click **Security Levels** on the **Resources / Users (HR)** tab.
4. Find the **API User (system) (API-only)** security level on the context menu.
5. Select **Copy**.
6. Scroll down to the **Other** tab.
7. Check the checkbox for **Create Company Webhooks**.
8. Enter a number. Each trigger will require at least one webhook.
9. Click **Save**.  &#x20;
10. Edit the user you are using to authorize Rewst and set it to this new security level.

{% hint style="success" %}
With this, you should now be able to create webhooks in Rewst. This will happen automatically when you create a trigger such as `Datto - Ticket Record Saved`.
{% endhint %}

## Triggers for the Autotask PSA integration

<table><thead><tr><th width="373">Trigger</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>stale_ticket_sensor</td><td>Polling</td><td>Triggers a workflow when a new ticket is created</td></tr><tr><td>Company Webhook</td><td>Webhook</td><td>Creates a webhook enables you to subscribe to notifications for events that take place in Autotask.</td></tr><tr><td>Configuration Item Webhook</td><td>Webhook</td><td>Creates a webhook enables you to subscribe to notifications for events that take place in Autotask.</td></tr><tr><td>Contact Webhook</td><td>Webhook</td><td>Creates a webhook enables you to subscribe to notifications for events that take place in Autotask.</td></tr><tr><td>Ticket Note Webhook</td><td>Webhook</td><td>Creates a webhook enables you to subscribe to notifications for events that take place in Autotask.</td></tr><tr><td>Ticket Webhook</td><td>Webhook</td><td>Creates a webhook enables you to subscribe to notifications for events that take place in Autotask.</td></tr></tbody></table>

## Troubleshoot the Autotask PSA integration

{% hint style="info" %}
Click on any of the issues below to expand and view the solution. If you issue isn’t included below, please contact Rewst support in your dedicated support Discord channel.
{% endhint %}

<details>

<summary>Authentication errors</summary>

* Confirm that your API credentials are entered correctly.
* Ensure that the Autotask PSA user has the **API User** role.

</details>

<details>

<summary>Missing ticket data</summary>

* Verify the ticket exists in Autotask PSA and matches query filters.
* Check API permissions for the resource account.

</details>

<details>

<summary>API rate limits</summary>

Autotask PSA enforces API call limits. Use Rewst’s error handling to retry failed requests.

</details>

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

## Autotask PSA actions and endpoints

{% hint style="info" %}
For more on how actions work in Rewst, check out our [introductory actions documentation here](https://docs.rewst.help/documentation/workflows/actions-in-rewst).&#x20;
{% endhint %}

For details on Autotask’s API documentation, refer to their [official documentation](https://ww2.autotask.net/help/developerhelp/Content/0_HOME/HOME.htm).

| Action name                      | Description                                           | Endpoint                                         |
| -------------------------------- | ----------------------------------------------------- | ------------------------------------------------ |
| API Version Info                 | Retrieves API version information                     | `GET /VersionInformation`                        |
| List Companies                   | Retrieves companies by query/search criteria          | `POST /V1.0/Companies/query`                     |
| Get Company                      | Fetches details of a specific company                 | `GET /V1.0/Companies/{id}`                       |
| Create Company                   | Creates a new company                                 | `POST /V1.0/Companies`                           |
| Update Company                   | Updates existing company information                  | `PATCH /V1.0/Companies`                          |
| List Configuration Item Webhooks | Retrieves webhooks for configuration items            | `POST /V1.0/ConfigurationItemWebhooks/query`     |
| List Contacts                    | Retrieves contacts based on filters/query             | `POST /V1.0/Contacts/query`                      |
| Get Contact                      | Fetches details of a specific contact                 | `GET /V1.0/Contacts/{contact_id}`                |
| Create Contact                   | Adds a new contact to a company                       | `POST /V1.0/Companies/{company_id}/Contacts`     |
| Update Contact                   | Updates existing contact details                      | `PATCH /V1.0/Companies/{company_id}/Contacts`    |
| List Contracts                   | Retrieves contracts based on criteria                 | `POST /V1.0/Contracts/query`                     |
| Get Contract                     | Fetches a specific contract                           | `GET /V1.0/Contracts/{id}`                       |
| Create Contract                  | Creates a new contract                                | `POST /V1.0/Contracts`                           |
| Update Contract                  | Updates an existing contract                          | `PATCH /V1.0/Contracts`                          |
| List Documents                   | Retrieves documents based on filters/query            | `POST /V1.0/Documents/query`                     |
| Get Document                     | Retrieves specific document details                   | `GET /V1.0/Documents/{id}`                       |
| Create Document Attachment       | Adds attachment to a document                         | `POST /V1.0/Documents/{document_id}/attachments` |
| Generic Datto PSA API Request    | Performs generic authenticated API requests           | `GET /<url_path>`                                |
| List Phases on Project           | Lists project phases                                  | `GET /V1.0/Projects/{projectId}/Phases`          |
| Create Project                   | Adds a new project                                    | `POST /V1.0/Projects`                            |
| Update Project                   | Updates existing project details                      | `PATCH /V1.0/Projects`                           |
| Get Project                      | Retrieves project details                             | `GET /V1.0/Projects/{id}`                        |
| List Resources                   | Retrieves resources based on filters/query            | `POST /V1.0/Resources/query`                     |
| Get Resource                     | Fetches details of a specific resource                | `GET /V1.0/Resources/{id}`                       |
| List Surveys                     | Retrieves surveys based on criteria                   | `POST /V1.0/Surveys/query`                       |
| Get Survey                       | Retrieves details of a specific survey                | `GET /V1.0/Surveys/{id}`                         |
| List Tasks on Project            | Lists tasks associated with a project                 | `GET /V1.0/Projects/{projectId}/Tasks`           |
| Create Task on Project           | Creates a new task for a specific project             | `POST /V1.0/Projects/{projectId}/Tasks`          |
| List Ticket Categories           | Retrieves ticket categories                           | `POST /V1.0/TicketCategories/query`              |
| Get Ticket Category              | Fetches details of a specific ticket category         | `GET /V1.0/TicketCategories/{id}`                |
| List Ticket Notes                | Retrieves ticket notes                                | `POST /V1.0/TicketNotes/query`                   |
| Create Ticket Note               | Adds a note to a ticket                               | `POST /V1.0/Tickets/{parentId}/Notes`            |
| Update Ticket Note               | Updates a specific ticket note                        | `PATCH /V1.0/Tickets/{ticketId}/Notes`           |
| List Tickets                     | Retrieves tickets based on filters/query              | `POST /V1.0/Tickets/query`                       |
| Get Ticket                       | Retrieves specific ticket details                     | `GET /V1.0/Tickets/{id}`                         |
| Create Ticket                    | Creates a new ticket                                  | `POST /V1.0/Tickets`                             |
| Update Ticket                    | Updates an existing ticket                            | `PATCH /V1.0/Tickets`                            |
| List Time Entries                | Retrieves time entries                                | `POST /V1.0/TimeEntries/query`                   |
| Get Time Entry                   | Fetches details of a specific time entry              | `GET /V1.0/TimeEntries/{id}`                     |
| Create Time Entry                | Creates a new time entry                              | `POST /V1.0/TimeEntries`                         |
| Update Time Entry                | Updates existing time entry                           | `PATCH /V1.0/TimeEntries`                        |
| List Webhook Event Error Logs    | Retrieves webhook event error logs                    | `POST /V1.0/WebhookEventErrorLogs/query`         |
| Get Webhook Event Error Log      | Fetches details of a specific webhook event error log | `GET /V1.0/WebhookEventErrorLogs/{id}`           |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rewst.help/documentation/integrations/integration-guides/datto-psa-integration-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
