From kaseya-autotask
Manages Autotask service calls: create, schedule, update, complete; link to tickets; assign technicians/resources. Covers fields, status codes for MSP on-site visits and planned work.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin autotaskThis skill uses the workspace's default tool permissions.
Service Calls in Autotask are used to schedule and plan work against tickets. They represent a planned visit or block of work — linking one or more tickets to a time slot and assigning technicians. This skill covers the full lifecycle: creating service calls, linking tickets, assigning resources, and completing/closing them.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Analyzes BMad project state from catalog CSV, configs, artifacts, and query to recommend next skills or answer questions. Useful for help requests, 'what next', or starting BMad.
Service Calls in Autotask are used to schedule and plan work against tickets. They represent a planned visit or block of work — linking one or more tickets to a time slot and assigning technicians. This skill covers the full lifecycle: creating service calls, linking tickets, assigning resources, and completing/closing them.
| Status ID | Name | Description |
|---|---|---|
| 1 | New | Freshly created, not yet dispatched |
| 2 | In Progress | Technician is actively working |
| 5 | Complete | Work completed |
Instance note: Status picklist values are instance-specific. Use
autotask_get_field_infowithentityType: "ServiceCalls"to confirm valid values for your Autotask instance.
Service Calls have a three-layer structure:
ServiceCall
└── ServiceCallTicket(s) ← links a Ticket to the ServiceCall
└── ServiceCallTicketResource(s) ← assigns a Technician to that ticket
ServiceCall can cover multiple ticketsServiceCallTicket can have multiple resources (technicians)roleID to specify their role for billing purposes| Field | Type | Required | Description |
|---|---|---|---|
id | int | System | Auto-generated ID |
description | string | Yes | Description of the service call |
status | int | No | Status picklist ID (default: 1 = New) |
startDateTime | datetime | Yes | Scheduled start (ISO 8601) |
endDateTime | datetime | Yes | Scheduled end (ISO 8601) |
duration | decimal | System | Calculated from start/end |
companyID | int | No | Company this service call is for |
companyLocationID | int | No | Site/location within the company |
complete | boolean | No | Set true to mark complete |
createDate | datetime | System | When the service call was created |
creatorResourceID | int | System | Who created the service call |
lastModifiedDateTime | datetime | System | Last update timestamp |
| Field | Type | Required | Description |
|---|---|---|---|
id | int | System | Auto-generated ID |
serviceCallID | int | Yes | The parent service call |
ticketID | int | Yes | The linked ticket |
| Field | Type | Required | Description |
|---|---|---|---|
id | int | System | Auto-generated ID |
serviceCallTicketID | int | Yes | The parent service call ticket |
resourceID | int | Yes | The technician (resource) to assign |
roleID | int | No | Role for billing rate determination |
| Tool | Description |
|---|---|
autotask_get_service_call | Get a service call by ID |
autotask_search_service_calls | Search by company, status, or date range |
autotask_create_service_call | Create a new service call |
autotask_update_service_call | Update details, times, or status |
autotask_delete_service_call | Delete a service call |
autotask_search_service_call_tickets | Find tickets linked to a service call |
autotask_create_service_call_ticket | Link a ticket to a service call |
autotask_delete_service_call_ticket | Remove a ticket from a service call |
autotask_search_service_call_ticket_resources | Find technicians assigned to a service call ticket |
autotask_create_service_call_ticket_resource | Assign a technician to a service call ticket |
autotask_delete_service_call_ticket_resource | Remove a technician assignment |
1. autotask_create_service_call
→ description, startDateTime, endDateTime, companyID
2. autotask_create_service_call_ticket
→ serviceCallID (from step 1), ticketID
3. autotask_create_service_call_ticket_resource
→ serviceCallTicketID (from step 2), resourceID, roleID
Two equivalent approaches:
# Option A: Set complete flag
autotask_update_service_call → serviceCallId, complete: true
# Option B: Update status
autotask_update_service_call → serviceCallId, status: 5
autotask_search_service_call_tickets → serviceCallId: <id>
autotask_search_service_call_tickets → ticketId: <id>
autotask_search_service_calls → companyId: <id>, startAfter: "2026-03-22T00:00:00Z"
POST /v1.0/ServiceCalls
Content-Type: application/json
{
"description": "On-site visit - network troubleshooting",
"status": 1,
"startDateTime": "2026-03-25T09:00:00Z",
"endDateTime": "2026-03-25T12:00:00Z",
"companyID": 12345
}
POST /v1.0/ServiceCallTickets
Content-Type: application/json
{
"serviceCallID": 99001,
"ticketID": 54321
}
POST /v1.0/ServiceCallTicketResources
Content-Type: application/json
{
"serviceCallTicketID": 88001,
"resourceID": 29744150,
"roleID": 5
}
PATCH /v1.0/ServiceCalls
Content-Type: application/json
{
"id": 99001,
"complete": true
}
POST /v1.0/ServiceCalls/query
Content-Type: application/json
Upcoming service calls for a company:
{
"filter": [
{ "op": "eq", "field": "companyID", "value": 12345 },
{ "op": "gte", "field": "startDateTime", "value": "2026-03-22T00:00:00Z" }
],
"pageSize": 25
}
Open service calls (not complete):
{
"filter": [
{ "op": "noteq", "field": "status", "value": 5 }
]
}
| Code | Cause | Resolution |
|---|---|---|
| 400 | Missing required fields | Ensure description, startDateTime, endDateTime are provided |
| 400 | Invalid datetime format | Use ISO 8601 format: 2026-03-25T09:00:00Z |
| 404 | Service call not found | Confirm the ID exists |
| 404 | Ticket not found | Confirm ticket ID before linking |
ServiceCallTicketResource requires a ServiceCallTicketID, not a ServiceCallIDcompanyID on the service call — Helps with scheduling views and reportingautotask_get_field_info to discover instance-specific status picklist values before creating service calls