Claude Skill

Autotask Product Catalog

Autotask product catalog structure - Products, Services, and Service Bundles - and how Price Lists override default unit pricing. Covers product/service fields, inventory tracking, and cost-vs-billing margin analysis for MSP quoting and procurement.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download wyre-ai-msp-claude-plugins-msp-claude-plugins_kaseya_autotask_skills_product-catalog-147da75.zip · 2 KB
Part of wyre-ai/msp-claude-plugins — 48 skills

Install

skills CLI npx skills add https://github.com/WYRE-AI/msp-claude-plugins/tree/main/msp-claude-plugins/kaseya/autotask/skills/product-catalog
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install wyre-ai-msp-claude-plugins@llmmart
Git git clone https://github.com/WYRE-AI/msp-claude-plugins.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole wyre-ai/msp-claude-plugins collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Autotask Product Catalog

Overview

The Autotask product catalog manages three types of sellable items: Products (one-time purchases like hardware and software licenses), Services (recurring offerings used in contracts), and Service Bundles (grouped services sold together). Each type has associated pricing through Price Lists that control unit prices, markup, and billing codes.

This skill covers product catalog operations for MSP technicians, sales engineers, and managers who need to look up products, verify pricing, check inventory levels, or audit cost-vs-billing rates.

Anti-triggers

  • Putting a catalog item on a customer proposal — quote items have their own type rules and discount mechanisms; use autotask-quotes.
  • The recurring services a client actually pays for — those are contract services, not catalog entries; use autotask-contracts.
  • Supplier SKUs, buy prices, and purchase orders — this catalog holds your sell price only; procurement lives in the separate Kaseya Quote Manager plugin, kaseya-quote-manager-purchasing.
  • The same catalog in another PSA — a ConnectWise PSA product carries its own IDs, pricing flags, and procurement links; use connectwise-psa-product-catalog.

Key Concepts

Product Types

Type Description Use Case Recurring
Product Physical or digital item Hardware, licenses, one-time purchases No
Service Recurring offering Managed services, monthly monitoring Yes
Service Bundle Grouped services All-in-one MSP packages Yes
Inventory Item Tracked stock Warehouse items with serial numbers No

Product Fields

Field Type Description
id number Unique product identifier
name string Product display name
sku string Stock keeping unit code
description string Product description
isActive boolean Whether product is currently available
unitCost number Internal cost per unit
unitPrice number Default selling price per unit
msrp number Manufacturer's suggested retail price
productCategory number Category ID (picklist)
vendorProductNumber string Vendor's product number
manufacturerName string Manufacturer name
isSerialTracked boolean Whether serial numbers are tracked
priceCostMethod number How pricing is calculated
defaultVendorID number Default vendor/supplier

Price List Structure

Price lists control what customers actually pay. They can override default product pricing per currency:

Field Type Description
productID / serviceID number The item being priced
currencyCode string Currency (e.g., USD, GBP)
unitPrice number Price in this price list
usesInternalCurrencyPrice boolean Whether to use internal currency

API Patterns

Searching Products

Search products by name, SKU, or category:

Tool: autotask_search_products
Args: { searchTerm: "firewall", isActive: true }

Note: productCategory is a field on the Product entity (see table above) but is not an accepted filter on autotask_search_products — the tool only supports searchTerm, isActive, and pageSize.

Getting Product Details

Retrieve full product information by ID:

Tool: autotask_get_product
Args: { productId: 12345 }

Searching Services

Find recurring service offerings:

Tool: autotask_search_services
Args: { searchTerm: "managed", isActive: true }

Inventory and Price List Lookups — not currently available

There is no MCP tool to search Inventory Items or Price Lists directly (no autotask_search_inventory_items / autotask_search_price_list_products / autotask_search_price_list_services exist in the live tool set, despite both being real Autotask entities — see the field references above). Until one is added, inventory levels and price-list overrides must be checked directly in the Autotask UI.

Common Workflows

1. Quote Pricing Audit

Verify that a product's quote price matches the price list:

  1. Search for the product: autotask_search_products { searchTerm: "product name" }
  2. Get the product details: autotask_get_product { productId: <id> }
  3. Check the price list directly in the Autotask UI (no MCP tool for this yet — see note above)
  4. Compare unitPrice from product vs price list entry
  5. Calculate margin: (priceListPrice - unitCost) / priceListPrice * 100

