Source profileQuality 94/100

WYRE-AI/msp-claude-plugins/msp-claude-plugins/kaseya/autotask/skills/contracts/SKILL.md

Autotask Contracts

Autotask contract and service agreement management - contract types (recurring services, block hours, time & materials, fixed price, retainer), service/service bundle associations, SLAs, and how contracts drive billing for MSP account managers.

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

Decision brief

What it does: where it fits

Autotask contract and service agreement management - contract types (recurring services, block hours, time & materials, fixed price, retainer), service/service bundle associations, SLAs, and how contracts drive billing for MSP account managers.

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-AI/msp-claude-plugins --skill "msp-claude-plugins/kaseya/autotask/skills/contracts"
    Safe inspection promptEditorial

    Inspect the Agent Skill "Autotask Contracts" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/kaseya/autotask/skills/contracts/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. 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

      Contract Setup

      1. Create contract - Set type, dates, status - Assign SLA

      Create contractSet type, dates, statusAssign SLA
    2. 02

      Anti-triggers

      The invoice or billing item a contract produced — use

      The invoice or billing item a contract produced — useThe catalog definition behind a contract service — services andKaseya BMS agreements — BMS is a separate Kaseya PSA with its own
    3. 03

      Key Concepts

      Services define what's included in a contract:

      Services define what's included in a contract:
    4. 04

      Contract Types

      Review the “Contract Types” section in the pinned source before continuing.

      Review and apply the “Contract Types” source section.
    5. 05

      Contract Fields

      Review the “Contract Fields” section in the pinned source before continuing.

      Review and apply the “Contract Fields” source section.

    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 score94/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars42SourceRepository 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-AI/msp-claude-plugins
    Skill path
    msp-claude-plugins/kaseya/autotask/skills/contracts/SKILL.md
    Commit
    5005f73ba2f52cd299f58aa6bb79f4e70ae87103
    License
    Apache-2.0
    Collected
    2026-08-28
    Default branch
    main
    View the original SKILL.md

    Autotask Contracts Management

    Overview

    Contracts in Autotask define the service relationship with clients - what services you provide, how you bill for them, and what service levels apply. Contracts control how time and expenses flow to invoices and are critical for MSP financial management.

    Anti-triggers

    • The invoice or billing item a contract produced — use autotask-billing.
    • The catalog definition behind a contract service — services and bundles exist in the catalog independently of any contract; use autotask-product-catalog.
    • Kaseya BMS agreements — BMS is a separate Kaseya PSA with its own contract objects that do not sync with Autotask; use kaseya-bms-api-patterns.
    • A HaloPSA agreement — Halo models coverage, prepaid hours, and SLA on its own contract object, which does not sync with Autotask; use halopsa-contracts.

    Key Concepts

    Contract Types

    TypeDescriptionBilling Method
    Recurring ServicesMonthly/annual managed servicesFixed recurring fee
    Block HoursPrepaid hour bankDeduct from balance
    Time & MaterialsPay as you goBill actual time
    Fixed PriceProject-based fixed feeMilestone billing
    RetainerPrepaid monthly hoursUse or lose

    Contract Fields

    FieldDescriptionRequired
    idUnique identifierSystem
    contractNameContract nameYes
    companyIDClient companyYes
    contractTypeType of contractYes
    statusContract statusYes
    startDateContract startYes
    endDateContract endYes
    setupFeeOne-time setup feeNo
    timeReportingRequiresStartStopTimesRequire start/stopNo
    serviceLevelAgreementIDSLA assignmentNo

    Contract Status

    IDStatusDescription
    1ActiveCurrent, billable
    2InactiveSuspended
    3CancelledTerminated

    Service/Service Bundle

    Services define what's included in a contract:

    FieldDescription
    serviceNameName of service
    unitPricePrice per unit
    unitCostCost per unit
    periodTypeMonthly, Quarterly, Annual
    isOptionalRequired vs optional

    MCP Tool Reference

    The autotask-mcp server exposes typed contract tools — prefer these over autotask_raw_request. Read tools return contract header fields only (no service lines), keeping responses light.

    Search Contracts

    Tool: autotask_search_contracts
    Args: {
      "companyID": 12345,
      "status": 1,
      "contractType": 7,
      "endDateFrom": "2026-01-01",
      "endDateTo": "2026-12-31",
      "searchTerm": "Managed",
      "pageSize": 25
    }
    

    All filters optional: searchTerm (contains-match on contract name), companyID, status, contractType (picklist ID), endDateFrom/endDateTo (ISO dates bounding the end date), pageSize (default 25, max 500).

    Get a Single Contract

    Tool: autotask_get_contract
    Args: { "id": 54321 }
    

    Expiring / Expired Contracts Report

    The renewal-pipeline tool. Lists contracts whose endDate falls within the next daysAhead days (default 60), org-wide or scoped to one company:

    Tool: autotask_list_expiring_contracts
    Args: {
      "daysAhead": 90,
      "companyID": 12345,
      "includeExpired": true,
      "status": 1,
      "pageSize": 100
    }
    
    • Pair with status: 1 to get "in effect but lapsing" contracts — the renewal call list.
    • includeExpired: true drops the today lower bound, surfacing contracts already past their end date. Autotask does not auto-deactivate expired contracts, so status: 1 + includeExpired: true finds clients still receiving service on expired paper — the compliance-risk case.

    Create a Contract

    Tool: autotask_create_contract
    Args: {
      "companyID": 12345,
      "contractName": "Acme Corp - Managed Services",
      "contractType": 1,
      "contractCategory": 3,
      "startDate": "2026-01-01",
      "endDate": "2026-12-31",
      "status": 1
    }
    

    Required: companyID, contractName, contractType, contractCategory, startDate, endDate

    Create Contract Shells in Bulk

    For multi-contract onboarding (e.g. one contract per client location), pass up to 50 shells in one call — same fields per item as autotask_create_contract:

    Tool: autotask_create_contracts_bulk
    Args: {
      "contracts": [
        { "companyID": 12345, "contractName": "Acme - HQ", "contractType": 1, "contractCategory": 3, "startDate": "2026-01-01", "endDate": "2026-12-31" },
        { "companyID": 12345, "contractName": "Acme - Branch", "contractType": 1, "contractCategory": 3, "startDate": "2026-01-01", "endDate": "2026-12-31" }
      ]
    }
    

    Shells are created sequentially (Autotask has no batch endpoint); a failure on one shell does not abort the rest. Each item reports {index, contractName, success, id | error} — retry only the failures.

    Update a Contract

    Tool: autotask_update_contract
    Args: { "id": 54321, "endDate": "2027-12-31", "status": 1 }
    

    Only fields provided change — the typical renewal move is extending endDate.

    Contract Service Lines

    autotask_create_contract_service (required: contractID, serviceID, unitPrice) and autotask_update_contract_service (required: id, contractID) manage the ContractServices line items on a contract.

    API Patterns

    Raw REST shapes for reference — the typed tools above cover these; reach for autotask_raw_request only for entities without typed tools (ContractBlocks, ContractRetainers, etc.).

    Creating a Contract

    POST /v1.0/Contracts
    Content-Type: application/json
    
    {
      "contractName": "Acme Corp - Managed Services",
      "companyID": 12345,
      "contractType": 1,
      "status": 1,
      "startDate": "2024-01-01",
      "endDate": "2024-12-31",
      "setupFee": 500.00,
      "timeReportingRequiresStartStopTimes": true,
      "serviceLevelAgreementID": 1
    }
    

    Adding Services to Contract

    POST /v1.0/ContractServices
    Content-Type: application/json
    
    {
      "contractID": 54321,
      "serviceID": 111,
      "unitPrice": 150.00,
      "adjustedPrice": 150.00,
      "quantity": 50,
      "effectiveDate": "2024-01-01"
    }
    

    Creating Block Hours Contract

    POST /v1.0/Contracts
    Content-Type: application/json
    
    {
      "contractName": "Acme Corp - Block Hours",
      "companyID": 12345,
      "contractType": 4,
      "status": 1,
      "startDate": "2024-01-01",
      "endDate": "2024-06-30"
    }
    

    Then add block hours:

    POST /v1.0/ContractBlocks
    Content-Type: application/json
    
    {
      "contractID": 54322,
      "datePurchased": "2024-01-01",
      "hoursPurchased": 40,
      "hourlyRate": 150.00,
      "isPaid": true
    }
    

    Searching Contracts

    Active contracts for a company:

    {
      "filter": [
        {"field": "companyID", "op": "eq", "value": 12345},
        {"field": "status", "op": "eq", "value": 1}
      ]
    }
    

    Contracts expiring soon:

    {
      "filter": [
        {"field": "status", "op": "eq", "value": 1},
        {"field": "endDate", "op": "lte", "value": "2024-03-31"},
        {"field": "endDate", "op": "gte", "value": "2024-01-01"}
      ]
    }
    

    Checking Block Hour Balance

    GET /v1.0/ContractBlocks/query?search={"filter":[{"field":"contractID","op":"eq","value":54322}]}
    

    Calculate remaining hours:

    • Sum hoursPurchased - Sum of time entries against contract

    Renewing a Contract

    1. Create new contract with updated dates
    2. Copy services from old contract
    3. Update old contract status to Inactive
    4. Link any ongoing tickets to new contract

    Common Workflows

    Contract Setup

    1. Create contract

      • Set type, dates, status
      • Assign SLA
    2. Add services

      • Define included services
      • Set pricing and quantities
    3. Configure billing

      • Invoice frequency
      • Payment terms
    4. Assign to tickets

      • Set as default for company
      • Route work appropriately

    Contract Renewal

    1. Identify expiring contracts

      • autotask_list_expiring_contracts with daysAhead 30/60/90 windows
      • Add includeExpired: true to catch already-lapsed contracts still marked active
    2. Review contract performance

      • Compare budgeted vs actual hours
      • Analyze profitability
    3. Negotiate renewal

      • Adjust pricing if needed
      • Update service scope
    4. Create renewal

      • New contract with new dates
      • Update company default contract

    Block Hours Management

    1. Monitor balance

      • Track hours remaining
      • Alert at threshold (e.g., 10 hours)
    2. Replenish as needed

      • Add new block purchase
      • Invoice for new hours
    3. Handle overages

      • Bill at T&M rate
      • Or convert to new block

    Service Level Agreements (SLAs)

    Contracts can be linked to SLAs:

    SLA MetricDescription
    Response TimeTime to first response
    Resolution TimeTime to resolve
    UptimeSystem availability %
    Business HoursWhen SLA applies

    SLA violations trigger alerts and can affect contract terms.

    Error Handling

    Common API Errors

    CodeMessageResolution
    400Invalid contract typeUse valid contract type ID
    400EndDate before StartDateFix date sequence
    409Cannot modify - has billingAdjust dates only
    404ServiceID not foundVerify service exists

    Validation Errors

    "CompanyID is required" - Must associate with a company

    "StartDate is required" - All contracts need start date

    "Invalid service for contract type" - Service must match contract type

    Best Practices

    1. Name consistently - "Company - Contract Type" format
    2. Set end dates - Never leave end date empty
    3. Review renewals - Quarterly expiration review
    4. Track profitability - Compare budgeted vs actual
    5. Document terms - Note special conditions
    6. Alert on block hours - Proactive replenishment
    7. Assign SLAs - Define service expectations
    8. Audit regularly - Ensure tickets use correct contracts

    Related Skills

    Frequently asked questions

    What to verify before installation and use

    What does the Autotask Contracts source document cover?

    Autotask contract and service agreement management - contract types (recurring services, block hours, time & materials, fixed price, retainer), service/service bundle associations, SLAs, and how contracts drive billing for MSP account managers.

    How do I install Autotask Contracts?

    The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/kaseya/autotask/skills/contracts". Inspect the command and pinned source before running it.

    Alternatives

    Compare before choosing

    Computed 10045,960

    coreyhaines31/marketingskills

    ab-testing

    When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program

    Computed 10025,136

    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 100147

    equinor/neqsim

    neqsim-professional-reporting

    Engineering deliverable quality — the nine analytical-depth moves (contributor ranking, adjudicating the source document, quantitative rule-outs, robustness crossover, conservatism direction, discriminating test), results.json schema, figure→discussion→linked_results traceability, evidence matrices, assumptions/gaps registers, citation conventions, KaTeX math formatting, units consistency, executive-summary structure, AACE class declaration. USE WHEN: producing a task report, a PEPR/M1/root-caus

    Computed 100133

    JasonColapietro/suede-creator-skills

    suede-ab-testing

    Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).