Source profileQuality 100/100

wyre-technology/msp-claude-plugins/msp-claude-plugins/kaseya/autotask/skills/tickets/SKILL.md

Autotask Tickets

Autotask ticket lifecycle: status/priority codes and transition rules, the ticket field schema, SLA calculation and clock behavior, escalation rules, ticket metrics, and the MCP tool surface (create, update, search, history, notes) for MSP service desk operations.

Source repository stars
39
Declared platforms
0
Static risk flags
0
Last source update
2026-08-06
Source checked
2026-08-06

Decision brief

What it does—and where it fits

Autotask ticket lifecycle: status/priority codes and transition rules, the ticket field schema, SLA calculation and clock behavior, escalation rules, ticket metrics, and the MCP tool surface (create, update, search, history, notes) for MSP service desk operations.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/wyre-technology/msp-claude-plugins --skill "msp-claude-plugins/kaseya/autotask/skills/tickets"
    Safe inspection promptEditorial

    Inspect the Agent Skill "Autotask Tickets" from https://github.com/wyre-technology/msp-claude-plugins/blob/c1011303bfd2a65abc9b260884d9858d1a482a6f/msp-claude-plugins/kaseya/autotask/skills/tickets/SKILL.md at commit c1011303bfd2a65abc9b260884d9858d1a482a6f. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Anti-triggers

      The status, priority, and queue IDs configured in your tenant —

      The status, priority, and queue IDs configured in your tenant —Note bodies, attachments, or charges hanging off a ticket — useStructured multi-phase work — project Tasks are a separate entity
    2. 02

      Ticket Status Codes

      Based on the Autotask API, these are the standard ticket status values:

      Completing directly from NEW generates a warningCOMPLETE requires resolution fieldESCALATED requires escalation reason
    3. 03

      Status Transition Rules

      Validation Rules: - Completing directly from NEW generates a warning - COMPLETE requires resolution field - ESCALATED requires escalation reason - INPROGRESS should have assigned resource

      Completing directly from NEW generates a warningCOMPLETE requires resolution fieldESCALATED requires escalation reason
    4. 04

      Ticket Priority Levels

      Note: In Autotask, lower numbers = lower priority. Priority 4 is most urgent.

      Note: In Autotask, lower numbers = lower priority. Priority 4 is most urgent.
    5. 05

      Ticket Field Reference

      Core fields to know: title, companyID, status, priority, queueID (all required on create); contactID, issueType/subIssueType, assignedResourceID + assignedResourceRoleID (must be set together), dueDateTime, and resolution (required when completing).

      Core fields to know: title, companyID, status, priority, queueID (all required on create); contactID, issueType/subIssueType, assignedResourceID + assignedResourceRoleID (must be set together), dueDateTime, and resoluti…See references/fields.md for the complete field reference (core, classification, assignment, SLA/timeline, contract/billing, and resolution fields).

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score100/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars39SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    wyre-technology/msp-claude-plugins
    Skill path
    msp-claude-plugins/kaseya/autotask/skills/tickets/SKILL.md
    Commit
    c1011303bfd2a65abc9b260884d9858d1a482a6f
    License
    Apache-2.0
    Collected
    2026-08-06
    Default branch
    main
    View the original SKILL.md

    Autotask Ticket Management

    Overview

    Autotask tickets are the core unit of service delivery in the PSA. Every client request, incident, problem, and change flows through the ticketing system. This skill covers comprehensive ticket management including business logic, SLA calculations, escalation rules, and performance metrics.

    Anti-triggers

    • The status, priority, and queue IDs configured in your tenant — the tables below are Autotask defaults and are routinely customised; fetch the real values with autotask-picklists.
    • Note bodies, attachments, or charges hanging off a ticket — use autotask-ticket-notes-attachments.
    • Structured multi-phase work — project Tasks are a separate entity from Tickets; use autotask-projects.
    • Tickets in Kaseya's other PSAs — BMS (kaseya-bms-api-patterns) and VSA (kaseya-vsa-api-patterns) each have their own ticket objects that do not sync with Autotask.
    • A ticket in a non-Kaseya PSA, or in an RMM's own helpdesk — "ticket", "status", "queue", and "SLA" mean the same thing in all of them and none of them read Autotask. Confirm the system of record first, then use connectwise-psa-tickets, halopsa-tickets, atera-tickets, syncro-tickets, superops-tickets, or ninjaone-rmm-tickets.

    Ticket Status Codes

    Based on the Autotask API, these are the standard ticket status values:

    Status IDNameDescriptionBusiness Logic
    1NEWNewly created ticketDefault for new tickets, SLA clock starts
    2IN_PROGRESSActively being workedResource should be assigned
    5COMPLETEIssue resolvedRequires resolution field, stops SLA
    6WAITING_CUSTOMERAwaiting customer responseSLA clock may pause
    13WAITING_MATERIALSWaiting for parts/equipmentSLA clock may pause
    14ESCALATEDEscalated to higher tierRequires escalation reason

    Status Transition Rules

    NEW (1) ──────────────────────────────> COMPLETE (5)
       │                                        ↑
       ↓                                        │
    IN_PROGRESS (2) ──────────────────────────>─┤
       │         │                              │
       │         ↓                              │
       │    WAITING_CUSTOMER (6) ──────────────>─┤
       │         │                              │
       │         ↓                              │
       │    WAITING_MATERIALS (13) ────────────>─┘
       │
       ↓
    ESCALATED (14) ─────> IN_PROGRESS (2) ────> COMPLETE (5)
    

    Validation Rules:

    • Completing directly from NEW generates a warning
    • COMPLETE requires resolution field
    • ESCALATED requires escalation reason
    • IN_PROGRESS should have assigned resource

    Ticket Priority Levels

    Priority IDNameResponse SLAResolution SLABusiness Context
    4CRITICAL1 hour4 hoursComplete business outage
    3HIGH2 hours8 hoursMajor productivity impact
    2MEDIUM4 hours24 hoursSingle user/workaround exists
    1LOW8 hours72 hoursMinor issue/enhancement

    Note: In Autotask, lower numbers = lower priority. Priority 4 is most urgent.

    Ticket Field Reference

    Core fields to know: title, companyID, status, priority, queueID (all required on create); contactID, issueType/subIssueType, assignedResourceID + assignedResourceRoleID (must be set together), dueDateTime, and resolution (required when completing).

    See references/fields.md for the complete field reference (core, classification, assignment, SLA/timeline, contract/billing, and resolution fields).

    SLA Calculation Logic

    Default SLA Times by Priority

    const SLA_DEFAULTS = {
      CRITICAL: { response: 1, resolution: 4 },   // hours
      HIGH:     { response: 2, resolution: 8 },
      MEDIUM:   { response: 4, resolution: 24 },
      LOW:      { response: 8, resolution: 72 }
    };
    

    Contract SLA terms override these defaults when present. See references/examples.md for the due-date calculation function.

    SLA Clock Behavior

    StatusSLA Clock
    NEWRunning
    IN_PROGRESSRunning
    WAITING_CUSTOMERPaused (configurable)
    WAITING_MATERIALSPaused (configurable)
    ESCALATEDRunning
    COMPLETEStopped

    Escalation Rules

    Escalation Levels

    LevelTriggerAction
    1SLA 0-4 hours overdueNotify assigned resource
    2SLA 4-8 hours overdueNotify team lead
    3SLA 8+ hours overdueNotify management

    Automatic escalation triggers: an SLA violation (overdue dueDateTime), a stale WAITING_CUSTOMER status (no activity for 7+ days), and CRITICAL-priority tickets with no assignedResourceID. See references/examples.md for the rule-check implementation.

    Ticket Metrics & KPIs

    Key metrics: average resolution time (completedDatecreateDate for COMPLETE tickets), SLA compliance rate (completed-on-time or still-within-SLA, divided by tickets with a due date), and escalation count. See references/examples.md for the calculation function and a sample status/priority distribution report.

    MCP Tool Reference

    Create a Ticket

    Tool: autotask_create_ticket
    Args: {
      "companyID": 12345,
      "title": "Unable to access email - multiple users affected",
      "description": "Sales team (5 users) reporting Outlook showing disconnected since 9am.",
      "queueID": 8,
      "priority": 3,
      "status": 1,
      "contactID": 67890
    }
    

    Required: companyID, title, status, priority, queueID

    Update a Ticket

    Tool: autotask_update_ticket
    Args: {
      "ticketId": 54321,
      "status": 2,
      "assignedResourceID": 29744150,
      "assignedResourceRoleID": 29683459
    }
    

    Only fields provided will be changed. Common update scenarios:

    ScenarioFields to Set
    Assign technicianassignedResourceID + assignedResourceRoleID (both required together)
    Change statusstatus (see status codes above)
    Complete ticketstatus: 5 (resolution via ticket note)
    Escalatestatus: 14
    Update prioritypriority
    Change due datedueDateTime (ISO 8601 format)
    Reassign contactcontactID

    Search Tickets

    Tool: autotask_search_tickets
    Args: {
      "companyId": 12345,
      "status": 1,
      "assignedResourceId": 29744150,
      "searchTerm": "email",
      "pageSize": 25
    }
    

    Filters: companyId, status, priority, queueId, assignedResourceId, searchTerm, pageSize

    Get Ticket Details

    Tool: autotask_get_ticket_details
    Args: { "ticketId": 54321 }
    

    Get Ticket History (Audit Trail)

    Use this to answer status transition and change attribution questions — e.g. "when did this ticket move from In Progress to Waiting Customer?", "who changed the priority?", "how long did it sit in NEW before someone picked it up?". Each row is one audited field change on the ticket.

    Tool: autotask_search_ticket_history
    Args: { "ticketId": 54321, "pageSize": 100 }
    

    Required: ticketId (Autotask does not support unscoped history queries — there is no way to ask "show me every status transition across all tickets" without enumerating ticket IDs and looping). pageSize defaults to 50, max 500.

    Returns an array of history entries. Field set is picklist-dependent; common fields include id, ticketID, resourceID (who made the change), dateChanged, and field-specific before/after columns. For status transitions, look for changes where the audited field is status and compare the before/after picklist IDs against the status codes table above.

    Workflow for "find tickets that went from status X to status Y":

    1. autotask_search_tickets with the relevant filters (company, date range, current status) to get candidate ticket IDs.
    2. For each candidate, call autotask_search_ticket_history and look for a status-field change where old=X and new=Y.
    3. This is a fan-out pattern. On large tenants, scope the initial search tightly (by company, date, or assigned resource) before looping.

    To fetch a single history entry by its ID:

    Tool: autotask_get_ticket_history
    Args: { "historyId": 987654 }
    

    Add a Ticket Note

    Tool: autotask_create_ticket_note
    Args: {
      "ticketId": 54321,
      "title": "Status Update",
      "description": "Identified root cause as KB5034441 update. Applying fix.",
      "noteType": 1,
      "publish": 0
    }
    

    noteType: 1=Internal, 2=External. publish: 0=No, 1=Yes (visible to client portal).

    API Patterns

    Creating a Ticket with Business Validation

    POST /v1.0/Tickets
    Content-Type: application/json
    
    {
      "companyID": 12345,
      "title": "Unable to access email - multiple users affected",
      "description": "Sales team (5 users) reporting Outlook showing disconnected since 9am. Webmail working.",
      "queueID": 8,
      "priority": 3,
      "status": 1,
      "issueType": 5,
      "subIssueType": 12,
      "contactID": 67890,
      "dueDateTime": "2024-02-15T17:00:00Z"
    }
    

    Query Builder Patterns

    Open tickets for company with includes:

    {
      "filter": [
        {"field": "companyID", "op": "eq", "value": 12345},
        {"field": "status", "op": "noteq", "value": 5}
      ],
      "includeFields": ["Company.companyName", "AssignedResource.firstName", "AssignedResource.lastName"]
    }
    

    Tickets created today (CORRECT — must use gte + lt range):

    {
      "filter": [
        {"field": "createDate", "op": "gte", "value": "2026-04-13T00:00:00Z"},
        {"field": "createDate", "op": "lt", "value": "2026-04-14T00:00:00Z"}
      ]
    }
    

    Warning: Using only today's date returns zero results. You MUST use a range: gte today AND lt tomorrow. See the api-patterns skill for the full explanation and dynamic date computation.

    See references/api.md for additional query patterns (SLA-breached tickets, date-range queries) and the full status-update / note-creation request bodies (complete-with-resolution, escalate-with-reason, internal vs external notes).

    Common Workflows

    Ticket Creation Flow

    1. Validate company exists and has active contract
    2. Check for duplicates - search open tickets with similar title
    3. Auto-set defaults:
      • Status → NEW (1)
      • Priority → MEDIUM (2) if not specified
    4. Calculate SLA based on priority and contract
    5. Route to queue based on issue type
    6. Send acknowledgment to contact

    Status Transition Validation

    Before transitioning a ticket, validate required fields per target status: COMPLETE requires resolution (and warns if skipping the IN_PROGRESS step), ESCALATED requires escalationReason, and IN_PROGRESS warns if no assignedResourceID is set. See references/examples.md for the validation function.

    Error Handling

    Common API Errors

    CodeMessageResolution
    400Invalid field valueVerify picklist IDs for your instance
    400Status transition not allowedCheck workflow rules
    401UnauthorizedVerify API credentials
    403Insufficient permissionsCheck resource security level
    404Entity not foundConfirm ticket/company exists
    409Conflict/LockedTicket being edited by another user
    429Rate limitedImplement exponential backoff

    Validation Errors

    ErrorCauseFix
    CompanyID requiredMissing companyAll tickets need a company
    QueueID invalidQueue not foundQuery /v1.0/Queues for valid IDs
    Resolution requiredCompleting without resolutionAdd resolution text
    Status transition invalidInvalid workflowCheck allowed transitions

    Best Practices

    1. Validate before creating - Search for duplicates, verify company/contract
    2. Use descriptive titles - Include who's affected and symptoms
    3. Set accurate priority - Use impact/urgency matrix, not everything is Critical
    4. Log time immediately - Don't batch at end of day
    5. Update status promptly - Keeps queues accurate for reporting
    6. Use internal notes for technical details - Keep external notes professional
    7. Monitor SLA metrics - Address breaches before they escalate

    Related Skills

    Alternatives

    Compare before choosing

    Computed 10023,881

    alirezarezvani/claude-skills

    app-store-optimization

    App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist

    Computed 1004,969

    dotnet/skills

    migrate-vstest-to-mtp

    Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing

    Computed 9929,907

    HKUDS/Vibe-Trading

    strategy-generate

    Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.

    Computed 9832,785

    K-Dense-AI/scientific-agent-skills

    dask

    Distributed computing for larger-than-RAM pandas/NumPy workflows. Use when you need to scale existing pandas/NumPy code beyond memory or across clusters. Best for parallel file processing, distributed ML, integration with existing pandas code. For out-of-core analytics on single machine use vaex; for in-memory speed use polars.