2. Cost vs Billing Rate Comparison

Analyze margins across products:

  1. Search products: autotask_search_products { isActive: true, pageSize: 100 }
  2. For each product, compare unitCost vs unitPrice
  3. Flag products where margin is below threshold
  4. Check price list overrides if pricing seems off

3. Inventory Check Before Quote

Before quoting hardware, verify stock:

  1. Find the product: autotask_search_products { searchTerm: "laptop" }
  2. Check inventory directly in the Autotask UI (no MCP tool for this yet — see note above)
  3. Review quantityOnHand vs quantityMinimum
  4. If low stock, note in quote or suggest alternatives

4. Service Pricing Review

Review recurring service pricing for contract renewals:

  1. Search services: autotask_search_services { isActive: true }
  2. For key services, check the price list directly in the Autotask UI (no MCP tool for this yet — see note above)
  3. Compare current pricing to contract rates
  4. Identify services where pricing has drifted

Error Handling

Error Cause Resolution
Product not found Invalid product ID Verify ID with search first
Empty results No matching products Broaden search term, check isActive filter
Permission denied API user lacks access Check API integration security level

Best Practices

  • Always check isActive when searching for products to avoid quoting discontinued items
  • Use price lists for customer-facing pricing, not the product's unitPrice (which is the default)
  • When checking inventory, consider all locations if multi-site
  • Products with isSerialTracked: true require serial number assignment on delivery
  • Service pricing in price lists overrides the service's default unitPrice

Related Skills

  • CRM - Company and contact management for quoting
  • Contracts - Contract pricing and service associations
  • API Patterns - General Autotask API query patterns
