Resources · n8n integration

HaloPSA n8n integrationAutomate HaloPSA with n8n.

HaloPSA holds your clients, sites, tickets and users, and n8n can write to all four. The HaloPSA n8n integration ships as one node with 20 operations spread over 4 resources, and no trigger of its own. Built for service desk teams who already live in the tool every day.

Verified Trustpilot reviews · AI, automation & growth agency

Why automate

What does the HaloPSA n8n integration change for a service desk?

The HaloPSA n8n integration is a single node, shipped with n8n, that calls the HaloPSA API for you. It covers 4 resources, client, site, ticket and user, with 20 operations in total: create, read one, read many, update and delete on each of them.

Nothing to install, no plugin to maintain. You pick the resource, pick the operation, fill the fields the node asks for, and the API call is built for you.

The first thing most teams wire up is ticket intake. A message lands in Gmail, a workflow reads it, and ticket.create opens the ticket with its Summary, its Details and a Ticket Type picked from the list. The ticket number never gets typed twice, and the requester gets an answer while the thread is still warm.

The second one is account structure. When a customer signs, client.create opens the record, site.create attaches the location, and user.create registers the contacts who will raise tickets from that site. Three operations, one workflow, and nobody has to remember the order at eight in the morning.

The third is reporting. ticket.getAll and client.getAll both accept Return All, so a scheduled workflow can pull the whole list and drop it into Google Sheets before the weekly review, with a summary line going out on Slack.

One thing to plan for: HaloPSA has no trigger node in n8n. A workflow that involves it starts somewhere else, with a Schedule Trigger running at a fixed interval, with an n8n Webhook called by another service, or with the trigger of a different tool. That is a design choice to make early, not a blocker.

For pagination, Return All walks through the pages the API returns and Limit caps the result when it is off. And when an endpoint of the HaloPSA API has no matching operation in the node, the HTTP Request node calls it directly, reusing the same credential through predefined authentication.

If you are still comparing platforms, the n8n review goes through the trade-offs, and the n8n training covers expressions and error handling, the two things that decide whether a service desk automation survives its first month.

Connect

How do you connect HaloPSA to n8n?

  1. 01

    Register the application in HaloPSA

    Open Configuration, then Integrations, then Halo API, and go to API Details. Register an application there to get a Client ID and a Client Secret. n8n recommends choosing Client Credentials as the Authentication Method and using the all permission, so the node is not blocked halfway through a workflow on a call it was never allowed to make.

  2. 02

    Copy the two server URLs

    The same API Details screen shows your HaloPSA Authorisation Server URL and your Resource Server URL. They are two different values and the node needs both: one to obtain the token, the other to reach your data. Copy them exactly as displayed, including the scheme, rather than rebuilding them from your HaloPSA address.

  3. 03

    Create the credential in n8n

    In the Credentials menu, add the HaloPSA API key credential, a stored set of connection details you create once and reuse in every workflow. Set Hosting Type to On Premise Solution if Halo runs on your own server, or to Hosted Solution Of Halo if Halo hosts it. With the hosted option, you also fill in your Tenant name, which the same API Details screen gives you.

Actions

What can the HaloPSA node do?

The HaloPSA node exposes 20 operations across 4 resources. For each one: the node as you configure it in n8n, the required fields, and our field notes.

Resources × operations matrix
ResourceCreateGetGet ManyUpdateDelete
Client✓✓✓✓✓
Site✓✓✓✓✓
Ticket✓✓✓✓✓
User✓✓✓✓✓

Client

5 operations
01

Create a client

client.create

What you see in n8n

Notes & use cases

This operation opens a new client record in HaloPSA and returns what the API sends back about it.

Key parameters

  • Name: the client name, and the only required field. Type it in, or read it from an earlier node with an expression, the n8n syntax that pulls a value out of the incoming item.
  • VIP: a boolean in Additional Fields that records whether the client is VIP or not.
  • Website: optional, and worth filling when the same company shows up twice in a list.
Use cases
a signed proposal lands in the CRM and the account exists in HaloPSA the same minute, VIP flag already set.
02

Delete a client

client.delete

What you see in n8n

Notes & use cases

Removing a client record takes a single field. Hand the node the identifier and the record goes.

Key parameters

  • Client ID: the identifier of the record to remove. It is an ID, not a company name, so read it from a previous step with something like {{ $json.field }} instead of typing it by hand.
Use cases
a sandbox run created a handful of throwaway accounts while a workflow was being built, and a cleanup step removes them once the test is signed off, so the real client list stays readable.
03

Get a client

client.get

What you see in n8n

Notes & use cases

Point the node at one client and it brings that record back, ready for whatever comes next in the workflow.

Key parameters

  • Client ID: the record to read.
  • Simplify: switched on, n8n returns a simplified version of the response instead of the raw data, which makes the next nodes much quicker to map.
Use cases
before a recap message goes out to the account manager, the workflow reads the client record so the message carries the real account details and not an identifier nobody recognizes.
04

Get many clients

client.getAll

What you see in n8n

Notes & use cases

Instead of a single record, this one lists clients, page after page when you ask for it.

