---
title: Autotask API Integration on Truto
slug: autotask
category: Ticketing
canonical: "https://truto.one/integrations/detail/autotask/"
---

# Autotask API Integration on Truto



**Category:** Ticketing  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 37 tools for Autotask that AI agents can call directly.

- **list_all_autotask_tickets** — Search Autotask Tickets using a JSON filter query. Returns Ticket objects including id, ticketNumber, title, description, status, priority, queueID, companyID, contactID, assignedResourceID, ticketType, issueType, dueDateTime, createDate, completedDate, lastActivityDate, resolution and userDefinedFields. The request body accepts a filter with operators such as eq, gte, contains, in, and grouping with and/or.
- **get_single_autotask_ticket_by_id** — Retrieve a single Autotask Ticket by its id. Returns the full Ticket object including status, priority, assignment, dates, resolution and user-defined fields.
- **autotask_tickets_count** — Count Autotask Tickets matching a JSON filter query, without returning the records. Use the same filter syntax as the ticket list. Returns queryCount.
- **create_a_autotask_ticket** — Create a Ticket in Autotask. Fields are sent at the top level of the request body (Autotask does not use a wrapper object). Required: title, companyID, status, priority, and either queueID or assignedResourceID. Returns the created ticket id.
- **update_a_autotask_ticket_by_id** — Fully update an Autotask Ticket (HTTP PUT). Include the ticket id plus every field you want to persist — fields omitted from a PUT may be cleared. Use partial_update (PATCH) to change only selected fields.
- **autotask_tickets_partial_update** — Partially update an Autotask Ticket (HTTP PATCH). Send the ticket id plus only the fields you want to change; all other fields are left untouched. This is the safer option for routine updates such as changing status or reassigning.
- **list_all_autotask_ticket_notes** — Search Autotask TicketNotes using a JSON filter query. Returns: id, description, title, ticketID, noteType, publish, createDateTime, lastActivityDate, createdByContactID, creatorResourceID, impersonatorCreatorResourceID, impersonatorUpdaterResourceID, userDefinedFields. The request body accepts a filter with operators such as eq, gte, and grouping with and/or.
- **get_single_autotask_ticket_note_by_id** — Get a single Autotask TicketNote by id. Returns: id, description, title, ticketID, noteType, publish, createDateTime, lastActivityDate, createdByContactID, creatorResourceID, impersonatorCreatorResourceID, impersonatorUpdaterResourceID, userDefinedFields. Required: id.
- **autotask_ticket_notes_count** — Count the total number of TicketNotes records in Autotask matching a given filter. Returns the matching record count as an integer. Required: filter.
- **create_a_autotask_ticket_note** — Create a note on an Autotask ticket. Returns the created ticket note including its id, title, description, createdDateTime, and lastModifiedDateTime. Required: ticket_id.
- **autotask_ticket_notes_partial_update** — Partially update a ticket note belonging to a specific Autotask ticket. Returns the updated note object including id, description, and title. Required: ticket_id.
- **list_all_autotask_companies** — List Autotask organizations (Companies) using filter expressions sent as a POST body. Returns: id, companyName, companyNumber, companyType, companyCategoryID, isActive, createDate, createdByResourceID, lastActivityDate, lastTrackedModifiedDateTime, phone, alternatePhone1, alternatePhone2, fax, address1, address2, city, state, postalCode, countryID, additionalAddressInformation, webAddress,…
- **get_single_autotask_company_by_id** — Get a single Autotask company (organization) by id. Returns the full organization record including companyName, companyType, isActive, address fields, phone, webAddress, billing and tax settings, ownerResourceID, parentCompanyID, and audit timestamps. Required: id.
- **autotask_companies_count** — Count the total number of Autotask companies (organizations) matching a filter. Returns: count. Accepts a filter array in the request body whose entries use op, field, and value properties; when no filter is supplied, counts all company records.
- **create_a_autotask_company** — Create a new organization (Company) in Autotask. Returns the created company object including id, companyName, companyType, isActive, createDate, and all address, billing, and configuration fields. Required: companyName, companyType. The billToAddressToUse field defaults to "Use Organization Address" on create and any billing address values provided are ignored.
- **update_a_autotask_company_by_id** — Update an existing Autotask company (organization) by submitting the full entity with modified fields. Returns: itemId. Required: id, companyName, companyType. companyType cannot be updated when isTaskFireActive is True, or changed from vendor if the organization has existing services.
- **autotask_companies_partial_update** — Partially update an Autotask company by submitting only the fields to change. Returns the updated company object including id, companyName, companyType, isActive, and phone. Required: id (company identifier in the request body).
- **list_all_autotask_contacts** — List Autotask contacts using filter expressions in the POST body. Returns each contact with id, firstName, lastName, emailAddress, companyID, isActive, createDate, userDefinedFields, and additional address, phone, and social media fields.
- **get_single_autotask_contact_by_id** — Get a single Autotask contact by id. Returns: id, firstName, lastName, middleInitial, namePrefix, nameSuffix, title, emailAddress, emailAddress2, emailAddress3, phone, alternatePhone, mobilePhone, faxNumber, extension, companyID, companylocationID, countryID, addressLine, addressLine1, city, state, zipCode, additionalAddressInformation, roomNumber, facebookUrl, linkedInUrl, twitterUrl, isActive,…
- **autotask_contacts_count** — Count Autotask contacts matching filter expressions in the POST body. Returns: count.
- **create_a_autotask_contact** — Create a new contact associated with an Autotask company. Returns the created contact including id, firstName, lastName, emailAddress, companyID, isActive, createDate, and all contact detail fields. Required: company_id, firstName, lastName, isActive.
- **autotask_contacts_partial_update** — Partially update an existing Autotask contact by providing only the fields to change. Returns the updated contact including id, firstName, lastName, emailAddress, companyID, isActive, lastModifiedDate, and all contact detail fields. Required: company_id, id.
- **list_all_autotask_autotask_resources** — Search Autotask Resources (staff users such as technicians and account managers) using a JSON filter query. Returns Resource objects including id, userName, firstName, lastName, email, isActive, resourceType, licenseType, title, phone numbers, locationID and defaultServiceDeskRoleID. Use this to look up the assignedResourceID needed when creating or assigning tickets.
- **get_single_autotask_autotask_resource_by_id** — Get a single Autotask resource (internal staff member) by id. Returns: id, firstName, lastName, email, hireDate, homePhone, gender, and additional contact and HR fields. Required: id.
- **autotask_autotask_resources_count** — Count the number of Autotask Resources records matching a filter expression sent in the request body. Returns the total record count as an integer. Required: filter.
- **list_all_autotask_ticket_fields** — List field metadata for the Tickets entity in Autotask, including each field's name, data type, length, required/readonly/queryable flags, reference and picklist configuration, and webhook support. Returns: name, dataType, length, isRequired, isReadOnly, isQueryable, isReference, referenceEntityType, isPickList, picklistValues, picklistParentValueField, isSupportedWebhookField.
- **autotask_ticket_fields_list_user_defined** — List the user-defined (custom) field definitions available on the Autotask Ticket entity. Returns each UDF with its name, label, data type, whether it is required or read-only, and any picklist values. Use this to discover which entries are valid inside the userDefinedFields array when creating or updating a ticket.
- **autotask_ticket_fields_get_entity_information** — Get entity information for the Autotask Tickets entity, including its CRUD capabilities, user access levels, and feature support. Returns: name, canCreate, canDelete, canQuery, canUpdate, userAccessForCreate, userAccessForDelete, userAccessForQuery, userAccessForUpdate, hasUserDefinedFields, supportsWebhookCallouts.
- **list_all_autotask_ticket_webhooks** — List Autotask ticket webhooks by sending a POST query with filter expressions. Returns each webhook with id, Name, IsActive, WebhookUrl, DeactivationUrl, SecretKey, and additional configuration fields.
- **get_single_autotask_ticket_webhook_by_id** — Get a single Autotask ticket webhook by id. Returns: id, IsActive, DeactivationUrl, IsReady, IsSubscribedToCreateEvents, IsSubscribedToDeleteEvents, IsSubscribedToUpdateEvents, Name, NotificationEmailAddress, OwnerResourceID, SecretKey, SendThresholdExceededNotification, WebhookGUID, WebhookUrl. Required: id.
- **autotask_ticket_webhooks_count** — Count Autotask ticket webhooks matching a POST query filter. Returns the total record count as an integer.
- **create_a_autotask_ticket_webhook** — Create a new Autotask ticket webhook. Returns the full webhook object including id, IsActive, Name, WebhookUrl, IsReady, and WebhookGUID. Required: Name, WebhookUrl, DeactivationUrl, SecretKey, IsActive, SendThresholdExceededNotification.
- **update_a_autotask_ticket_webhook_by_id** — Update an existing Autotask ticket webhook. Returns the full webhook object including id, IsActive, Name, WebhookUrl, IsReady, and WebhookGUID. Required: id, Name, WebhookUrl, DeactivationUrl, SecretKey, IsActive, SendThresholdExceededNotification.
- **autotask_ticket_webhooks_partial_update** — Partially update a Ticket Webhook configuration in Autotask by sending only the changed fields in the request body. Returns the updated webhook object including id, Name, WebhookUrl, IsActive, SecretKey, DeactivationUrl, IsReady, WebhookGUID, and OwnerResourceID. Required: id.
- **delete_a_autotask_ticket_webhook_by_id** — Delete an Autotask ticket webhook by id. Returns an empty 204 response on success. Required: id.
- **list_all_autotask_ticket_webhook_fields** — Query Autotask ticket webhook fields using a POST filter expression to retrieve fields that trigger callouts or are included in webhook payloads. Returns: id, FieldID, IsDisplayAlwaysField, IsSubscribedField, WebhookID. The request body accepts a filter array of conditions; a default filter is applied if none is supplied.
- **autotask_ticket_webhook_fields_count** — Count the number of TicketWebhookFields records in Autotask that match a given filter expression. Returns the total record count for the specified filter. Accepts a POST body containing filter conditions with comparison operators (eq, gte, and, or) to narrow the count.