Files (msp-claude-plugins)
  • SKILL.md 7.2 KB
    ---
    name: "Autotask Product Catalog"
    description: >
      Autotask product catalog structure - Products, Services, and Service Bundles - and how
      Price Lists override default unit pricing. Covers product/service fields, inventory
      tracking, and cost-vs-billing margin analysis for MSP quoting and procurement.
    when_to_use: >-
      When searching products, checking pricing, managing inventory, or working with the relationship
      between products, services, bundles, and price lists. Use when: autotask product, autotask
      products, product catalog, product pricing, price list, inventory items, autotask services,
      service bundles, product search, check pricing, cost analysis, billing rates, markup, or autotask
      inventory.
    ---
    
    # Autotask Product Catalog
    
    ## Overview
    
    The Autotask product catalog manages three types of sellable items: **Products** (one-time purchases like hardware and software licenses), **Services** (recurring offerings used in contracts), and **Service Bundles** (grouped services sold together). Each type has associated pricing through **Price Lists** that control unit prices, markup, and billing codes.
    
    This skill covers product catalog operations for MSP technicians, sales engineers, and managers who need to look up products, verify pricing, check inventory levels, or audit cost-vs-billing rates.
    
    ## Anti-triggers
    
    - **Putting a catalog item on a customer proposal** — quote items have
      their own type rules and discount mechanisms; use `autotask-quotes`.
    - **The recurring services a client actually pays for** — those are
      contract services, not catalog entries; use `autotask-contracts`.
    - **Supplier SKUs, buy prices, and purchase orders** — this catalog
      holds your sell price only; procurement lives in the separate Kaseya
      Quote Manager plugin, `kaseya-quote-manager-purchasing`.
    - **The same catalog in another PSA** — a ConnectWise PSA product
      carries its own IDs, pricing flags, and procurement links; use
      `connectwise-psa-product-catalog`.
    
    ## Key Concepts
    
    ### Product Types
    
    | Type | Description | Use Case | Recurring |
    |------|-------------|----------|-----------|
    | Product | Physical or digital item | Hardware, licenses, one-time purchases | No |
    | Service | Recurring offering | Managed services, monthly monitoring | Yes |
    | Service Bundle | Grouped services | All-in-one MSP packages | Yes |
    | Inventory Item | Tracked stock | Warehouse items with serial numbers | No |
    
    ### Product Fields
    
    | Field | Type | Description |
    |-------|------|-------------|
    | id | number | Unique product identifier |
    | name | string | Product display name |
    | sku | string | Stock keeping unit code |
    | description | string | Product description |
    | isActive | boolean | Whether product is currently available |
    | unitCost | number | Internal cost per unit |
    | unitPrice | number | Default selling price per unit |
    | msrp | number | Manufacturer's suggested retail price |
    | productCategory | number | Category ID (picklist) |
    | vendorProductNumber | string | Vendor's product number |
    | manufacturerName | string | Manufacturer name |
    | isSerialTracked | boolean | Whether serial numbers are tracked |
    | priceCostMethod | number | How pricing is calculated |
    | defaultVendorID | number | Default vendor/supplier |
    
    ### Price List Structure
    
    Price lists control what customers actually pay. They can override default product pricing per currency:
    
    | Field | Type | Description |
    |-------|------|-------------|
    | productID / serviceID | number | The item being priced |
    | currencyCode | string | Currency (e.g., USD, GBP) |
    | unitPrice | number | Price in this price list |
    | usesInternalCurrencyPrice | boolean | Whether to use internal currency |
    
    ## API Patterns
    
    ### Searching Products
    
    Search products by name, SKU, or category:
    
    ```
    Tool: autotask_search_products
    Args: { searchTerm: "firewall", isActive: true }
    ```
    
    **Note:** `productCategory` is a field on the Product entity (see table above) but is **not** an accepted filter on `autotask_search_products` — the tool only supports `searchTerm`, `isActive`, and `pageSize`.
    
    ### Getting Product Details
    
    Retrieve full product information by ID:
    
    ```
    Tool: autotask_get_product
    Args: { productId: 12345 }
    ```
    
    ### Searching Services
    
    Find recurring service offerings:
    
    ```
    Tool: autotask_search_services
    Args: { searchTerm: "managed", isActive: true }
    ```
    
    ### Inventory and Price List Lookups — not currently available
    
    There is no MCP tool to search Inventory Items or Price Lists directly (no
    `autotask_search_inventory_items` / `autotask_search_price_list_products` /
    `autotask_search_price_list_services` exist in the live tool set, despite
    both being real Autotask entities — see the field references above). Until
    one is added, inventory levels and price-list overrides must be checked
    directly in the Autotask UI.
    
    ## Common Workflows
    
    ### 1. Quote Pricing Audit
    
    Verify that a product's quote price matches the price list:
    
    1. Search for the product: `autotask_search_products { searchTerm: "product name" }`
    2. Get the product details: `autotask_get_product { productId: <id> }`
    3. Check the price list directly in the Autotask UI (no MCP tool for this yet — see note above)
    4. Compare unitPrice from product vs price list entry
    5. Calculate margin: `(priceListPrice - unitCost) / priceListPrice * 100`
    
    ### 2. Cost vs Billing Rate Comparison
    
    Analyze margins across products:
    
    1. Search products: `autotask_search_products { isActive: true, pageSize: 100 }`
    2. For each product, compare `unitCost` vs `unitPrice`
    3. Flag products where margin is below threshold
    4. Check price list overrides if pricing seems off
    
    ### 3. Inventory Check Before Quote
    
    Before quoting hardware, verify stock:
    
    1. Find the product: `autotask_search_products { searchTerm: "laptop" }`
    2. Check inventory directly in the Autotask UI (no MCP tool for this yet — see note above)
    3. Review `quantityOnHand` vs `quantityMinimum`
    4. If low stock, note in quote or suggest alternatives
    
    ### 4. Service Pricing Review
    
    Review recurring service pricing for contract renewals:
    
    1. Search services: `autotask_search_services { isActive: true }`
    2. For key services, check the price list directly in the Autotask UI (no MCP tool for this yet — see note above)
    3. Compare current pricing to contract rates
    4. Identify services where pricing has drifted
    
    ## Error Handling
    
    | Error | Cause | Resolution |
    |-------|-------|------------|
    | Product not found | Invalid product ID | Verify ID with search first |
    | Empty results | No matching products | Broaden search term, check isActive filter |
    | Permission denied | API user lacks access | Check API integration security level |
    
    ## Best Practices
    
    - Always check `isActive` when searching for products to avoid quoting discontinued items
    - Use price lists for customer-facing pricing, not the product's `unitPrice` (which is the default)
    - When checking inventory, consider all locations if multi-site
    - Products with `isSerialTracked: true` require serial number assignment on delivery
    - Service pricing in price lists overrides the service's default `unitPrice`
    
    ## Related Skills
    
    - [CRM](/skills/crm/) - Company and contact management for quoting
    - [Contracts](/skills/contracts/) - Contract pricing and service associations
    - [API Patterns](/skills/api-patterns/) - General Autotask API query patterns
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related