Key parameters

  • Return All: on, n8n walks through every page of clients the API hands back; off, Limit sets the maximum number returned.
  • Active Status: Active Only keeps active customers, Inactive Only keeps the inactive ones, All returns both.
Use cases
a monthly export pulls the full active client list into a spreadsheet, so finance and the service desk work from the same set of accounts.
05

Update a client

client.update

What you see in n8n

Notes & use cases

Existing record, new values. The node sends the fields you fill in the Update Fields collection.

Key parameters

  • Client ID: which record the change lands on.
  • VIP: the same boolean as on creation, so an account can be promoted later.
  • Notes: free text, useful for recording why the change happened.
Use cases
a contract is upgraded to priority support, and one workflow sets VIP and writes the new contract reference into Notes without anyone opening HaloPSA.

Site

5 operations
06

Create a site

site.create

What you see in n8n

Notes & use cases

A site always hangs off a client, so this call needs both pieces before it can run.

Key parameters

  • Name: the site name.
  • Client ID: the client the site belongs to.
  • Select Client by ID: a boolean that states whether the client can be selected by ID.
  • Phone Number and Main Contact: both optional, in Additional Fields, and both worth filling for a location an engineer may have to call.
Use cases
a customer opens a second office and the location is registered with its phone number and the person who signs for deliveries.
07

Delete a site

site.delete

What you see in n8n

Notes & use cases

Drop a location out of a client structure in one call. The operation asks for nothing beyond the identifier, which makes it easy to chain after a check step.

Key parameters

  • Site ID: the site to remove.
Use cases
a branch closes at the end of the quarter. Once the users attached to it have been handled, an offboarding workflow deletes the site so no new ticket can be raised against an address that no longer exists.
08

Get a site

site.get

What you see in n8n

Notes & use cases

Reading a single site gives you its record on its own, without pulling the whole client structure.

Key parameters

  • Site ID: the site to read.
  • Simplify: returns a simplified version of the response instead of the raw data.
Use cases
an engineer is about to be dispatched, so the workflow reads the site first and builds the job message from what it finds there, rather than relying on whatever was typed into the original request.
09

Get many sites

site.getAll

What you see in n8n

Notes & use cases

Sites pile up quickly on a growing account, and this operation is how you get the list back.

Key parameters

  • Text To Filter By: filters sites by your search string, which is the fastest way to find a location when you only know part of its name.
  • Return All and Limit: fetch every page, or stop at a set number of sites.
Use cases
a technician asks where a customer actually has offices, and a chat workflow answers with the matching sites in seconds.
10

Update a site

site.update

What you see in n8n

Notes & use cases

Changing a site record works through the Update Fields collection, and the identifier sits outside it.

Key parameters

  • Site ID: the node does not mark it as required, so fill it in yourself to say which site the change targets.
  • Client ID: moves the site under another client.
  • Main Contact: the name recorded for the location.
Use cases
after an acquisition, the sites of the bought company are reattached to the parent account and their main contact is rewritten in one run.

Ticket

5 operations
11

Create a ticket

ticket.create

What you see in n8n

Notes & use cases

Tickets are where this node earns its keep. Three fields are required, and the ticket exists.

Key parameters

  • Ticket Type Name or ID: choose it from the list, or specify an ID using an expression when the type depends on the incoming data.
  • Summary: the one line an agent reads in the queue.
  • Details: the body of the request.
  • Target Date: optional, in Additional Fields, and the field that decides where the ticket sits in a date sorted view.
Use cases
an inbound support email becomes a typed ticket with a target date, instead of a message someone has to re-key.
12

Delete a ticket

ticket.delete

What you see in n8n

Notes & use cases

Duplicate tickets happen, usually when a workflow retries a step that had already succeeded. This operation clears them.

Key parameters

  • Ticket ID: the ticket to remove, and the only field the operation takes.
Use cases
a monitoring tool fires twice during an incident and two identical tickets land in the queue. A dedup workflow keeps the first one and deletes the second, so the on-call agent is not working on both at once.
13

Get a ticket

ticket.get

What you see in n8n

Notes & use cases

Pull one ticket back by its identifier when a later step needs the current state rather than the state you saw earlier.

Key parameters

  • Ticket ID: the ticket to read.
  • Simplify: a simplified version of the response instead of the raw data, which keeps a notification template short.
Use cases
before an escalation message is sent, the workflow re-reads the ticket, because an agent may have picked it up in the meantime and the escalation is no longer needed.
14

Get many tickets

ticket.getAll

What you see in n8n

Notes & use cases

Lists of tickets are the raw material of every report, and this is the operation that produces them.

Key parameters

  • Return All: on, n8n chains through the pages until the queue is fully read; off, Limit caps how many tickets come back.
  • Text To Filter By: filters tickets by your search string.
Use cases
every morning a workflow reads the open queue, counts what is waiting per type and posts a short digest before the stand-up.
15

Update a ticket

ticket.update

What you see in n8n

Notes & use cases

Work moves, and so does the ticket. Update Fields carries the changes, the identifier stays outside the collection.

