Skip to content
Development
Skill

/refresh-quote-list

Turns a Refresh Cycle Planning calendar into a per-client list of devices to quote, matched against a connected ScalePad Quoter, Kaseya Quote Manager, or ConnectWise PSA product catalog, then hands off to a quoting skill. Drafts the list only, using read-only catalog and quote

From plugin
msp-claude-plugins
55200 skills165 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill refresh-quote-list --agent claude-code

SKILL.md

refresh-quote-list.SKILL.md
name: "Refresh Quote List"
description: >
  Turns a Refresh Cycle Planning calendar into a per-client list of
  devices to quote, matched against a connected ScalePad Quoter, Kaseya
  Quote Manager, or ConnectWise PSA product catalog, then hands off to a
  quoting skill. Drafts the list only, using read-only catalog and quote
  tools, and never creates, updates, or publishes a quote.
when_to_use: >-
  When a hardware refresh calendar is ready and the MSP needs a
  per-client list of devices to quote, ready to hand to a quoting skill,
  without creating the quote in this step. Use when: refresh quote list,
  hardware refresh quote list, devices to quote for refresh, turn the
  refresh calendar into a quote list, refresh procurement list.

Refresh Quote List

Overview

Refresh Cycle Planning already produces a tiered calendar. This companion skill takes that calendar (or the same warranty, EOL/EOS, and age inputs when a calendar was just built) and drafts a per-client list of devices to quote, matched against a connected product catalog when one exists.

This skill does not replace Refresh Cycle Planning, and it does not create quotes. The operator hands the list to `scalepad-quoter` or `connectwise-cpq-quotes` if they want a quote built.

Do not invent catalog items or prices. If a catalog tool returns an amount, you may carry that amount through as returned and label the source. If it does not, list the device and the catalog match (name or SKU) without an amount.

Anti-triggers

  • **Building the refresh calendar itself** (tiers, dates, and

insufficient-data bucketing): use [Refresh Cycle Planning](../refresh-cycle-planning/SKILL.md).

  • **Building or publishing a quote:** build it with `scalepad-quoter`

(which can also publish) or `connectwise-cpq-quotes`. CPQ's API has no publish verb, so a CPQ quote is published from the CPQ web app. Kaseya Quote Manager's tools are read-only, so a Kaseya quote is built in the Quote Manager web app. This skill stops at the list.

  • **ScalePad Lifecycle Manager roadmaps:** use

`scalepad-lifecycle-manager`.

Connected Systems

| System | Role | Required? | |--------|------|-----------| | Refresh Cycle Planning output, or the RMM inventory that skill uses | The devices, tiers, and timing to quote | Yes | | ScalePad Quoter, Kaseya Quote Manager, or ConnectWise PSA | Read-only product catalog for matching items | Optional | | ScalePad Quoter, Kaseya Quote Manager, or ConnectWise CPQ | Read-only existing-quote context | Optional |

ConnectWise CPQ has no searchable product catalog. Its quote items are lines on existing quotes, not catalog products, so ConnectWise catalog matching comes from ConnectWise PSA when it is connected.

If no catalog connector is connected, still produce the per-client device list from the calendar, and say a catalog-backed quote list could not be drafted.

Workflow

Step 1: Discover what is actually connected

Call `conduit__search_tools` first. Use the exact names discovery returns. Gateway names often look like `<vendor-slug>__<tool_name>`.

If a refresh calendar is not already in hand, follow [Refresh Cycle Planning](../refresh-cycle-planning/SKILL.md) to build one, then continue here. That skill's read-only RMM and documentation inventory reads are in scope for building the calendar. Do not restate its tool list here.

For quoting and catalog systems, only call the read-only tools in the allow-list below. Never create, update, publish, delete, or authenticate-for-write in any connected system.

**ScalePad Quoter (read-only):** `scalepad_quoter_items_list`, `scalepad_quoter_items_get`, `scalepad_quoter_quotes_list`, `scalepad_quoter_quotes_get`. Never call `scalepad_quoter_items_update`, `scalepad_quoter_quotes_create`, `scalepad_quoter_quotes_publish`, `scalepad_quoter_auth_authorize`, or `scalepad_quoter_auth_refresh`.

**Kaseya Quote Manager (read-only):** `kqm_product_list`, `kqm_product_get`, `kqm_category_list`, `kqm_category_get`, `kqm_quote_list`, `kqm_quote_get`, `kqm_quote_line_list`, `kqm_quote_line_get`, `kqm_quote_section_list`, `kqm_quote_section_get`, `kqm_customer_list`, `kqm_customer_get`.

**ConnectWise PSA catalog (read-only):** `cw_search_catalog_items`, `cw_get_catalog_item`, `cw_list_catalog_categories`, `cw_list_catalog_subcategories`. Never call `cw_create_catalog_item` or `cw_update_catalog_item`.

**ConnectWise CPQ (read-only, existing quotes only):** `cpq_search_quotes`, `cpq_get_quote`, `cpq_get_quote_versions`, `cpq_search_quote_items`, `cpq_get_quote_item`, `cpq_search_quote_tabs`, `cpq_list_quote_customers`, `cpq_list_templates`, `cpq_test_connection`. `cpq_search_quote_items` searches lines on existing quotes; never treat its results as catalog matches. Never call `cpq_create_quote_from_template`, `cpq_create_quote_item`, `cpq_create_quote_term`, or any update or delete CPQ tool.

If a vendor is connected but the needed tool is not in this list, was not returned by discovery, or fails with an access error, skip that catalog and say why.

Step 2: Build the per-client device list

From the refresh calendar, group devices by client. Stay with replace-now and plan-this-year tiers by default. Keep the insufficient-data bucket as a separate list: those devices are not quote-ready until the calendar gaps are filled.

If the operator explicitly asks to include monitor-tier devices, include them. Refresh Cycle Planning may report monitor as a count only, so pull the device details from the same RMM inventory (or ask for a detailed calendar) rather than quoting a bare count.

For each device, carry forward make, model, quantity, tier, and target window as the calendar provided them. Do not invent a replacement model if the calendar did not specify one.

Step 3: Match a catalog when one is connected

If a catalog search tool (`scalepad_quoter_items_list`, `kqm_product_list`, or `cw_search_catalog_items`) was discovered and is accessible, search it for a reasonab

Read more
@wyre-technology
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins

55200 skills165 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
55
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about refresh-quote-list.

Which coding agents can use refresh-quote-list?
refresh-quote-list installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.