HaloPSA integration
HaloPSA is the priority-one PSA for Manage365. Two-way sync: Manage365 alerts become Halo tickets, Halo updates flow back into Manage365, and tech actions log time entries for billing.
Prerequisites
- HaloPSA instance with API access enabled
- An OAuth2 client in Halo: Config → Integrations → Halo API → Applications
- Client ID, client secret, and Halo base URL
Connect
- In the MSP portal open Settings → Integrations → HaloPSA.
- Paste base URL (e.g.
https://yourmsp.halopsa.com), client ID, client secret. - Click Test connection. Manage365 does an OAuth token exchange; any failure is reported back with the exact Halo error.
- Save. The client secret is encrypted at rest (AES-256-GCM).
Company mapping
On save Manage365 pulls your Halo companies. Match each customer tenant to a Halo company. Auto-match by domain is attempted; exceptions are surfaced in a match-review table.
What syncs
- Alerts → tickets — rule-driven: severity filter, tenant filter, alert-type filter. Each rule chooses board, type, priority, and ticket template.
- Ticket updates → alert notes — Halo ticket status changes, new notes, and closures feed back into the Manage365 alert timeline.
- Manage365 actions → time entries — user created, licence assigned, standard applied, etc. each log a time entry on the linked Halo ticket for billing.
- Change requests → tickets — every change request opened in the white-label client portal creates a Halo ticket of the matching type.
Webhook mode
Prefer real-time over polling? Configure Halo to POST to Manage365's inbound webhook endpoint (details inSettings → Integrations → Inbound webhooks). Manage365 falls back to 15-min polling if webhooks aren't configured.
Rate limits
Halo's default is 60 req/min per client. Manage365 obeys the X-RateLimit-Remaining header and backs off automatically; heavy initial syncs of a large portfolio can take a few minutes but won't get you throttled.