From MSP Operations
Use this skill when triaging SLA pressure on whatever PSA is connected through the gateway. Covers how to read breach-risk state across the major PSA families (Autotask, HaloPSA, ConnectWise Manage, Syncro, Kaseya BMS), a common escalation decision framework that sits on top of those different data models, how escalation severity and audience change by contract tier, and what evidence to gather before paging someone. Resolve status/priority/ SLA IDs via the connected PSA's own list tools (e.g. autotask__list_ticket_priorities, halopsa__tickets_list) — never hardcode tenant-specific IDs. If no PSA is connected, this skill degrades to general escalation guidance and says so explicitly.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ops-pack:sla-escalation-playbooksWhen to use
When a ticket is approaching or has breached its SLA response or resolution target and the operator needs to know how — and to whom — to escalate it. Use when: SLA breach, SLA at risk, escalate this ticket, who do I notify, breach notification, response time risk, resolution target missed, "what's about to breach".
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
SLA breaches are the single most reliable predictor of a client escalation call. This
SLA breaches are the single most reliable predictor of a client escalation call. This skill is the judgment layer on top of whatever SLA/priority data your connected PSA returns: it tells you when a ticket's breach risk crosses a threshold that warrants action, who should be notified at that threshold, what evidence to attach to the escalation, and how the response changes for a Platinum client versus a break-fix client on the same board.
This skill does not re-teach any single PSA's ticket API. It assumes you already know
how to fetch a ticket and its SLA fields via the connected vendor's tools (or via
conduit__search_tools if you don't yet know which tools are available) — what it
adds is the cross-vendor decision logic for what to do with that data once you have
it.
Every PSA expresses "how close is this ticket to breaching" differently. Resolve the concrete field/tool names for the connected instance before relying on any of this — these are the shapes to expect, not literal API contracts:
| PSA family | SLA/priority model | Where breach risk lives |
|---|---|---|
| Autotask | Numeric ticket priority (1–4) plus a Service Level Agreement linked to the client's contract, driving separate first-response and resolution due-date fields on the ticket | autotask__get_ticket_details / autotask__search_tickets — look for resolution plan / due-date fields; autotask__list_ticket_priorities resolves the priority label |
| HaloPSA | SLA profile assigned per ticket (often derived from client + priority), with explicit response and resolution target timestamps and a breach flag | halopsa__tickets_get returns deadlinedate / SLA hold state; halopsa__tickets_list can be filtered/sorted by SLA proximity |
| ConnectWise Manage/PSA | SLA record tied to board + priority, combined with Impact/Urgency fields; boards often carry their own escalation status flag | Ticket record's SLA/status fields — confirm the board's escalation flag naming, it is board-configurable |
| Syncro | Lighter-weight: ticket "Due Date" plus priority, no separate formal SLA engine in most instances | Ticket due-date field and priority; treat due-date proximity as the SLA proxy |
| Kaseya BMS | Service Desk SLA tied to the client's Service Level Agreement, with response/resolution timers per ticket | Ticket SLA timer fields exposed by the connected Kaseya BMS tools |
If the org has more than one PSA connected (rare, but happens during a PSA migration), scope explicitly to one board/instance per run and say which one you used.
Regardless of which PSA is behind the numbers, normalize every ticket to a single breach-risk state before deciding what to do:
Escalation action scales with state:
| State | Default action |
|---|---|
| Healthy | No action |
| At risk | Internal nudge to the assigned technician (or to the dispatcher if unassigned) |
| Breached — response | Escalate to team lead/service manager; internal note logged on the ticket |
| Breached — resolution | Escalate to service manager and, per contract tier below, to the client |
Never escalate on the SLA timer alone — attach the context a manager or client contact will actually need:
board-hygiene skill) — a breach
caused by a non-responsive client is a different conversation than one caused by an
idle queueContract tier changes who gets notified and whether the client is proactively contacted, not whether the breach itself matters:
| Tier (typical naming) | On "at risk" | On "breached" |
|---|---|---|
| Premium / Platinum / fully-managed | Team lead notified at "at risk"; account manager loop-in on breach | Proactive client contact before the client notices, with a remediation ETA |
| Standard / Managed | Team lead notified on breach only | Client contact only if they ask, but the internal note documents the breach for QBR reporting |
| Bronze / Block-hours / break-fix | Internal reassignment only | Client contact per the ticket's own status, no proactive SLA-specific comms (these contracts often don't carry a formal SLA at all) |
Confirm actual tier-to-contract mapping against the PSA's contract/agreement records
(or client-360-briefer-style client context if the org also has the wyre-gateway
plugin's agents available) rather than assuming — tier names vary a lot by MSP.
This skill cannot compute breach state without a source of ticket/SLA truth. If
conduit__search_tools (or a direct attempt at a PSA tool call) shows no PSA
connector present, say so explicitly and stop rather than guessing: "No PSA is
connected, so SLA state can't be verified. Here is the general escalation framework
above — apply it manually once ticket data is available." Do not fabricate SLA
figures or invent a ticket's breach state.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin ops-packGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Synthesizes the current conversation into a structured spec (PRD) and publishes it to the project issue tracker with a ready-for-agent label, without interviewing the user.