account-hygiene
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
Picks clients who appear happy from CrewHu or SmileBack survey results (or another discovered survey tool) together with ticket SLA and resolution data, then drafts a review or referral request for the MSP to send. Drafts only; never sends email, never creates outreach tickets,
Claude Code
$ npx -y skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask --agent claude-code
Codex
$ npx skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask -a codex -y
Cursor
$ npx skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask -a cursor -y
Gemini CLI
$ npx skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask -a gemini-cli -y
GitHub Copilot
$ npx skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask -a github-copilot -y
OpenCode
$ npx skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask -a opencode -y
Windsurf
$ npx skills add wyre-ai/msp-claude-plugins --skill review-and-referral-ask -a windsurf -y
name: "Review and Referral Ask" description: > Picks clients who appear happy from CrewHu or SmileBack survey results (or another discovered survey tool) together with ticket SLA and resolution data, then drafts a review or referral request for the MSP to send. Drafts only; never sends email, never creates outreach tickets, and never posts a review. when_to_use: >- When an MSP wants to ask a happy client for a review or a referral, and needs a draft grounded in survey scores and recent ticket outcomes rather than a guess. Use when: review request, referral ask, ask for a testimonial, who should we ask for a review, CrewHu promoters, draft a referral email, happy-client outreach.
The right time to ask for a review or a referral is after real evidence that the client is happy, not after a quiet week on the board. This skill finds candidate clients from CrewHu (preferred), SmileBack, or another survey tool discovered at run time, checks recent ticket SLA and resolution data, and drafts a short request for the MSP to send themselves.
This skill drafts only. It never sends email, never creates or updates a ticket, never posts a review, and never messages a client.
a recent SLA problem is a relationship issue, not a prompt to ask for a public review. Do not draft an ask for those clients.
or post tool, even if a connected mailbox or PSA tool is available.
| System | Role | Required? | |--------|------|-----------| | CrewHu, SmileBack, or another discovered survey tool | Promoters, scores, and survey comments that identify happy clients | Yes (at least one survey source, or the skill stops) | | PSA ticket tools | Recent resolution and SLA fields, used to confirm the client is in a good window to ask | Optional, but recommended |
If neither CrewHu nor SmileBack is connected and discovery finds no other survey list/get/search tool, stop and say a survey source is required.
Call `conduit__search_tools` first. Use the exact names discovery returns. Gateway names often look like `<vendor-slug>__<tool_name>`. Only call read-only list, get, or search tools from the allow-list below.
Never call create, update, delete, send, post, or raw/execute tools. Never call password or vault tools, even if discovery returns them. Never send email or create an outreach ticket.
**CrewHu (preferred):** `crewhu_surveys_list`, `crewhu_surveys_search`, `crewhu_surveys_get`, `crewhu_surveys_promoters`, `crewhu_surveys_detractors`. You may use `crewhu_users_list`, `crewhu_users_get`, and `crewhu_users_search` only to resolve a survey respondent to a client or contact already in the survey result, not to browse staff or run a prize workflow. Do not call `crewhu_badges_update_contest` or other write tools.
**SmileBack:** `smileback_nps_responses_list`, `smileback_nps_responses_get`, `smileback_reviews_list`, `smileback_reviews_list_recent`, `smileback_reviews_get`, `smileback_csat_companies_list`.
**PSA tickets and companies, for SLA and resolution context:**
`autotask_get_ticket_details`, `autotask_search_ticket_history`, `autotask_get_ticket_history`, `autotask_list_ticket_statuses`, `autotask_list_ticket_priorities`
`cw_search_tickets`, `cw_get_ticket`
`halopsa_clients_search`, `halopsa_tickets_list`, `halopsa_tickets_get`
`superops_clients_search`, `superops_tickets_list`, `superops_tickets_get`
There is no dedicated "list SLA breaches" tool. Use due-date or SLA fields on the ticket list/get tools above, the same way ops-pack SLA playbooks do. Compare a client against their own recent window, not against a made-up industry benchmark.
If a survey tool other than CrewHu appears in discovery and offers read-only list, get, or search survey tools, you may use those exact discovered names. Do not invent tool names.
Prefer `crewhu_surveys_promoters` and recent high scores from `crewhu_surveys_list`, `crewhu_surveys_search`, or `crewhu_surveys_get`. If using CrewHu and discovery returns `crewhu_surveys_detractors`, load it too. Otherwise, use the selected survey source's discovered read-only tools to check for negative responses, if supported. Exclude anyone who is both a recent promoter and a later detractor, or who has an unresolved detractor survey. If you cannot verify these exclusions, tell the operator and ask them to verify before drafting.
For example, with CrewHu, pull the last 90 days of both lists (both tools accept only `limit` and `since`). Compute `<since>` at run time as today's date minus 90 days, in ISO 8601 (`YYYY-MM-DDT00:00:00Z`), and use the same value in both calls:
{ "tool": "crewhu_surveys_promoters", "arguments": { "limit": 100, "since": "<since>" } }
{ "tool": "crewhu_surveys_detractors", "arguments": { "limit": 100, "since": "<since>" } }Each survey returned carries the customer name (the customer_data.name field) and the PSA ticket number (the ticket_num field). Use those to look up the client and that ticket with the PSA tools in Step 3.
These two tools only filter the most recent page of up to 100 surveys, so their results can be incomplete, and they never see responses older than `<since>`. Before drafting for a candidate, check that customer's older negative responses by paging `crewhu_surveys_list` with `sen
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: wyre-ai.github.io/msp-claude-plugins
Periodic hygiene review of a client's 1Password account for QBRs and license true-ups: reconciling active and suspended seats…
1Password MCP fundamentals through Conduit: the region plus two independent credential halves (Events Reporting token, Users API…
How to review a departing or departed user's 1Password footprint with the read-only tools: confirm the seat is suspended, find…
Triage of 1Password sign-in attempts for one client account: pulling the sign-in feed over a window, grouping failures by user,…
3CX's live-operations surface: read-only visibility into active calls, recordings, voicemail, department and queue membership,…
3CX's read-only directory surface: resolving a caller by email or by exact extension, searching the PBX's own phonebooks,…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.