Skip to main content

Autotask Integration

Overview

Autotask is a Professional Services Automation (PSA) platform that IT MSPs use to manage customers, service tickets, time entries, contracts, invoices, projects, and assets. Connecting Autotask to Hatz lets your AI assistants read and update that PSA data directly from a Hatz conversation or workflow.

Unlike the read-only PSA customer sync used by Sell-AI, this integration covers the full service-desk and billing surface and can make changes back to Autotask — always behind an explicit, reviewable confirmation step.

How the integration works

Hatz connects to Autotask through a Model Context Protocol (MCP) server that Hatz hosts and maintains. It talks to the standard Autotask REST API on your behalf, using a dedicated Autotask API user that you create. The API user's security level is the ceiling on everything Hatz can see or do — Hatz never has more access than that user.

This is an API-user (service-account style) connection rather than a per-user sign-in. An administrator connects Autotask once with a single API user, and the assistants and workflows that are allowed to use the tool then share that connection. For more on how connection ownership works, see How integration access and connection ownership works.

What you can do with it

  • Triage and report on the service desk — for example, count or list open tickets by customer, priority, or date range.

  • Look up customer, contact, contract, and invoice details in conversation.

  • Log billable time against a ticket or project.

  • Open new tickets or update existing ones, including notes and status changes.

  • Export a filtered dataset — such as every completed ticket for a customer year-to-date — for analysis in a spreadsheet.

Example things to ask

  • "How many tickets did the service desk close last week?"

  • "Show me open, high-priority tickets for Contoso."

  • "Log 45 minutes against ticket 18420 for troubleshooting the VPN."

  • "Open a high-priority ticket for Northwind about their printer outage."

  • "Which contracts expire in the next 60 days?"

  • "Export every time entry for the Acme migration project this quarter."

Prerequisites

Before you begin, make sure you have:

  • An Autotask administrator who can create API users and security levels.

  • Access to the Hatz Workshop and Connections section.

Step 1: Decide what access to grant

Because this integration can both read and update Autotask, scope the API user's security level to the least access your team actually needs. The security level is the ceiling on everything Hatz can do.

  • For read-only use (reporting, lookups), grant View access only on the areas you care about, such as Companies, Contacts, Tickets, and Time Entries.

  • To let Hatz make changes (for example, log time or open tickets), grant Add and Edit on those same areas.

Hatz recommends creating a dedicated security level for this purpose rather than reusing a broad administrative one.

Step 2: Create an API user in Autotask

  1. In Autotask, go to AdminAccount Settings & UsersResources/Users (HR)Resources/Users.

  2. Right-click in the resource list and select New API User.

  3. Enter a descriptive first and last name (for example, Hatz and Integration) and a monitored email address. Assign the security level you prepared in Step 1.

  4. In the API Tracking Identifier section, select Integration Vendor, then Custom (Internal Integration).

  5. Click Save & Close.

Autotask then displays three values once: the Username (Key), the Password (Secret), and the API Integration Code. Record all three in a secure location such as a password manager before closing the dialog — the secret is shown only once and must be regenerated if lost.

Step 3: Connect Autotask in Hatz

  1. In Hatz, open Workshop and select Connections from the left menu.

  2. Find Autotask in the list of available integrations, click Add, then Connect Autotask.

  3. Enter the following values:

    • API Username — the Username (Key) from Step 2.

    • API Secret — the Password (Secret) from Step 2.

    • API Integration Code — the API Integration Code from Step 2.

    • Zone URL (advanced) — leave blank. Hatz detects your Autotask region automatically. Enter a value only for a sandbox or test environment.

  4. Click Connect.

Hatz validates the credentials against Autotask immediately by resolving your region and running a quick read. Once it succeeds, Autotask is available to your assistants and workflows.

Tools available after connecting

Once connected, your Hatz assistants can use a small set of general-purpose tools that work across all Autotask record types — companies, contacts, tickets, time entries, contracts, invoices, projects, and assets:

Tool

What it does

autotask_list_entities

Browse the Autotask record types, grouped by area, so the assistant can find the right one.

autotask_describe

Look up the fields, valid values, and relationships for a record type before reading or changing it.

autotask_search

Find records that match filters — for example, open tickets for a customer this week. Can also export larger result sets for analysis.

autotask_get

Open a single record by its ID, optionally with related items such as a ticket's notes and time entries.

autotask_who_am_i

Identify the connected Autotask user so requests like "my open tickets" resolve correctly.

autotask_plan_change

Prepare a create, update, or delete and return a preview of exactly what will change, for your review.

autotask_apply_change

Carry out a change you have reviewed and confirmed. Nothing is written to Autotask until this step.

How changes are made safely

Reads happen directly. For any change, Hatz uses a two-step "plan then apply" pattern:

  • First, Hatz prepares the change and shows you a preview — a short summary plus a field-by-field view of what will change.

  • Nothing is written to Autotask until you confirm. If the record was edited by someone else in the meantime, Hatz rejects the now-outdated change and re-checks, so you never overwrite a recent edit by accident.

Limits to be aware of

  • Hatz only changes the fields you ask it to. It never blanks out fields you did not mention.

  • Deleting a record always requires an explicit confirmation.

  • For safety, Hatz will not create or modify tenant-wide administrative records such as users, roles, departments, or organizational structure. Manage those directly in Autotask.

  • Everything Hatz can read or write is bounded by the API user's security level.

Troubleshooting

"Autotask did not recognize that API user."

Autotask's region lookup returned a "not found" response, meaning the API Username does not match an Autotask tenant. Confirm you entered the exact Username (Key) generated when the API user was created — not the email address on the user.

"I only received a username and secret, not an integration code."

Reopen the API user record, set the API Tracking Identifier section to Integration VendorCustom (Internal Integration), and record the generated API Integration Code. The username and secret alone are not enough to complete the connection.

"Autotask rejected the credentials."

Autotask returned an authorization error. Check, in order: the API Secret is an exact, case-sensitive copy of the value shown at creation with no extra spaces; the Integration Code matches the one on the API user record; and the security level grants the access being attempted (View for reads, plus Add/Edit for changes).

"Thread threshold exceeded."

Autotask limits how many requests one API user can run at the same time. Wait a minute and retry, and avoid sharing the same API user with other busy integrations.

A change was rejected as out of date.

The record changed in Autotask after Hatz showed you the preview. Ask again to generate a fresh preview against the current state, then confirm.

Data and security

  • Credentials are encrypted at rest.

  • Hatz acts only with the permissions of the API user you create — scope it to least privilege.

  • Every write is previewed and confirmed before it is applied; reads never change your data.

Did this answer your question?