From kaseya-autotask
Manages Autotask quotes and line items: creates customer quotes, adds products/services/bundles, handles pricing/discounts, links to opportunities, builds proposals. Covers full lifecycle.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin autotaskThis skill uses the workspace's default tool permissions.
Quotes are formal pricing proposals sent to customers for products, services, and service bundles. Each quote contains line items that reference catalog entries (products, services, or service bundles) with quantities, pricing, and optional discounts. Quotes are typically linked to opportunities in the sales pipeline and can be converted to contracts or projects upon acceptance.
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.
Quotes are formal pricing proposals sent to customers for products, services, and service bundles. Each quote contains line items that reference catalog entries (products, services, or service bundles) with quantities, pricing, and optional discounts. Quotes are typically linked to opportunities in the sales pipeline and can be converted to contracts or projects upon acceptance.
Quote (Header)
├── Quote Item: Product A (qty: 5, $100/ea)
├── Quote Item: Service B (qty: 1, $500/mo)
├── Quote Item: Service Bundle C (qty: 10, $50/ea)
└── Quote Item: Optional - Extended Warranty (optional)
| Type ID | Name | Description |
|---|---|---|
| 1 | Product | Physical or virtual products from catalog |
| 2 | Cost | Generic cost items |
| 3 | Labor | Labor/professional services hours |
| 4 | Expense | Expense items |
| 6 | Shipping | Shipping and handling |
| 11 | Service | Recurring services from catalog |
| 12 | ServiceBundle | Service bundles from catalog |
Each quote item must reference exactly one catalog item type:
| Reference Field | Links To | Use When |
|---|---|---|
productID | Product catalog | Hardware, software, one-time purchases |
serviceID | Service catalog | Recurring managed services |
serviceBundleID | Service bundle catalog | Grouped service packages |
These are mutually exclusive - set only one per line item. The quoteItemType is auto-determined when you link a catalog item.
| Field | Type | Required | Description |
|---|---|---|---|
id | int | System | Auto-generated unique identifier |
name | string | No | Quote name/title |
description | string | No | Quote description |
companyId | int | Yes | Customer company ID |
contactId | int | No | Customer contact ID |
opportunityId | int | No | Linked opportunity ID |
effectiveDate | date | No | Quote effective date (YYYY-MM-DD) |
expirationDate | date | No | Quote expiration date (YYYY-MM-DD) |
| Field | Type | Required | Description |
|---|---|---|---|
id | int | System | Auto-generated unique identifier |
quoteId | int | Yes | Parent quote ID |
name | string | No | Item name (auto-populated from catalog) |
description | string | No | Item description |
quantity | decimal | Yes | Quantity |
unitPrice | decimal | No | Unit price |
unitCost | decimal | No | Unit cost |
unitDiscount | decimal | No | Per-unit discount amount (default: 0) |
lineDiscount | decimal | No | Total line discount amount (default: 0) |
percentageDiscount | decimal | No | Percentage discount (default: 0) |
isOptional | boolean | No | Whether item is optional (default: false) |
serviceID | int | No | Linked service (mutually exclusive) |
productID | int | No | Linked product (mutually exclusive) |
serviceBundleID | int | No | Linked service bundle (mutually exclusive) |
sortOrderID | int | No | Display sort order |
quoteItemType | int | No | Item type (auto-determined from linked item) |
Three discount mechanisms can be applied to quote items:
| Discount Type | Field | Description | Example |
|---|---|---|---|
| Unit Discount | unitDiscount | Fixed amount off per unit | $10 off each unit |
| Line Discount | lineDiscount | Fixed amount off the entire line | $50 off the line total |
| Percentage Discount | percentageDiscount | Percentage off the line total | 15% off |
Calculation order: Unit discount is applied first (reduces unitPrice), then line or percentage discount is applied to the subtotal.
Tool: autotask_create_quote
Args: {
"companyId": 67890,
"name": "Network Refresh - Contoso Ltd",
"description": "Hardware and managed services quote for office network upgrade",
"contactId": 11111,
"opportunityId": 22222,
"effectiveDate": "2026-03-01",
"expirationDate": "2026-03-31"
}
Required: companyId only. All other fields are optional but recommended.
Tool: autotask_create_quote_item
Args: {
"quoteId": 55555,
"productID": 100,
"quantity": 5,
"unitPrice": 1299.00,
"unitCost": 850.00,
"description": "FortiGate 60F firewall"
}
Tool: autotask_create_quote_item
Args: {
"quoteId": 55555,
"serviceID": 200,
"quantity": 25,
"unitPrice": 45.00,
"description": "Managed Endpoint Protection - per device/month"
}
Tool: autotask_create_quote_item
Args: {
"quoteId": 55555,
"serviceBundleID": 300,
"quantity": 1,
"unitPrice": 2500.00,
"description": "Complete Managed IT Package"
}
Tool: autotask_create_quote_item
Args: {
"quoteId": 55555,
"productID": 150,
"quantity": 1,
"unitPrice": 499.00,
"isOptional": true,
"description": "Extended 3-year warranty"
}
Tool: autotask_create_quote_item
Args: {
"quoteId": 55555,
"productID": 100,
"quantity": 10,
"unitPrice": 1299.00,
"percentageDiscount": 10,
"description": "FortiGate 60F - volume discount"
}
Tool: autotask_update_quote_item
Args: {
"quoteItemId": 77777,
"quantity": 8,
"unitPrice": 1199.00,
"percentageDiscount": 15
}
Tool: autotask_delete_quote_item
Args: { "quoteItemId": 77777 }
Tool: autotask_search_quotes
Args: {
"companyId": 67890,
"searchTerm": "network",
"pageSize": 25
}
Filters:
companyId - Filter by customercontactId - Filter by contactopportunityId - Filter by linked opportunitysearchTerm - Search quote name/descriptionpageSize - Results per page (default 25, max 100)Tool: autotask_get_quote
Args: { "quoteId": 55555 }
Tool: autotask_search_quote_items
Args: {
"quoteId": 55555,
"pageSize": 50
}
Tool: autotask_get_quote_item
Args: { "quoteItemId": 77777 }
autotask_search_companies: { "searchTerm": "Contoso" }
autotask_search_contacts: { "companyId": <company_id>, "searchTerm": "John" }
autotask_search_products: { "searchTerm": "FortiGate" }
autotask_search_services: { "searchTerm": "Managed" }
autotask_create_quote: {
"companyId": <company_id>,
"contactId": <contact_id>,
"name": "Network Refresh Proposal",
"effectiveDate": "2026-03-01",
"expirationDate": "2026-04-01"
}
autotask_create_quote_item: { "quoteId": <quote_id>, "productID": <id>, "quantity": 5 }
autotask_create_quote_item: { "quoteId": <quote_id>, "serviceID": <id>, "quantity": 25 }
autotask_search_quote_items: { "quoteId": <quote_id> }
autotask_create_quote: {
"companyId": 67890,
"opportunityId": 22222,
"name": "Q1 Hardware Refresh"
}
autotask_update_quote_item: {
"quoteItemId": 77777,
"unitPrice": 1099.00,
"percentageDiscount": 5
}
autotask_delete_quote_item: { "quoteItemId": 77777 }
For bulk purchases, use percentageDiscount:
| Quantity | Discount |
|---|---|
| 1-9 | 0% |
| 10-24 | 5% |
| 25-49 | 10% |
| 50+ | 15% |
Use lineDiscount to apply a flat discount when selling a bundle of products together:
autotask_create_quote_item: {
"quoteId": 55555,
"productID": 100,
"quantity": 5,
"unitPrice": 1299.00,
"lineDiscount": 500.00,
"description": "FortiGate 60F - bundle price"
}
Mark add-ons as optional so the customer can see the value without commitment:
autotask_create_quote_item: {
"quoteId": 55555,
"serviceID": 250,
"quantity": 1,
"isOptional": true,
"description": "24/7 Premium Support (optional upgrade)"
}
| Error | Cause | Resolution |
|---|---|---|
| companyId required | Missing customer | Provide companyId when creating quote |
| quoteId required | Missing parent quote | Create a quote first, then add items |
| quantity required | Missing quantity | Always provide quantity for line items |
| Multiple item references | Set more than one of serviceID/productID/serviceBundleID | Set exactly ONE item reference per line item |
| Invalid productID | Product not found | Verify with autotask_search_products |
| Invalid serviceID | Service not found | Verify with autotask_search_services |
| Invalid serviceBundleID | Bundle not found | Verify with autotask_search_service_bundles |
sortOrderID to control presentation orderautotask_get_product or autotask_get_service to check current catalog pricing before quotingautotask_search_quote_items to verify all items and totals