An n8n community node for integrating with HaloPSA API.
This repo uses pnpm with a committed lockfile and supply-chain controls (see SECURITY.md). Development requires Node.js 22+ (transitive isolated-vm from n8n-workflow). After clone:
corepack enable && corepack prepare pnpm@10.19.0 --activate
pnpm install --frozen-lockfile
pnpm run audit:supply-chain
pnpm run buildFollow the installation guide in the n8n community nodes documentation.
npm install n8n-nodes-halopsacomplete- HaloPSA instance with API access
- OAuth 2.0 Client ID and Client Secret from HaloPSA
- Your HaloPSA base URL (e.g., https://your-domain.halopsa.com)
- Log into your HaloPSA instance
- Navigate to Configuration > Integrations > HaloPSA API
- Create a new OAuth 2.0 Client Application
- Set the Grant Type to "Client Credentials"
- Configure the appropriate scopes (recommend "all" for full access)
- Note down the Client ID and Client Secret for use in n8n
- Base API URL: Your HaloPSA instance URL (e.g., https://your-domain.halopsa.com)
- Client ID: OAuth 2.0 Client ID from HaloPSA
- Client Secret: OAuth 2.0 Client Secret from HaloPSA
- Scope: OAuth 2.0 scope (default: "all" for full API access)
Operations that support Filters also expose Filters (JSON) for runtime values (e.g. {"client_id": {{ $json.client_id }}}). JSON keys override the same keys from the UI Filters collection.
Get by ID on Tickets, Users, Assets, Projects, and Ticket Statuses also support Options (JSON) with the same override behavior.
Use the JSON fields when driving values from webhooks, upstream nodes, or expressions; use the UI collections for static values.
Return All on list operations paginates through the HaloPSA API automatically (1000 rows per page).
Receive real-time webhook notifications from HaloPSA for ticket events:
- New Ticket Logged — New ticket created
- Ticket Updated by User — User updated a ticket
- Closed — Ticket closed
- 1st SLA Warning / 2nd SLA Warning — SLA breach warnings
- Ticket Deadline — Ticket reached its deadline
- Ticket Status Changed — Status changed
- Ticket Deleted — Ticket deleted
The trigger creates and manages webhooks in HaloPSA (subscription and cleanup).
API paths not listed above can be called with Custom API Call. swagger.json at the repo root is the OpenAPI reference for discovering endpoints and payloads.
MIT