AgentSkillsCN

Contracts

当您需要管理Autotask合同与服务协议时,可使用此技能:管理定期服务、区块工时、按时间与材料计费,以及合同计费相关事务。本技能是MSP客户经理在Autotask PSA中处理服务协议、合同续签与计费结算的核心工具。

SKILL.md
--- frontmatter
description: >
  Use this skill when working with Autotask contracts and service agreements -
  recurring services, block hours, time & materials, and contract billing.
  Essential for MSP account managers handling service agreements, renewals,
  and billing in Autotask PSA.
triggers:
  - autotask contract
  - service agreement
  - block hours
  - recurring service
  - contract renewal
  - contract billing
  - managed services agreement
  - autotask billing

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.

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

API Patterns

Creating a Contract

http
POST /v1.0/Contracts
Content-Type: application/json
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

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

Creating Block Hours Contract

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

Then add block hours:

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

Searching Contracts

Active contracts for a company:

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

Contracts expiring soon:

json
{
  "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

http
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

    • Query contracts by endDate
    • Generate renewal report
  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