Skip to main content
Neo Agent authenticates against HaloPSA with a dedicated API application. Create the Neo Agent resource first; the application logs in as it.

Creating the API Application

1

Navigate to API Applications

Go to Configuration → Integrations → HaloPSA API, click View Applications, then New.

Configuration → Integrations → HaloPSA API, then View Applications

2

Configure application details

Set these fields:
  • Application Name: neoagent
  • Active: checked
  • Authentication Method: Client ID and Secret (Services)
  • Agent to log in as: the Neo Agent resource you created, not the default

Set the name, authentication method, and the Neo Agent login agent

The login agent decides which tickets Neo can see: HaloPSA scopes the application’s access to that agent’s teams. Leave it on the default and Neo works the wrong ticket set. Neo’s verification checks confirm the agent after you connect.
3

Set the permissions

On the Permissions tab, set these three scopes to Yes and leave every other scope at No:
  • all:standard: read and write access to tickets, actions, contacts, assets, and the other standard areas
  • all:teams: access to teams and agents, so Neo routes and assigns tickets correctly
  • admin:webhooks: lets Neo register its webhook automatically

Set all:standard, all:teams, and admin:webhooks to Yes

HaloPSA’s scopes are coarse, so all:standard grants broad access. The Neo dashboard’s permission groups control what Neo actually does; the scopes only set the maximum access. Sensitive areas such as invoices, contracts, and configuration default to read-only in Neo’s standard permission profiles. Two parts of Invoices stay protected even with write access enabled: Halo publishes charge rates as read-only through the API, and creating or deleting a billing template always asks a technician to approve it first — including on a Full Automation agent — because a template sets rates, free units, billing periods, and prepay top-up amounts for the clients it covers.
admin:webhooks is required. The all:standard scope does not cover webhook administration, and without it the connection fails with 401 Unauthorized when Neo creates its webhook. This is the most common reason a HaloPSA connection fails after the Client ID and Secret are accepted.
Optional: set admin to Yes only if Neo should manage HaloPSA email rules, for example to block a repeat spam sender with an Ignore Email rule. Everything else works without it, and you can enable it later without redoing the connection. Both required steps are in Letting Neo Manage Email Rules.
4

Save and copy the credentials

Click Save. The Details tab shows the Client ID and the Client Secret. Copy both now; HaloPSA may not show the secret again.

After saving, the Details tab shows the Client ID and Client Secret

What’s Next?

Proceed to connect HaloPSA to Neo Agent.
Before you proceed, verify:
  • The application is Active with authentication method Client ID and Secret (Services)
  • Agent to log in as is the Neo Agent resource
  • all:standard, all:teams, and admin:webhooks are set to Yes
  • You saved the Client ID, the Client Secret, and your HaloPSA base URL