Skip to content
Current/ Help Center

Connect HaloPSA and choose what syncs

3 min read · Updated Jul 21, 2026

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.

Note
New as of July 2026
HaloPSA support is new, so a couple of Halo-specific behaviours are still being confirmed against live instances — they're called out as "still being confirmed" wherever they appear below. Everything is built to fail safe in the meantime: nothing is guessed, and a value Current can't read cleanly is left alone rather than overwritten.
Note
One PSA per workspace
Current syncs one PSA at a time — HaloPSA, ConnectWise PSA, or Autotask, chosen at signup and switchable later. If another PSA is connected, the HaloPSA card asks you to disconnect it first; the rule is enforced in the database, not just the interface. See "Autotask, ConnectWise, or HaloPSA: choosing your PSA in Current".

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

  1. 1
    Open Configuration → Integrations → Halo API
    Sign in to Halo as an administrator and go to Configuration → Integrations → Halo API. This page lists every application allowed to reach Halo's API.
  2. 2
    Authorise a new application
    Click "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.
  3. 3
    Note the Client ID and Client Secret
    Halo 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.
  4. 4
    Grant 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.
  5. 5
    Read your API Details
    The 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.
Note
The application is also gated by an agent's permissions
In Halo, an API application's reach is limited by both its own permissions AND the permissions of the agent it's tied to. Scope "all" on the application isn't enough on its own — back it with an agent whose role can do everything the sync reads and writes, or an operation that looks permitted still comes back empty.

Connect in Current

  1. 1
    Open Settings → Integrations → HaloPSA
    Only Tenant Admins see this page.
  2. 2
    Enter your instance URL, Client ID, and Client Secret
    Paste 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.
  3. 3
    Run the test connection
    Current 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.
  4. 4
    Nothing has synced yet — that's deliberate
    Connecting 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.
  5. 5
    Start the initial pull
    Clients, 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 ownsCurrent owns
Project, ticket, and task names and statusTask start and end dates
Hours worked, charge rates, contracts, invoicingCritical-path and milestone flags
Time-entry billing and invoice statusProject health (Current Score)

For the field-by-field detail, see "HaloPSA sync: the complete field-mapping reference".

Note
Project resync, time backfill, and honest diagnostics
Two Halo operations that were stubbed out when Halo support first shipped now work: resyncing a single project pulls that project's tasks on demand, and the time-entry backfill pulls a project's historical time across into Current. On the connection's diagnostics, where a particular check isn't available for HaloPSA yet, the button says so plainly rather than appearing to run and quietly returning nothing — so an empty result is never mistaken for a real answer.

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.
Heads up
Reading is the default — writing is gated
Pulling from Halo is always on once connected. Writing back is gated twice: the two-way sync switch in the Manage drawer controls task-field pushes, and CRM write mode (off by default, with a test mode in the middle) controls every CRM write. Nothing writes to your Halo until you deliberately open those gates. See "What Current writes back to HaloPSA (and when)".
Was this helpful?