## How it works

1. **Link your customer's Autotask account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Autotask.** The Proxy API is a 1-to-1 mapping of the Autotask API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Ship an Autotask integration your MSP customers demand** — MSPs live inside Autotask. Any B2B SaaS selling into the IT channel needs a native Autotask integration or technicians won't adopt the tool. Truto lets you ship it in days instead of quarters.
- **Convert security and monitoring alerts into tickets** — For cybersecurity, RMM, and observability platforms: automatically create prioritized Autotask tickets when threats or incidents are detected, mapped to the correct client Company so MSPs never miss an alert.
- **Automate helpdesk triage with AI** — For AI copilots and workflow automation platforms: subscribe to Autotask ticket webhooks, categorize new tickets with an LLM, and patch the queue, priority, or assigned resource before a human ever opens them.
- **Sync client and contact data for onboarding** — For CRMs, quoting tools, and billing platforms: push newly closed clients into Autotask as Companies and Contacts so MSPs can start supporting and invoicing them immediately.
- **Log audit trails and remediation notes back to tickets** — For automation engines and security tools: append internal ticket notes with every action your platform takes, giving technicians a full audit trail without leaving Autotask.

## What you can build

- **Real-time ticket webhooks** — Register and manage Autotask ticket webhooks to receive events the moment tickets are created or updated, powering live triage and automation workflows.
- **Bi-directional ticket sync** — Create, read, and partially update Autotask tickets from your app so status, priority, queue, and assignment stay in sync without overwriting technician edits.
- **Automated ticket note logging** — Post structured notes to any Autotask ticket to record remediation steps, AI-suggested fixes, or audit events directly into the technician's workflow.
- **Company and contact provisioning** — Create and update Autotask Companies and Contacts from your platform to onboard new MSP clients or keep account records aligned with your source of truth.
- **Resource-to-user mapping** — List Autotask resources (technicians) to map them against users in your own app, enabling accurate assignment, notifications, and reporting.
- **Custom field (UDF) support** — Discover Autotask user-defined fields at runtime so your integration can read and populate the custom fields each MSP relies on for KPIs and billing.

