Autotask Product Catalog — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Autotask Product Catalog (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
their own type rules and discount mechanisms; use autotask-quotes.
contract services, not catalog entries; use autotask-contracts.
holds your sell price only; procurement lives in the separate Kaseya Quote Manager plugin, kaseya-quote-manager-purchasing.
carries its own IDs, pricing flags, and procurement links; use connectwise-psa-product-catalog.
| 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 |
| 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 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 |
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.
Retrieve full product information by ID:
Tool: autotask_get_product
Args: { productId: 12345 }Find recurring service offerings:
Tool: autotask_search_services
Args: { searchTerm: "managed", isActive: true }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.
Verify that a product's quote price matches the price list:
autotask_search_products { searchTerm: "product name" }autotask_get_product { productId: <id> }(priceListPrice - unitCost) / priceListPrice * 100Analyze margins across products:
autotask_search_products { isActive: true, pageSize: 100 }unitCost vs unitPriceBefore quoting hardware, verify stock:
autotask_search_products { searchTerm: "laptop" }quantityOnHand vs quantityMinimumReview recurring service pricing for contract renewals:
autotask_search_services { isActive: true }| 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 |
isActive when searching for products to avoid quoting discontinued itemsunitPrice (which is the default)isSerialTracked: true require serial number assignment on deliveryunitPrice~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.