---
title: "HaloPSA Integration"
description: "Connect AI agents to HaloPSA, the all-in-one MSP and IT service management (PSA) platform. Agents manage tickets, actions, clients, sites, end users, assets, agents, and invoices across the Halo API."
url: https://flowrunner.ai/integrations/halopsa
date_modified: 2026-08-07T17:20:23-07:00
---

# HaloPSA

[Helpdesk & ITSM](https://flowrunner.ai/integrations/category/helpdesk-itsm)

Connect AI agents to HaloPSA, the all-in-one MSP and IT service management (PSA) platform. Agents manage tickets, actions, clients, sites, end users, assets, agents, and invoices across the Halo API.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 20 actions · Custom auth · available

[HaloPSA website](https://halopsa.com/) · [Platform Documentation](https://halo.haloservicedesk.com/apidoc/info) · Capability data verified 2026-07-14

1.  An alert, form submission, or inbound message arrives
2.  Agent looks up the client and ticket detail with Get Clients and Get Ticket
3.  Agent raises the case with Create Ticket for the affected client
4.  Agent logs the update with Create Action against the ticket
5.  The requester gets a confirmation of the new ticket
6.  An account owner approves any invoice detail before it reaches the client

## What This Integration Enables

An agent can get, create, update, and delete tickets, get a ticket's actions and create an action such as an agent note or a customer-facing update, and read the invoices tied to a client. On the account side, it gets, creates, and updates clients, gets sites, gets, creates, and reads end users, gets and creates assets, and lists agents, so the records that a ticket depends on stay in step with other systems. Halo's write endpoints expect a JSON array even for a single record, and the integration handles that wrapping for you.

Because so many operations reference a client, the integration backs client and agent parameters with dropdown lookups, so a flow can pick the right record instead of passing a raw numeric ID. HaloPSA exposes no triggers in this integration, so flows start from the systems feeding it: a Slack message, an alert, a form, or a scheduled sweep of open tickets. This is the surface that lets an agent run the routine PSA work at machine speed, while the invoice a client actually sees still gets a person.

### Without FlowRunner

**Tickets raised by hand**: Someone copies each alert or message into HaloPSA one at a time

**Client looked up manually**: An agent finds the right client and site before opening a ticket

**Billing details unchecked**: Invoice totals reach the client with no review of what was billed

### With FlowRunner

**Tickets raised on the signal**: Create Ticket opens the case for the affected client as it arrives

**Client resolved in the flow**: The agent finds the client and site before the ticket opens

**Billing details reviewed**: An account owner approves invoice detail before it reaches the client

## Use Case Scenarios

### Raise a Ticket From an Inbound Message

When a [Slack](https://flowrunner.ai/integrations/slack) channel message reports an issue, the agent calls Create Ticket to raise a ticket for the affected client, then replies with the new ticket ID. The report becomes a tracked ticket without anyone leaving the conversation.

### Report the Day's Open Tickets

The agent calls Get Tickets to pull the day's open tickets, then appends each to a reporting spreadsheet with [Google Sheets](https://flowrunner.ai/integrations/google-sheets) Add Row for stakeholder review. The morning report builds itself instead of waiting on a manual export.

### Confirm and Log a New Ticket

When Create Ticket succeeds, the agent emails the requesting end user a confirmation with [Gmail](https://flowrunner.ai/integrations/gmail-service) Send Message, then records the notification against the ticket with Create Action. The ticket carries a full timeline of what was sent and when.

## Human-in-Loop Highlight

Logging an internal action against a ticket is safe, because it stays inside the PSA. Sending a client something billable is not, because an invoice detail that reaches a customer commits the MSP to a number and can spark a billing dispute if it is wrong. So when a flow assembles invoice detail for a client, the agent stops before it goes out. It reads the invoice with Get Invoices, then routes the figures to an account owner as a [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) step, showing the client, the line items, and the total, and asks whether the amount is right to send. On approval the flow proceeds and the confirmation goes to the client. On hold, nothing reaches the customer. The AI keeps tickets, clients, and assets in sync at scale; the number a client is billed gets a person.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

20 actions

### Tickets

5

-   **Get Tickets** Lists tickets in HaloPSA with optional search and paging, returning the matching tickets and the total record count.
-   **Get Ticket** Retrieves a single ticket by its ID, including summary, status, priority, client, site, assigned agent, and custom fields.
-   **Create Ticket** Creates a new ticket for a client, with summary, details, priority, and assignment set.
-   **Update Ticket** Updates an existing ticket, changing only the fields you set.
-   **Delete Ticket** Deletes a ticket by its ID.

### Actions

2

-   **Get Actions** Lists the actions logged against a ticket, including agent notes, customer replies, and status changes, with the total record count.
-   **Create Action** Adds an action to a ticket, such as an agent note or a customer-facing update, with an outcome label and an optional private flag.

### Clients

4

-   **Get Clients** Lists clients (customer organizations) with optional full-text search and paging.
-   **Get Client** Retrieves a single client by its ID, including name, status, top-level parent, and account details.
-   **Create Client** Creates a new client with a name and optional website, main contact email, and parent client.
-   **Update Client** Updates an existing client, changing only the fields you set.

### Sites

1

-   **Get Sites** Lists the sites (locations) belonging to clients.

### Users

3

-   **Get Users** Lists end users with optional search and paging.
-   **Get User** Retrieves a single end user by its ID.
-   **Create User** Creates a new end user under a client.

### Assets

3

-   **Get Assets** Lists assets (client devices and equipment) with optional search and paging.
-   **Get Asset** Retrieves a single asset by its ID.
-   **Create Asset** Creates a new asset for a client.

### Agents

1

-   **Get Agents** Lists agents in HaloPSA so a flow can route or reference the right owner.

### Invoices

1

-   **Get Invoices** Reads the invoices tied to a client, including line items and totals, to enrich notifications and reports.

## Frequently Asked Questions

### What can FlowRunner do with HaloPSA?

FlowRunner agents can run Get Tickets, Get Ticket, and Create Ticket in HaloPSA, plus 17 more actions.

### Does connecting HaloPSA to FlowRunner require OAuth?

HaloPSA uses a custom authentication method to connect to FlowRunner.

### Can HaloPSA trigger a FlowRunner workflow automatically?

HaloPSA doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at HaloPSA?** This integration exposes HaloPSA to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/halopsa. Site index: https://flowrunner.ai/llms.txt
