Autotask Service Call Management
Overview
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.
Anti-triggers
- The underlying request being worked — a service call schedules
tickets, it does not replace them; use
autotask-tickets. - Hours actually worked — a service call is a plan; billable time
is logged separately with
autotask-time-entries. - Multi-phase planned work with dependencies — use
autotask-projects.
Service Call Status Codes
| 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.
Data Model
Service Calls have a three-layer structure:
ServiceCall
└── ServiceCallTicket(s) ← links a Ticket to the ServiceCall
└── ServiceCallTicketResource(s) ← assigns a Technician to that ticket
- A single
ServiceCallcan cover multiple tickets - Each
ServiceCallTicketcan have multiple resources (technicians) - Resources can have a
roleIDto specify their role for billing purposes
Complete Field Reference
ServiceCall Fields
| 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 |
ServiceCallTicket Fields
| Field | Type | Required | Description |
|---|---|---|---|
id |
int | System | Auto-generated ID |
serviceCallID |
int | Yes | The parent service call |
ticketID |
int | Yes | The linked ticket |
ServiceCallTicketResource Fields
| 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 |
Available MCP Tools
| 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 |
Common Workflows
Create a Service Call and Link a Ticket
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
Complete a Service Call
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
Find All Tickets for a Service Call
autotask_search_service_call_tickets → serviceCallId: <id>
Find All Service Calls for a Ticket
autotask_search_service_call_tickets → ticketId: <id>
Find Upcoming Service Calls for a Company
autotask_search_service_calls → companyId: <id>, startAfter: "2026-03-22T00:00:00Z"
API Patterns
Create Service Call
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
}
Link Ticket to Service Call
POST /v1.0/ServiceCallTickets
Content-Type: application/json
{
"serviceCallID": 99001,
"ticketID": 54321
}
Assign Technician
POST /v1.0/ServiceCallTicketResources
Content-Type: application/json
{
"serviceCallTicketID": 88001,
"resourceID": 29744150,
"roleID": 5
}
Update / Complete Service Call
PATCH /v1.0/ServiceCalls
Content-Type: application/json
{
"id": 99001,
"complete": true
}
Query Service Calls
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 }
]
}
Error Handling
| 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 |
Best Practices
- Always link at least one ticket — A service call with no linked tickets has no billable context
- Assign resources after linking tickets —
ServiceCallTicketResourcerequires aServiceCallTicketID, not aServiceCallID - Set
companyIDon the service call — Helps with scheduling views and reporting - Use
autotask_get_field_infoto discover instance-specific status picklist values before creating service calls - Complete promptly — Mark service calls complete when work is done so scheduling boards stay accurate
Related Skills
- Autotask Tickets - Ticket management
- Autotask Time Entries - Time tracking and billing
- Autotask API Patterns - Query builder and authentication