From halopsa
Manages HaloPSA tickets via API: create, update, search, add actions/notes, attachments. Covers statuses, priorities, SLAs, workflows for MSP technicians.
How this skill is triggered — by the user, by Claude, or both
Slash command
/halopsa:ticketsWhen to use
When creating, updating, searching, or managing service desk operations. Use when: halopsa ticket, halo ticket, service ticket halopsa, create ticket halopsa, ticket status halo, ticket priority halo, halopsa service desk, halo helpdesk, ticket actions, ticket notes halopsa, or halopsa sla.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Tickets are the core unit of service delivery in HaloPSA. The API uses array-wrapped payloads for all write operations (`POST /api/Tickets` with `[{...}]`). Status, priority, and ticket type IDs are instance-configurable -- always query `/api/Status`, `/api/Priority`, and `/api/TicketType` to get valid values.
Tickets are the core unit of service delivery in HaloPSA. The API uses array-wrapped payloads for all write operations (POST /api/Tickets with [{...}]). Status, priority, and ticket type IDs are instance-configurable -- always query /api/Status, /api/Priority, and /api/TicketType to get valid values.
POST /api/Tickets
Authorization: Bearer {token}
Content-Type: application/json
[
{
"summary": "Unable to access email - multiple users affected",
"details": "<p>Sales team (5 users) reporting Outlook disconnected since 9am.</p>",
"client_id": 123,
"site_id": 456,
"user_id": 789,
"tickettype_id": 1,
"status_id": 1,
"priority_id": 2,
"category_1": "Email",
"agent_id": 101,
"team_id": 5
}
]
GET /api/Tickets/54321 # single ticket
GET /api/Tickets/54321?includedetails=true&includeactions=true # with related data
GET /api/Tickets?client_id=123&open_only=true # open tickets for client
GET /api/Tickets?search=email%20not%20working # text search
GET /api/Tickets?page_no=1&page_size=50&orderdesc=true # paginated
POST /api/Tickets
[{ "id": 54321, "status_id": 2, "agent_id": 101 }]
Resolve with resolution note:
[{ "id": 54321, "status_id": 8, "resolution": "Cleared Outlook cache and repaired Office installation." }]
POST /api/Actions
Internal note:
[{ "ticket_id": 54321, "note": "<p>Root cause: KB5034441 update.</p>", "actiontype_id": 0, "hiddenfromuser": true }]
Client-visible note with email:
[{ "ticket_id": 54321, "note": "<p>We've identified the cause and are working on a fix.</p>", "actiontype_id": 0, "hiddenfromuser": false, "emailto": "[email protected]" }]
Time entry:
[{ "ticket_id": 54321, "note": "<p>Troubleshooting email connectivity.</p>", "timetaken": 30, "charge": true, "actiontype_id": 0, "agent_id": 101 }]
POST /api/Attachment # multipart/form-data: file, ticket_id, filename, isimage
GET /api/Attachment?ticket_id=54321 # list attachments
GET /api/Clients/{client_id}. If not found: stop and report error.GET /api/ClientContract?client_id={id}&active_only=true. If no active contract: stop and notify, or proceed per org policy.GET /api/Tickets?client_id={id}&open_only=true&search={summary_keywords}. If duplicate found: link tickets via action note instead of creating new ticket.POST /api/Tickets with defaults: status_id=1, priority_id=3 (if unspecified).id. If 400 error: check required fields (client_id, summary, tickettype_id).Before changing status, verify:
resolution field is required. Warn if moving directly from New without In Progress step.agent_id should be assigned. Warn if missing./api/Status to confirm target status is valid for your instance.hiddenfromuser: true for technical notes; keep client-facing notes professionaltimetaken and charge to action notesslahold=false approaching deadlinedate need escalationnpx claudepluginhub wyre-technology/msp-claude-plugins --plugin halopsaManages SuperOps.ai service desk tickets: create, update, search, triage, add notes/time entries, and automate workflows. Essential for MSP technicians.
Manages Autotask tickets including creation, updates, search, SLA calculations, escalation rules, and workflow automations for MSP service delivery.
Creates, updates, searches, and closes ConnectWise PSA tickets with SLA handling, notes, and closure validation. For MSP technicians managing service desk operations.