## FAQs

### How does authentication with Autotask work?

Autotask uses API user credentials (username, secret, and integration code) issued from within the Autotask admin console. Truto handles the credential capture and secure storage so your end users just paste their keys once during connection.

### Can I receive real-time updates when tickets change?

Yes. Truto exposes Autotask ticket webhooks, including create, update, and delete operations, plus the ability to configure which fields trigger events. Your app receives normalized event payloads as they happen.

### Do you support Autotask custom fields (UDFs)?

Yes. You can list all user-defined fields on tickets and retrieve entity metadata, so your integration can dynamically read and write the custom fields each MSP has configured.

### How do I safely update a ticket without overwriting other fields?

Use the partial update (PATCH) operation on tickets and ticket notes. This modifies only the fields you send, which is critical when multiple systems and technicians are editing the same ticket concurrently.

### What Autotask objects are supported today?

Tickets, ticket notes, ticket webhooks, ticket fields (including UDFs), companies, contacts, and resources are all supported with list, get, count, create, and update operations where applicable.

### How does Truto handle Autotask's API rate limits and pagination?

Truto manages Autotask's per-database throttling and cursor-based pagination automatically. You call a single list endpoint and Truto handles page traversal and backoff so you don't have to build retry logic per integration.

## Related reading

- [Connect Autotask to ChatGPT: Manage Tickets and Support Workflows](https://truto.one/blog/connect-autotask-to-chatgpt-manage-tickets-and-support-workflows/) — Learn how to connect Autotask to ChatGPT using a managed MCP server. Automate ticket triage, update records, and execute IT support workflows via natural language.
- [Connect Autotask to Claude: Search Companies, Tickets, and Notes](https://truto.one/blog/connect-autotask-to-claude-search-companies-tickets-and-notes/) — Learn how to connect Autotask to Claude using a managed MCP server. This guide covers Autotask API quirks, tool configuration, and automated service desk workflows.
- [Connect Autotask to AI Agents: Automate Service Desk Tasking](https://truto.one/blog/connect-autotask-to-ai-agents-automate-service-desk-tasking/) — Learn how to bypass complex Autotask API quirks and connect your IT service desk to AI agents using Truto's unified tools API for automated ticket workflows.