Key parameters

  • Ticket ID: not marked required by the node, but it is what tells HaloPSA which ticket to change.
  • Assigned Agent Name or ID: choose from the list, or specify an ID using an expression.
  • Target Date: pushed back when the customer asks for more time.
Use cases
a rota workflow reassigns the unattended tickets to whoever is actually on shift.

User

5 operations
16

Create a user

user.create

What you see in n8n

Notes & use cases

Users sit under a site, which is why this operation asks for both a name and a site.

Key parameters

  • Name: the user name.
  • Site Name or ID: choose from the list, or specify an ID using an expression.
  • Email and Surname: optional, in Additional Fields, and the pair that makes a user findable later.
  • Password: if you set one, it needs at least 8 characters with a letter, a number or symbol, one upper case and one lower case character.
Use cases
a new joiner at a customer gets a HaloPSA user the day the HR system announces the hire.
17

Delete a user

user.delete

What you see in n8n

Notes & use cases

Offboarding ends here. One identifier, one call, and the user record is gone from HaloPSA.

Key parameters

  • User ID: the user to remove.
Use cases
a customer tells you three people have left. A workflow reads the list, matches each name to a user, and deletes them one by one, which is safer than someone doing it manually and stopping halfway through because a meeting started.
18

Get a user

user.get

What you see in n8n

Notes & use cases

One user, one call. The node returns the record so you can check it before acting on it.

Key parameters

  • User ID: the user to read.
  • Simplify: a simplified version of the response rather than the raw data.
Use cases
an update workflow reads the user first and only writes when something has actually changed, which keeps the audit trail in HaloPSA meaningful instead of full of no-op edits.
19

Get many users

user.getAll

What you see in n8n

Notes & use cases

Listing users is how you answer the question every account review asks: who is allowed to raise tickets here?

Key parameters

  • Simplify: keeps the response light when you only need names to compare.
  • Active Status: Active Only, Inactive Only, or All.
  • Return All and Limit: read every page, or stop early while you are testing.
Use cases
a quarterly review compares the HaloPSA user list against the customer directory and flags the accounts nobody recognizes.
20

Update a user

user.update

What you see in n8n

Notes & use cases

Moving a user or correcting their details goes through Update Fields, the widest collection of the four resources.

Key parameters

  • User ID: the node leaves it optional, so set it to target the right person.
  • Site Name or ID: choose from the list, or specify an ID using an expression, and the user follows their new location.
  • User Is Inactive: a boolean, gentler than deletion when someone is only away.
Use cases
an internal transfer moves a contact to another site and updates the email on file at the same time.
Need help

Need help automating HaloPSA with n8n?

A person reads every message.

FAQ

HaloPSA and n8n, the questions that come up next

01Is the HaloPSA n8n integration free?
Yes on the n8n side. The HaloPSA node ships with n8n, so there is nothing to install and nothing extra to pay, whether you run n8n Cloud, the hosted offer, or your own instance from Docker or npm. A workflow built on one behaves the same way on the other. What HaloPSA itself costs is a separate question and this page does not cover it. What you do need is API access on the HaloPSA side, because the node authenticates with a credential you create once in n8n and then reuse across every workflow that touches the 20 operations.
02What credentials do you need to connect HaloPSA to n8n?
One HaloPSA API key credential. Inside it you pick a Hosting Type, either On Premise Solution when Halo runs on your own server, or Hosted Solution Of Halo when Halo hosts it, in which case you also supply your Tenant name. You then fill in the HaloPSA Authorisation Server URL, the Resource Server URL, a Client ID and a Client Secret. The two URLs, the tenant name and the application registration all live in Configuration, Integrations, Halo API, under API Details. n8n recommends registering the application with Client Credentials as the authentication method and the all permission.
03What are the limits of the HaloPSA node in n8n?
Two things to keep in mind. First, pagination: on the list operations, Return All chains through the pages the API returns, and when it is off, Limit fixes the maximum number of items you get back. Leave it off on a big client base and your export will be short without warning you. Second, scope: the node exposes 20 operations across clients, sites, tickets and users. Anything outside that catalogue goes through the HTTP Request node, which calls any endpoint of the HaloPSA API while reusing the same credential through predefined authentication.
04Does HaloPSA have a trigger node in n8n?
No. There is no HaloPSA trigger in n8n, so a workflow that involves the tool has to start somewhere else. Three options cover most cases. A Schedule Trigger runs at a fixed interval and reads with one of the list operations, which suits digests and reconciliation jobs. An n8n Webhook, meaning a URL that another service calls when something happens on its side, starts the workflow from that service instead. Or the trigger of another tool in your chain does the job, for example an inbound email, and HaloPSA comes in as the action.
05n8n or Make for HaloPSA?
It depends on four things. Hosting: n8n runs on your own server with Docker or npm, or on n8n Cloud, while Make is hosted only. Data control: with a self-hosted n8n, ticket and client data stays inside your own infrastructure, which matters when your customers ask where their records sit. Cost model: Make bills per operation, so a loop over a long client list is a line on the invoice. Visual logic: both are visual builders, and the honest test is to rebuild one real workflow in each and see which one you can debug faster.