Tools Reference
The server exposes 302 tools. Kind says whether a tool only reads, writes, or can
delete; write tools that change many records or money default to a dry run and need an explicit confirmation.
The full input schema of each tool is in src/handlers/tool.definitions.ts.
Vendor Billing
Section titled “Vendor Billing”Vendor purchasing & billing reconciliation (Pax8 first): import every invoice line, map vendor customers and SKUs to Autotask companies and manufacturer offerings
| Tool | Kind | What it does |
|---|---|---|
autotask_vendor_list_sources | read-only | Vendor billing sources: the supported vendor adapters and file formats, every imported invoice (vendor, invoice number/date, lines, total, warnings, who imported it) and mapping coverage — vendor customers mapped to A… |
autotask_vendor_import_invoice | writes | Import a vendor billing file into the reconciliation store (Postgres only — nothing in Autotask changes). |
autotask_vendor_get_lines | read-only | Imported vendor invoice lines with filters, plus totals by charge class, cadence and customer. |
autotask_reconcile_resolve_mapping | writes | Review and decide the durable identity mappings reconciliation runs on (stored in the MCP’s Postgres; nothing in Autotask changes). |
autotask_vendor_prices | writes | The vendor price reference reconciliation and catalog plans price from: partner cost and the vendor’s suggested price per SKU and term (MM / AM / monthly per month; AA / annual per year), each with its source and date. |
autotask_catalog_plan_standardize | read-only | Build (read-only) a plan that brings the Autotask service catalog to one standard service per product and term, for the products we sell (on the vendor invoices or already in the catalog). |
autotask_change_plan_review | writes | Review and approve change plans (catalog standardization; contract pricing later). |
autotask_change_plan_execute | writes | FINANCIAL — apply the APPROVED rows of a change plan to Autotask (confirm:true required). |
autotask_reconcile_vendor_to_autotask | read-only | Reconcile one imported vendor invoice (default: the latest) against what customers are actually billed: each vendor line → its mapped Autotask company → every Recurring Service contract IN EFFECT for the invoice month… |
autotask_reconcile_get_exceptions | writes | Work the reconciliation exceptions. |
autotask_vendor_pricing_policy | writes | How “Price Should Be” is set (requirements §5). |
autotask_reconcile_export_workbook | read-only | The reconciliation workbook (.xlsx, base64 in contentBase64) for a run (default the latest): Executive Summary, Exceptions, All Vendor Lines, Customer Contracts, Unmatched / Internal / NFR, Approved Changes, Execution Audit, Pricing Policy. |
autotask_pricing_build_change_plan | read-only | Build (nothing is written) a frozen, numbered CONTRACT change plan from a reconciliation run. |
autotask_reconcile_check_sync_drift | read-only | Re-check every APPLIED catalog / contract plan row (last N days, default 120) against Autotask: a field that no longer holds the approved value — or a price adjustment whose effect (price / units from its effective da… |
autotask_vendor_sync | writes | Pax8 Partner API (needs PAX8_CLIENT_ID / PAX8_CLIENT_SECRET in the server env; otherwise says how to set it up). |
autotask_contract_plan_move_lines | read-only | Build (nothing is written) a frozen plan that MOVES contract lines onto another service — Autotask can’t change a contract line’s service, so each move is two rows: (1) an adjustment adding the target service to the s… |
autotask_contract_plan_wording | read-only | Build (nothing is written) a frozen plan that updates the INVOICE TEXT of existing contract lines (ContractServices and ContractServiceBundles invoiceDescription) to the catalog’s current wording. |
autotask_change_plan_revert | read-only | Build (nothing is written) an UNDO plan for an executed change plan, from the before-images it kept: updated fields are put back (a field changed again since is skipped as stale); a service the plan created is deactiv… |
autotask_vendor_monitor | read-only | One monitoring pass, each finding sent once as a notification (console → Notifications): a vendor with no invoice imported for 35+ days; subscriptions on the latest invoice renewing within 30 days (annual commitments … |
autotask_billing_preinvoice_check | read-only | Run BEFORE Approve & Post. |
autotask_pricing_customer_notices | writes | Customer notice for a contract pricing plan (default: the newest open one). |
Utility
Section titled “Utility”Connection testing and field/picklist discovery
| Tool | Kind | What it does |
|---|---|---|
autotask_test_connection | writes | Test Autotask API connection |
autotask_setup_check | read-only | Is this PSArelay instance connected, and is its Autotask API user allowed to do what each module needs? Signs in (one usage read), names the API user, then probes READ access live for every entity the modules use — on… |
autotask_report_gap | writes | Tell the MCP’s builders what you could NOT do. |
autotask_get_api_usage | read-only | Autotask API budget (read-only, one upstream call). |
autotask_get_actor_roster | read-only | Who is a person and who is automation: every Autotask resource classified as human, service_account, integration, system or unknown, with the reason (registry, system-resource, mcp-api-user = this MCP’s own n8n/Nexus/… |
autotask_get_operations | read-only | The operation log (correlation, MCP-007): which tool calls through this MCP wrote to Autotask, what each wrote (method, entity, id, time), and the ids that tie them to the caller — correlationId, decisionId (e.g. a He… |
autotask_get_backpressure | read-only | Should a dispatcher (n8n, Hermes) send work to Autotask right now? Returns level ok / slow / stop, the reasons, retryAfterSeconds, and the inputs: tenant API usage % of the hourly limit (latest reading and its age; Au… |
autotask_shadow_status | read-only | State of the Postgres shadow — the read-only mirror of Tickets, TimeEntries, Tasks, Projects, Companies, Contacts, Contracts, ContractServices, ContractBlocks and Resources: per entity row count, whether the backfill … |
autotask_shadow_query | read-only | Query the Postgres shadow with the SAME filter format as the Autotask API — [{op, field, value}], ops eq/noteq/gt/gte/lt/lte/beginsWith/endsWith/contains/exist/notExist/in/notIn, and {op:“and”|“or”, items:[…]} groups. |
autotask_shadow_aggregate | read-only | GROUP BY over the Postgres shadow — counts and numeric sums, e.g. hours by contract by month: { entity:“TimeEntries”, filters:[{“op”:“eq”,“field”:“contractID”,“value”:29685345}], groupBy:[“resourceID”,“month:dateWorke… |
autotask_shadow_sync | writes | Run the Postgres shadow sync now (spends Autotask API calls within its per-run budget; skipped automatically above 50% hourly usage). |
autotask_list_queues | writes | List all available ticket queues in Autotask. |
autotask_list_ticket_statuses | writes | List all available ticket statuses in Autotask. |
autotask_list_ticket_priorities | writes | List all available ticket priorities in Autotask. |
autotask_get_field_info | writes | Get field definitions for an Autotask entity type, including picklist values. |
autotask_get_picklists | read-only | Active values (value + label, and parentValue for dependent lists like subIssueType) of several picklist fields of an entity in ONE call, e.g. { entity: “Tickets”, fields: [“queueID”, “status”, “priority”, “source”] }… |
autotask_resolve_picklist_value | read-only | Resolve a picklist label to its tenant-specific value id for any entity/field (e.g. Tasks/status/“Complete”, Projects/status/“In Progress”, Tickets/queueID). |
autotask_resolve_record_reference | read-only | Resolve a canonical Autotask display reference like “T20260825.0006” to a single Ticket or Task. |
autotask_whoami | read-only | Resolve the calling user to their Autotask resource — used for permissions and as the acting/proxy resource for data input (time entries, To-Dos, assignments). |
Companies
Section titled “Companies”Search, create, and update companies
| Tool | Kind | What it does |
|---|---|---|
autotask_search_companies | writes | Search companies. Plain mode: searchTerm (name contains) + isActive (+ classification label or id, + companyType with classification), paged, max 200/page; each row carries classification as {id, label} or null. IDENT… |
autotask_get_company | read-only | The complete company record by ID with creation metadata: every picklist labelled (company type, classification, territory, market segment, …), owner / created-by / impersonator resources and parent company named, UDFs with list labels. |
autotask_find_company_contact_candidates | read-only | Given any of companyName, contactName, email, phone, domain, it searches contacts (exact email across all email fields, name, phone) and companies (normalized name, web domain, contacts’ email domain, phone), links th… |
autotask_find_duplicate_companies | read-only | Likely duplicates of ONE company (searched around it, not a tenant scan): same normalized name, web domain, phone, or company number — inactive companies and creation dates included, each with evidence and conflicts. |
autotask_merge_discover | read-only | Find candidate duplicate companies / contacts before a merge: by email (exact, across ALL THREE contact email fields, active and inactive, every page — no 200 cap), by company name (exact), or around given companyIds … |
autotask_merge_dependency_inventory | read-only | For each company id (and / or contact id): every record pointing at it, per entity — contacts, tickets, projects, contracts (active ones counted), opportunities, quotes, sales orders, configuration items, service call… |
autotask_merge_build_plan | writes | Build a MERGE PLAN — addressed ONLY by numeric Autotask ids, one kind per plan. |
autotask_merge_verify | read-only | After the UI merges: re-reads every survivor and source of a merge plan and everything that pointed at the sources. |
autotask_bulk_inactivate | writes | Bulk cleanup of PLACEHOLDER companies (e.g. the tens of thousands named “Gmail”) and their contacts — prepared from the Postgres mirror, pushed to Autotask by a background worker at a set pace, so no chat ever loops thousands of writes. |
autotask_create_company | writes | Create new company record. |
autotask_update_company | writes | Update company record. |
autotask_get_company_site_configuration | writes | Get company site configuration records. |
autotask_update_company_site_configuration | writes | Update company site configuration. |
Contacts
Section titled “Contacts”Search and create contacts
| Tool | Kind | What it does |
|---|---|---|
autotask_search_contacts | writes | Search contacts. Plain mode: searchTerm (name or email) + companyID + isActive, paged, max 200/page. IDENTITY mode (read-only, used when any of email / name / firstName / lastName / phone is given): EVERY match with e… |
autotask_get_contact | read-only | The complete contact record by ID with creation metadata: company named, picklists labelled, UDFs with list labels. |
autotask_find_duplicate_contacts | read-only | Likely duplicates of ONE contact across ALL companies (searched around it): any of its email addresses, its name, its phone — inactive contacts and creation dates included, each with evidence and conflicts. |
autotask_create_contact | writes | Create new contact record |
autotask_update_contact | writes | Update contact record. |
autotask_find_or_create_contact | writes | Find a contact in a company, or create it if none exists. |
Tickets
Section titled “Tickets”Search, create, update tickets and manage ticket notes, attachments, charges, audit history, and the notification e-mails Autotask sent
| Tool | Kind | What it does |
|---|---|---|
autotask_search_tickets | writes | Search tickets by title keyword, ticket number, company, contact, queue, status, priority, assignee, dates. |
autotask_get_ticket_details | writes | Get full ticket details including notes, time entries, and custom fields. |
autotask_set_ticket_contract | writes | FINANCIAL — move a ticket to another contract, and its labor with it. |
autotask_get_ticket_by_number | read-only | The complete ticket by number (T20261005.0123 — the T is optional) or ID, fully resolved: every picklist labelled (status, priority, queue, source, ticket type, issue/sub-issue type, SLA, category, creator type) and e… |
autotask_get_ticket_change_history | read-only | Who changed what on a ticket, oldest first: each TicketHistory event parsed into field / from / to (“Account changed from A to B” → field Account), with the actor named and classified — system (resource 4: workflow/tr… |
autotask_get_ticket_email_context | read-only | Where an email-created ticket came from, from the ORIGINAL message Autotask’s email processor attached to the ticket (“Originating Email”, message/rfc822): From (display name + address), Reply-To (and whether it diffe… |
autotask_create_ticket | writes | Create new ticket record |
autotask_update_ticket | writes | Update a ticket — only the fields given change. |
autotask_start_work_on_ticket | writes | Start working a ticket as the acting user: set its status to In Progress (or status) and, if it is UNASSIGNED, assign it to you with your default role. |
autotask_add_ticket_update | writes | Post a progress update on a ticket in ONE call: a note, plus optionally a time entry and a status change. |
autotask_move_ticket_to_company | writes | Safely move a ticket to another company. |
autotask_find_ticket_by_external_id | read-only | Find ticket(s) by external correlation id (occurrence/idempotency key). |
autotask_search_ticket_configuration_items | read-only | List the additional configuration items linked to a ticket (TicketAdditionalConfigurationItems — the CIs beyond the ticket’s primary configurationItemID). |
autotask_add_ticket_configuration_item | writes | Link an additional configuration item to a ticket (creates a TicketAdditionalConfigurationItems association). |
autotask_remove_ticket_configuration_item | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Removes an additional configuration item link from a ticket (deletes the TicketAdditionalConfigurationItems association by its association id — NOT the CI itself). |
autotask_get_ticket_note | writes | Get a specific ticket note by ticket ID and note ID |
autotask_search_ticket_notes | writes | Search for notes on a specific ticket. |
autotask_create_ticket_note | writes | Create a new note for a ticket |
autotask_get_ticket_attachment | writes | Get a ticket attachment. |
autotask_search_ticket_attachments | writes | Search for attachments on a specific ticket. |
autotask_create_ticket_attachment | writes | Upload a file attachment to an existing ticket. |
autotask_get_ticket_charge | writes | Get a specific ticket charge by ID |
autotask_search_ticket_charges | writes | Search ticket charges (materials, costs, expenses). |
autotask_create_ticket_charge | writes | Create charge on ticket for materials, costs, or expenses. |
autotask_update_ticket_charge | writes | Update an existing ticket charge. |
autotask_delete_ticket_charge | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a ticket charge record and all associated billing data. |
autotask_get_ticket_history | writes | Get a single ticket history entry by ID. Each entry records one audited change to a ticket field (who, when, before/after). |
autotask_search_ticket_history | writes | Get the audit trail of field changes for a ticket (status transitions, assignment changes, priority edits, etc.) as RAW TicketHistory rows. |
autotask_search_notification_history | read-only | Notification history (read-only): the e-mails Autotask actually SENT — ticket/time-entry notifications, workflow-rule e-mails, quote notes, surveys — and to whom. |
autotask_report_ticket_throughput | read-only | Ticket throughput / work-queue KPIs (read-only, #100). |
autotask_report_request_segmentation | read-only | Request segmentation dimension (read-only, #100). |
autotask_search_checklist_libraries | read-only | Search reusable checklist libraries (standardized work-instruction checklists). |
autotask_get_checklist_library | read-only | Get a checklist library by id, including its ordered items (from ChecklistLibraryChecklistItems: itemName, isImportant, position, knowledgebaseArticleID). |
autotask_apply_checklist_library_to_ticket | writes | Apply a checklist library to a ticket — expands the library’s items into checklist items on the ticket (itemName / isImportant / position / knowledgebaseArticleID carried over). |
autotask_create_maintenance_ticket | writes | High-level maintenance-ticket orchestrator. |
autotask_search_ticket_checklist_items | writes | List all checklist items on a ticket, including their completion status. |
autotask_create_ticket_checklist_item | writes | Add a new checklist item to a ticket. |
autotask_update_ticket_checklist_item | writes | Update a checklist item on a ticket — edit text, mark complete/incomplete, or change position. |
autotask_delete_ticket_checklist_item | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a checklist item from a ticket. |
Projects
Section titled “Projects”Search and create projects, tasks, phases, and project notes
| Tool | Kind | What it does |
|---|---|---|
autotask_search_projects | writes | Search for projects in Autotask. |
autotask_get_project | read-only | Get a single project by ID with its full field set (status, type, lead, department, dates, estimated/actual time, contract, opportunity, UDFs, etc.). |
autotask_update_project | writes | Update an existing project in Autotask. |
autotask_get_project_structure | read-only | Get the normalized project outline: the project plus its phases nested by parentPhaseID, with tasks bucketed under each phase and any unphased tasks listed separately, plus a summary (phase/task counts, max phase depth, estimated hours). |
autotask_get_complete_project_context | read-only | Assemble the complete read-only context for a project in one call (the Project Builder input): the project, its nested phase/task hierarchy, the task dependency graph, the labor rollup, project notes and attachments, … |
autotask_get_project_labor_summary | read-only | Project labor summary: estimated vs actual and billable hours, variance, first/last worked dates, and a per-phase rollup. |
autotask_export_project_blueprint | read-only | Export a project as a reusable, tenant-agnostic blueprint: the phase/task hierarchy with titles, estimated hours, and task type, WITHOUT tenant-specific ids, resource assignments, or absolute dates. |
autotask_calculate_project_schedule | read-only | Deterministically schedule a project build plan (no Autotask writes, no AI, no reference-project inference). |
autotask_extract_project_scope | read-only | Front of the SOW-to-project pipeline (#46 §8): deterministically parse a Statement of Work into a normalized, reviewable scope envelope — NO Autotask writes, NO AI, and it NEVER infers scope from a reference project (… |
autotask_classify_project | read-only | Project classification (#46 §7): deterministically map a project/scope to an archetype (e.g. construction/low-voltage, tech deployment, recurring consulting, compliance program, operational onboarding) so the pipeline… |
autotask_calculate_bom_labor | read-only | BOM → calculated labor (#46 §9): deterministically turn BOM/scope quantities into CALCULATED labor hours using a caller-provided rate catalog, and normalize the quantities into repeated tasks. |
autotask_generate_project_labor_plan | read-only | Deterministic labor plan for a project build plan (no Autotask writes, no AI). |
autotask_build_project_from_plan | writes | Build engine: realize a validated project build plan as a real Autotask project — project → phases (parent-first) → tasks → task dependencies. |
autotask_extend_project | writes | Project extension (#46 §2.4): add phases / tasks / dependencies to an EXISTING project by id — a change order, an added phase, a recurring month, a new site, or extra tasks. |
autotask_create_project | writes | Create a new project in Autotask |
autotask_link_project_commercial | writes | Link a project to its commercial records — contract and/or opportunity. |
autotask_search_tasks | writes | Search for tasks in Autotask. |
autotask_get_task | read-only | Get a single project task by ID with its full fields (projectID, phaseID, status, taskType, dates, estimatedHours, assigned resource + role, department, billing code, etc.). |
autotask_get_task_by_number | read-only | Look up a project task by its human-facing task number (e.g. “T20260922.0189”) and return the FULL task object in one call. |
autotask_create_task | writes | Create a new task in Autotask |
autotask_update_task | writes | Update a project task. |
autotask_complete_task | writes | Mark a task complete. Sets the tenant’s “Complete” status (resolved from metadata, not hard-coded) and completedDateTime. projectID is looked up from the task if not supplied. |
autotask_delete_task | read-only | Inspect a project task for deletion. |
autotask_delete_task_with_time | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Obsolete-task cleanup: deletes its TIME ENTRIES (each as its owner via impersonation), optionally removes secondary resources, then you delete the task itself in the UI (the API cannot delete tasks). |
autotask_verify_task_time_entries | read-only | With expectedResourceIDs, reports how many of the expected resources have an entry (found/expected), which are missing, and which have more than one entry (duplicate). |
autotask_close_meeting_task | writes | Finalize a meeting/closeout TASK safely — verify the downstream work, then mark the task complete. |
autotask_list_task_resources | read-only | List the secondary (additional crew) resources on a task, with their roles. |
autotask_add_task_resource | writes | Add a secondary resource (additional crew member) to a task, optionally with a role. |
autotask_remove_task_resource | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a secondary resource from a task by the TaskSecondaryResources row id (from list_task_resources). |
autotask_list_task_predecessors | read-only | List the predecessor dependencies for a task (tasks that must precede it), with lag days. |
autotask_add_task_predecessor | writes | Add a predecessor dependency: predecessorTaskID must precede successorTaskID, with optional lag days. |
autotask_remove_task_predecessor | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a task predecessor dependency by the TaskPredecessors row id (from list_task_predecessors or search_task_predecessors). |
autotask_get_task_predecessor | read-only | Get a single TaskPredecessors dependency row by its id. |
autotask_search_task_predecessors | read-only | Search task dependency rows by either endpoint. |
autotask_update_task_predecessor | writes | Update a task dependency. |
autotask_list_phases | writes | List phases for a project in Autotask |
autotask_create_phase | writes | Create a new phase in an Autotask project |
autotask_get_phase | read-only | Get a single project phase by ID with its full fields (parentPhaseID, title, description, start/due dates, estimatedHours, phaseNumber, isScheduled). |
autotask_update_phase | writes | Update a project phase. |
autotask_get_project_note | writes | Get a specific project note by project ID and note ID |
autotask_search_project_notes | writes | Search for notes on a specific project. |
autotask_create_project_note | writes | Create a new note for a project |
autotask_get_task_note | read-only | Get a specific project-task note by task ID and note ID. |
autotask_search_task_notes | read-only | List the notes on a project task. |
autotask_create_task_note | writes | Create a note on a project task. |
autotask_search_project_attachments | read-only | List attachment metadata on a project (name, type, size, attach date). |
autotask_search_task_attachments | read-only | List attachment metadata on a project task. |
autotask_get_project_attachment | read-only | Get a project attachment. |
autotask_create_project_attachment | writes | Upload a file attachment to an existing project. |
autotask_get_task_attachment | read-only | Get a project-task attachment. |
autotask_create_task_attachment | writes | Upload a file attachment to an existing project task. |
Time And Billing
Section titled “Time And Billing”Time entries, billing items, and expense management
| Tool | Kind | What it does |
|---|---|---|
autotask_create_time_entry | writes | Create a time entry in Autotask. |
autotask_create_task_time_entries_bulk | writes | Create one time entry PER ATTENDEE against a single project TASK for the same day — built for meeting/closeout logging (e.g. an RPO meeting task with five GDS attendees). |
autotask_log_ticket_collaboration | writes | Capture a collaborative work event on a TICKET (e.g. a Teams triage thread keyed by ticket #) in one call: a ticket time entry PER contributing tech + an optional ticket note (the narrative). |
autotask_log_my_time | writes | Log a time entry as the acting user, idempotently. |
autotask_list_regular_time_categories | writes | List the Regular Time categories (read-only) — the internal, non-ticket/non-task time categories from Autotask’s Timesheet UI (e.g. Internal Meeting, Office Management, HR/Recruiting, Quote building, Research, Travel … |
autotask_get_time_entry_targets | writes | Time-entry target discovery (read-only) for EOD/backfill automation: given a resource, returns the valid things they can log time against — OPEN project tasks (completed tasks are excluded, since Autotask rejects time… |
autotask_get_my_day | read-only | The acting user’s working picture for a date (default today in your local timezone): tickets assigned to them, the time they have already logged that day (split ticket/task/Regular Time), their open tasks, their servi… |
autotask_search_time_entries | writes | Search for time entries in Autotask. |
autotask_get_time_entry | read-only | Get a time entry by ID. The record distinguishes actual worked time (hoursWorked) from Autotask billing-rounded time (hoursToBill). |
autotask_update_time_entry | writes | Update a time entry (collection PATCH). |
autotask_delete_time_entry | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently delete one time entry. |
autotask_search_billing_items | writes | Search for billing items in Autotask. |
autotask_get_billing_item | writes | Get detailed information for a specific billing item by ID |
autotask_search_billing_item_approval_levels | writes | Search for billing item approval levels. |
autotask_report_time_entry_compliance | read-only | Time-entry compliance / team hours (read-only, #100). |
autotask_report_activity_without_time | read-only | Activity without time — the Autotask side of a billable-time leakage audit (read-only). |
autotask_search_audit_activity | read-only | Normalized event stream of everything attributable to one or more resources in a time window — the evidence layer under the activity reports. |
autotask_get_activity_feed | read-only | Incremental, cursor-paged feed of ticket activity across the whole tenant — ticket field changes (status/queue/priority/assignee/contract/… with before → after, from TicketHistory), ticket notes and time entries (crea… |
autotask_backfill_history | read-only | Historical learning backfill (MCP-006), READ-ONLY toward Autotask: stores the history, notes and time entries of the tickets COMPLETED in a date range (max 366 days) in the MCP’s ledger, so autotask_get_activity_feed … |
autotask_report_resource_activity | read-only | Everything each resource did in Autotask in a window (date + timeZone, or start/end): per resource, the event stream from autotask_search_audit_activity plus counts by entity type and action. |
autotask_report_resource_daily_audit | read-only | End-of-day labor reconciliation for one or more resources on a date: TIME ENTERED (hours, entries); TICKETS and PROJECTS/TASKS TOUCHED (first/last activity, actions, whether time exists); SCHEDULING; CRM/ADMIN; CONFIG… |
autotask_report_unbilled_time | read-only | Unbilled-TIME leakage — the pre-invoice stage. |
autotask_get_expense_report | writes | Get a specific expense report by ID |
autotask_search_expense_reports | writes | Search for expense reports with optional filters |
autotask_create_expense_report | writes | Create a new expense report |
autotask_search_expense_items | writes | Search expense items (parking, mileage, meals, materials bought). |
autotask_create_expense_item | writes | Create an expense item on an existing expense report |
Financial
Section titled “Financial”Quotes, quote items, opportunities, invoices, and contracts
| Tool | Kind | What it does |
|---|---|---|
autotask_get_quote | writes | Get a specific quote by ID |
autotask_search_quotes | writes | Search for quotes with optional filters |
autotask_create_quote | writes | Create a new quote |
autotask_get_quote_item | writes | Get a specific quote item by ID |
autotask_search_quote_items | writes | Search for quote items, typically filtered by quote ID |
autotask_create_quote_item | writes | Create a line item on a quote. |
autotask_update_quote_item | writes | Update an existing quote item (quantity, price, etc.) |
autotask_delete_quote_item | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a quote item (line item) from a quote. |
autotask_get_opportunity | writes | Get a specific opportunity by ID |
autotask_search_opportunities | writes | Search for opportunities with optional filters |
autotask_create_opportunity | writes | Create a new sales opportunity in Autotask |
autotask_update_opportunity | writes | Update a sales opportunity. |
autotask_search_invoices | writes | Search Autotask invoices (the Invoice Batch screen). |
autotask_get_invoice_details | writes | Get a single Autotask invoice with its full field set (sync/paid/void markers, billing period, totals) plus its line items (BillingItems posted to it) and the WORK it billed: linkedTicketIDs, linkedProjectIDs, linkedT… |
autotask_search_contracts | writes | Search for contracts in Autotask with optional filters |
autotask_get_contract | writes | Get a single contract by ID (header fields only, no service lines) |
autotask_list_expiring_contracts | writes | List contracts whose end date falls within the next N days (expiring-contracts report). |
autotask_create_contract | writes | Create a new Contract in Autotask. |
autotask_create_contracts_bulk | writes | Create multiple contract shells (header records, no service lines) in one call — e.g. onboarding a customer with several location-based contracts. |
autotask_update_contract | writes | Update an existing Contract in Autotask (PATCH). |
autotask_create_contract_service | writes | Add a ContractService (service line item) to an existing Contract. |
autotask_update_contract_service | writes | Update an existing ContractService line on a Contract. |
autotask_get_contract_service | read-only | Get a single ContractService line by ID — the service entitlement on a contract (contractID, serviceID, quoteItemID, unitPrice, unitCost, internalDescription, invoiceDescription). |
autotask_search_contract_services | read-only | Search ContractService lines (service entitlements on contracts). |
autotask_get_contract_billed_units | read-only | Billed units per contract service line (read-only). |
autotask_report_contract_recurring_revenue | read-only | Recurring-revenue roll-up for a contract (read-only): monthly (MRR) and annual (ARR) recurring revenue from its recurring service + bundle lines as of a date. |
autotask_report_contract_labour_basis | read-only | Contract labour-billing basis — the “is labour included in the fee” flag (dashboard gap #4). |
autotask_get_contract_milestone | read-only | Get a single ContractMilestone by id — a commercial milestone payment on a contract (title, amount, dateDue, status, description, billingCodeID, isInitialPayment). |
autotask_search_contract_milestones | read-only | Search contract milestones, primarily by contractID (all milestones on a contract). |
autotask_create_contract_milestone | writes | Create a ContractMilestone on a contract. |
autotask_update_contract_milestone | writes | Update a ContractMilestone. |
autotask_report_block_hour_usage | read-only | Block-hour contract usage report. |
autotask_report_ticket_charges | read-only | Ticket-charge report. Charges in a recent window with a fulfillment-status breakdown, billed vs unbilled counts, total billable amount, and a per-ticket rollup. Set unbilledOnly to surface the to-bill queue (charges n… |
autotask_report_unbilled | read-only | Unbilled-work / revenue-leakage report. |
autotask_report_project_pl | read-only | Profitability (P&L) for a project, task, or ticket, bucketed by week or month — real burden cost vs realized revenue, not assumed margins. |
autotask_report_sla_compliance | read-only | SLA compliance report (read-only). |
autotask_generate_sla_framework | read-only | ITIL SLA setup helper (advisory, deterministic, no Autotask writes). |
autotask_report_sla_coverage | read-only | SLA coverage / readiness check (read-only, #102). |
autotask_assign_contract_sla | writes | Bulk-assign an SLA to contracts (#102). |
autotask_analyze_ticket_billing_gaps | read-only | Ticket-anchored billing-completeness check for review (read-only). |
autotask_report_ticket_billing_gaps | read-only | Weekly ticket billing-gaps sweep for review (read-only). |
Products And Services
Section titled “Products And Services”Products, services, and service bundles catalog
| Tool | Kind | What it does |
|---|---|---|
autotask_get_product | writes | Get a specific product by ID |
autotask_search_products | writes | Search for products with optional filters |
autotask_find_product | read-only | Clean, normalized product search across ALL identifiers — the usable layer over Autotask’s weak native search. |
autotask_list_product_categories | read-only | List the productCategory picklist as a parent→child tree (categories are a hierarchical picklist named ‘Parent>Child>Grandchild’, not a REST entity). |
autotask_find_catalog_gaps | read-only | Find products with data gaps for cleanup (read-only): missing productCategory, missing MSRP, or a weak description (empty, too short, or identical to the name). |
autotask_find_duplicate_products | read-only | Find duplicate-product candidate groups (read-only): products sharing a normalized identifier (sku, else manufacturerProductName, else name) are grouped, each with a suggested survivor (active > most complete > lowest… |
autotask_bulk_update_products | writes | Bulk-update products for catalog cleanup (dry-run-first). |
autotask_merge_products | writes | Merge duplicate products (dry-run-first): keep survivorId, enrich it with any fields it’s missing from the duplicates (description/MSRP/category/part numbers/pricing), and mark the duplicate products inactive. |
autotask_create_product | writes | Create a product in the catalog. |
autotask_update_product | writes | Update a catalog product by id. |
autotask_search_inventory_products | read-only | A product’s stock levels per location (InventoryProducts): onHandUnits, availableUnits, reservedUnits, pickedUnits, unitsOnOrder, quantityMinimum/Maximum, bin, referenceNumber. |
autotask_get_inventory_product | read-only | Get one InventoryProducts record (a product’s stock at a location) by id. |
autotask_create_inventory_product | writes | Stock a product at a location: create an InventoryProducts record. |
autotask_update_inventory_product | writes | Update an InventoryProducts record (stock levels/min-max/bin) by id. |
autotask_search_inventory_locations | read-only | Inventory locations (warehouses / tech vans): locationName, isActive, isDefault, resourceID (a resource-linked location = a tech van). |
autotask_get_inventory_location | read-only | Get one InventoryLocations record by id. |
autotask_create_inventory_location | writes | Create an inventory location (warehouse or tech van). |
autotask_update_inventory_location | writes | Update an inventory location by id (locationName, isActive, isDefault, resourceID). |
autotask_search_inventory_stocked_items | read-only | Individual stocked units (InventoryStockedItems): onHandUnits, availableUnits, serialNumber, statusID, unitCost, currentInventoryLocationID, vendorID, and consumption links (ticketChargeID / projectChargeID / pickedRemovedDateTime). |
autotask_get_inventory_stocked_item | read-only | Get one InventoryStockedItems record by id. |
autotask_search_inventory_transfers | read-only | Stock transfers between locations (InventoryTransfers): productID, fromLocationID, toLocationID, quantityTransferred, transferDate, notes, serialNumber. |
autotask_create_inventory_transfer | writes | Move stock between locations (creates an InventoryTransfers record; mutates on-hand at both locations). |
autotask_add_inventory_stock | writes | Add/receive stock — raise on-hand for an inventory product (InventoryStockedItemsAdd). |
autotask_remove_inventory_stock | destructive | ⚠ DESTRUCTIVE/HIGH-IMPACT: Remove stock — lower on-hand for an inventory product (InventoryStockedItemsRemove), a write-down that is not easily reversible. |
autotask_report_inventory_reorder | read-only | Inventory reorder-control report. |
autotask_report_inventory_closeouts | read-only | Inventory close-out report. |
autotask_report_inventory_stale | read-only | Inventory stale/trending report. |
autotask_get_service | writes | Get a specific service by ID |
autotask_search_services | writes | Search for services with optional filters |
autotask_get_service_bundle | writes | Get a specific service bundle by ID |
autotask_search_service_bundles | writes | Search for service bundles with optional filters |
Resources
Section titled “Resources”Search Autotask resources (technicians/staff) and roles (for assignment / time entries)
| Tool | Kind | What it does |
|---|---|---|
autotask_search_resources | writes | Search for resources (users) in Autotask. |
autotask_search_roles | read-only | Search Autotask Roles (the roles used for ticket assignment and time entries). |
autotask_get_resource_roles | read-only | List the roles a resource (user) may act in (from ResourceRoles), enriched with roleName, departmentName, and queueName, and flagging the resource’s default service-desk role. |
autotask_report_resource_burden | read-only | Per-resource labour-burden report for cost / utilisation pages. |
Configuration Items
Section titled “Configuration Items”Search and read configuration items (assets/devices), including contract/service entitlement links and coverage gaps
| Tool | Kind | What it does |
|---|---|---|
autotask_search_configuration_items | writes | Search configuration items (assets) with optional filters, including native contract/service entitlement links. |
autotask_get_configuration_item | writes | Get a single configuration item (asset) by ID with all current details, including entitlement fields (companyID, companyLocationID, contractID, contractServiceID, serviceID, isActive, serialNumber, installDate, warrantyExpirationDate). |
autotask_create_configuration_item | writes | Create a configuration item (managed asset) for a company. |
autotask_update_configuration_item | writes | Update a configuration item: the same lifecycle surface as create, minus companyID, which Autotask will not let you change (a CI cannot be moved between companies; retire it with isActive:false and create a new one un… |
autotask_get_configuration_item_entitlement | read-only | Determine whether a configuration item is entitled to recurring service, and why. |
autotask_search_configuration_item_coverage_gaps | read-only | List ACTIVE configuration items with no contract coverage (no contractID and no contractServiceID) — the uncovered assets for Sales / Account Management review. |
Company Notes
Section titled “Company Notes”Get, search, and create company notes
| Tool | Kind | What it does |
|---|---|---|
autotask_get_company_note | writes | Get a specific company note by company ID and note ID |
autotask_search_company_notes | writes | Search for notes on a specific company. |
autotask_create_company_note | writes | Create a new note for a company |
Service Calls
Section titled “Service Calls”Service call dispatching, ticket linking, and resource assignments
| Tool | Kind | What it does |
|---|---|---|
autotask_reconcile_service_call | read-only | Reconcile ONE service call against its linked ticket to catch billing leakage (read-only). |
autotask_report_service_call_leakage | read-only | Weekly billing-leakage sweep (read-only): scans past-scheduled service calls in a look-back window and reconciles each, returning the ones with issues plus a digest — counts of done-not-closed / no-time-logged / parts… |
autotask_report_tickets_needing_scheduling | read-only | Tickets needing scheduling (read-only, #100). |
autotask_search_service_calls | writes | Search for service calls in Autotask. |
autotask_get_service_call | writes | Get a specific service call by ID |
autotask_create_service_call | writes | Create a new service call in Autotask. |
autotask_update_service_call | writes | Update an existing service call. |
autotask_delete_service_call | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a service call and all associated data. |
autotask_search_service_call_tickets | writes | Search for ticket associations on service calls. |
autotask_create_service_call_ticket | writes | Link a ticket to a service call. |
autotask_delete_service_call_ticket | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a ticket association from a service call. |
autotask_search_service_call_ticket_resources | writes | Search for resource (technician) assignments on service call tickets. |
autotask_create_service_call_ticket_resource | writes | Assign a resource (technician) to a service call ticket. |
autotask_delete_service_call_ticket_resource | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a resource assignment from a service call ticket. |
autotask_search_service_call_tasks | writes | Search service-call ↔ project-task associations. |
autotask_create_service_call_task | writes | Link a PROJECT TASK to a service call — the task equivalent of autotask_create_service_call_ticket. |
autotask_delete_service_call_task | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a task association from a service call. |
autotask_search_service_call_task_resources | writes | Search for resource (technician/attendee) assignments on service-call tasks. |
autotask_create_service_call_task_resource | writes | Assign a resource (technician/attendee) to a service-call task — the task equivalent of autotask_create_service_call_ticket_resource. |
autotask_delete_service_call_task_resource | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently removes a resource assignment from a service call task. |
Company Todos
Section titled “Company Todos”Company To-Dos — CRM calendar follow-ups (distinct from tasks, checklist items, time entries, appointments, and service calls)
| Tool | Kind | What it does |
|---|---|---|
autotask_get_company_todo | read-only | Get a Company To-Do (CRM calendar follow-up) by ID. A Company To-Do is NOT a ticket checklist item, project task, time entry, appointment, or service call. |
autotask_search_company_todos | read-only | Search Company To-Dos (CRM calendar follow-ups). |
autotask_create_company_todo | writes | Create a Company To-Do (CRM calendar follow-up) via the company child route. |
autotask_update_company_todo | writes | Update a Company To-Do via the company child route. |
autotask_complete_company_todo | writes | Complete a Company To-Do by setting its completedDate to now (there is no isComplete field). |
autotask_delete_company_todo | destructive | ⚠ DESTRUCTIVE — IRREVERSIBLE. Permanently deletes a Company To-Do. |
Commerce
Section titled “Commerce”Sell through Autotask: an offering catalog (recurring plans / add-ons, one-time services), quotes, and orders that set up the customer, users, contract, services, delivery ticket and charges in one approved plan, then track it to its invoice and payment
| Tool | Kind | What it does |
|---|---|---|
autotask_commerce_offerings | writes | The OFFERING CATALOG for selling through Autotask: recurring plans / add-ons (an Autotask Service on a recurring service contract, optionally per unit — e.g. per user) and one-time services (a charge on a delivery tic… |
autotask_commerce_quote | read-only | Price an order before placing it: lines [{ offering, quantity, unitPrice? }] → each line’s unit price (the offering’s, or its Autotask Service’s), totals one-time and recurring per period, and the modules it unlocks; … |
autotask_commerce_order | writes | ORDERS — sell, set up and track in one flow. |
Webhooks
Section titled “Webhooks”Autotask outbound webhook management — discover webhook-capable entities and inspect existing webhooks (read/discovery)
| Tool | Kind | What it does |
|---|---|---|
autotask_list_webhook_entities | read-only | Prerequisite/discovery for webhook management (read-only, no I/O): lists the Autotask entities that support outbound webhooks (tickets, companies, contacts, configurationItems, ticketNotes) and the REST entity names b… |
autotask_search_webhooks | read-only | List existing webhooks configured on a webhook-capable entity (read-only). |
autotask_get_webhook | read-only | Get one webhook with its full configuration (read-only): the parent record plus its monitored standard fields, UDF fields, and EXCLUDED RESOURCES (the resources whose changes don’t fire it — the loop-prevention list). |
autotask_create_webhook | writes | Create an outbound webhook on a webhook-capable entity (STANDING CONFIGURATION). |
autotask_update_webhook | writes | Update a webhook’s parent settings — activate/deactivate (isActive), change webhookUrl, toggle event subscriptions, notifications, owner, or secret (STANDING CONFIGURATION). |
autotask_delete_webhook | destructive | ⚠ DESTRUCTIVE: Permanently delete a webhook (STANDING CONFIGURATION — cannot be undone). |
autotask_set_webhook_excluded_resources | writes | Manage a webhook’s excluded resources — the loop-prevention list (resources whose changes do NOT fire the webhook). |
Platform & meta
Section titled “Platform & meta”Tools for clients and operators: discovery, the mirror, backpressure, requests.
| Tool | Kind | What it does |
|---|---|---|
autotask_list_categories | writes | List available tool categories. |
autotask_list_category_tools | writes | List tools in a specific category with full schemas. |
autotask_execute_tool | writes | Execute any Autotask tool by name. |
autotask_router | writes | Intelligent tool router - describe what you want to do and get the right tool suggestion with pre-filled parameters. |
autotask_raw_request | writes | Escape hatch for Autotask REST endpoints not yet wrapped by a typed tool. |