Connect HaloPSA and choose what syncs
HaloPSA is a first-class PSA in Current — the same depth of two-way sync Autotask and ConnectWise get. Halo stays the source of truth for time, billing, and financials, while Current owns scheduling and the views your team lives in. Clients, contacts, opportunities, projects, tickets, contracts, and time all flow in; the writes you allow flow back.
Before you start
- +A HaloPSA administrator login, so you can create an API application in Halo's configuration.
- +Your Halo instance URL — the address you sign in at. Hosted tenants look like https://yourcompany.halopsa.com; on-premises instances use your own host, like https://support.yourcompany.com.
- +Tenant Admin role in Current — integrations are an admin-only action.
If you want to get Halo itself ready first — the won/lost statuses, project ticket types, charge rates, and agent emails — work through "Prepare your HaloPSA before onboarding: the setup checklist" before you paste a single credential.
Create the API application in Halo
- 1Open Configuration → Integrations → Halo APISign in to Halo as an administrator and go to Configuration → Integrations → Halo API. This page lists every application allowed to reach Halo's API.
- 2Authorise a new applicationClick "Authorise a new application". For the Authentication Method, choose "Client ID and Secret (Services)" — the client-credentials flow meant for a background integration like Current, with no person signing in.
- 3Note the Client ID and Client SecretHalo shows a Client ID and generates a Client Secret for the application. Copy both into a password manager — the secret is your credential, so treat it like a password and never publish it.
- 4Grant the permissions (scope)On the application's Permissions tab, grant the areas the sync needs — if you're unsure, Halo's own guidance is to set the scope to "all", which grants every area. Only permissions enabled here can be used, so an under-scoped application quietly returns empty data rather than an error.
- 5Read your API DetailsThe API Details section on the same page shows your Authorisation Server URL and Resource Server URL, plus your Tenant name for hosted instances. Current derives these from your instance URL automatically, but note them — some hosted tenants use a separate auth subdomain, and the Tenant value is required on hosted Halo.
Connect in Current
- 1Open Settings → Integrations → HaloPSAOnly Tenant Admins see this page.
- 2Enter your instance URL, Client ID, and Client SecretPaste your Halo instance URL and the Client ID and Client Secret from the application you just authorised. Current works out the Authorisation Server and Resource Server addresses from your instance URL; if your hosted tenant uses a separate auth host or needs a Tenant value, those fields are there to set. The instance URL isn't a secret; the Client Secret is, and it's kept server-side only once stored.
- 3Run the test connectionCurrent fetches an access token from your Halo auth server and makes one cheap authenticated read to prove the credentials are real before anything is stored. Secrets are encrypted at rest and never sent to the browser again.
- 4Nothing has synced yet — that's deliberateConnecting stores credentials and connection details only. No data is pulled until the first sync runs, so you can connect, review the sync-behaviour switches, and pull on your schedule.
- 5Start the initial pullClients, sites, contacts, agents, opportunities, projects, tickets, contracts, and time entries come across. Large instances take a while; the sync paces itself under Halo's rate limit and resumes automatically if interrupted.
The delta poll
After the first pull, Current polls Halo for changes on a schedule. Pushes (the writes you allow) go out immediately, not on the poll. Halo doesn't offer a single "changed since" filter across every record the way Autotask and ConnectWise do, so for some records Current compares what it last saw rather than asking Halo for a delta — which is why Halo syncs are paced carefully against Halo's rate limit (700 requests every 5 minutes). It's slower to notice a change than a timestamp-driven PSA, but it never misses one.
Who owns which field
The field-ownership map prevents the two systems from fighting. Current never overwrites a Halo-owned field on push, and Halo pulls never clobber a Current-owned field.
| HaloPSA owns | Current owns |
|---|---|
| Project, ticket, and task names and status | Task start and end dates |
| Hours worked, charge rates, contracts, invoicing | Critical-path and milestone flags |
| Time-entry billing and invoice status | Project health (Current Score) |
For the field-by-field detail, see "HaloPSA sync: the complete field-mapping reference".
Disconnecting, and switching PSAs
- +Disconnect lives in the Manage drawer's danger zone and requires typing DISCONNECT — it stops all syncing but deletes nothing already pulled.
- +Projects that were syncing to HaloPSA freeze rather than break: they keep their data, show a clear synced-to-a-disconnected-PSA state, and make no Halo calls until you reconnect.
- +Switching to Autotask or ConnectWise is disconnect-then-connect: disconnect Halo here, then connect the other PSA from its own card.
- +Switching is free on a fresh workspace, but once you've synced a real book from Halo, connecting a different PSA is blocked at connect time so the two providers' records can't collide on their ids — email support@current.day and we'll run a guided migration first.
