Integrations
HaloPSA
HaloPSA's Custom Integrations module can call authenticated REST APIs directly with field mapping and scheduled runs — Chinron is the rare API you can connect without a third-party automation layer in between.
Before you start
Generate an API key in Chinron under MSP Settings → General → API Access. You'll also want the client org UUID or tenant slug for each Halo company you're mapping — get the full list from GET /clients in the interactive docs.
- In Halo, go to Configuration → Integrations → Custom Integrations and create a new integration.
- Set the base URL to
https://au.chinron.io/api/public/v1. - Add an Authorization header of
Bearer msp_live_…using your generated key. Store it in Halo's credential vault, not inline in the integration definition. - Import the OpenAPI spec if Halo's version supports spec import — it will pre-populate every endpoint, parameter, and schema.
- Map a Halo trigger to a Chinron action. The two you'll use most:
- New user / contact created →
POST /clients/{clientId}/userswith the contact's name, email, and department. - Offboarding ticket closed →
GET /clients/{clientId}/users?email=…to resolve the id, thenPOST .../deactivate.
- New user / contact created →
- Schedule a monthly run against
GET /clients/{clientId}/reports/training-summaryand.../reports/phishing-summaryif you want completion and phishing data flowing into a Halo report or dashboard widget.
Idempotency matters here. User creation is safe to call repeatedly — a duplicate contact sync returns the existing user instead of erroring, so you don't need dedup logic on the Halo side.