HaloPSA logo
Ticketing & ITSM

HaloPSA

Drive HaloPSA tickets, customers, and assets from natural-language requests.

Dex connects to HaloPSA over the REST API using OAuth2 client credentials and lets admins and employees run PSA operations in natural language — creating tickets (POST /Ticket with array body), adding notes via /Actions, resolving tickets, and searching customers, assets, contracts, agents, and the knowledge base — with support for both hosted (tenant-based) and self-hosted Halo instances.

Book a Demo

What Dex does with HaloPSA

Dex handles both admin workflows and employee self-service — all policy-guardrailed and audit-logged.

A

For admins (CoAdmin)

  • Create and update tickets via POST /Ticket with HaloPSA's array body format ([{...}] — include id to update, omit to create)
  • Add notes or actions to a ticket via POST /Actions with ticket_id, note, outcome, and hiddenfromuser control
  • Search tickets by customer, site, ticket type, status, and priority
  • Look up customers, sites, contracts, users/contacts, agents, teams, and assets
  • Browse ticket types, statuses, priorities, and the knowledge base
  • Pull appointments, invoices, and reports for operational context
  • Paginate large result sets with ?count=50&page_no=N — Dex follows record_count transparently
E

For employees (self-service)

  • Open a HaloPSA ticket for anything Dex can't resolve directly
  • List your own open tickets and see each one's status, priority, and assigned agent
  • Check the status of a specific ticket number
  • Add a note to one of your tickets (visible to the agent) so they see the latest context
  • Mark your ticket resolved once the issue is confirmed fixed

Just ask Dex

Your team types a request in plain language. Dex investigates, plans, and executes — with the right guardrails.

Admin prompts

  • >Open a HaloPSA Incident ticket for the Acme Inc customer, site HQ — "Exchange hybrid mail flow stalls after 5pm", priority High, assign to the Messaging team
  • >List every HaloPSA ticket for customer ID 42 that isn't in a closed status
  • >Add a hidden-from-user note to ticket 3120: "Escalated to L3, tagged asset AC-2219 for replacement under the managed service contract"
  • >Resolve ticket 3101 and add a visible note summarising the fix for the customer
  • >Show me the active contracts for customer "Globex" and their renewal dates

Employee prompts

  • >Open a HaloPSA ticket — the office printer on the 3rd floor jams every print job since yesterday
  • >What's the status of my ticket 3115?
  • >Add a note to my open ticket: "Tried rebooting twice, same error"
  • >Please resolve my VPN ticket — it's working since the config push

Policy actions

Every action Dex can take on HaloPSA is declared, scoped, and guardrailed. Admins control which apply, who approves them, and whether they're limited to self-service.

ActionWhat it does
halopsa_create_ticketCreate a new HaloPSA ticket on behalf of the end user
halopsa_add_noteAdd a note (public or hidden) to an existing ticket via /Actions
halopsa_resolve_ticketResolve or close a HaloPSA ticket
halopsa_list_ticketsList and search the user's HaloPSA tickets (by customer, status, priority)

How to configure HaloPSA

Onboarding takes minutes. Dex validates your credentials before saving them.

Setup steps

  1. 1
    Sign in to HaloPSA as an admin and go to Configuration → Integrations → Halo API.
  2. 2
    Under API Applications, click New and create a new API application — name it (e.g. "Dex Autonomous IT"), authentication method "Client ID and Secret", and grant the scopes you need (read:tickets, edit:tickets, read:customers, etc.).
  3. 3
    Copy the Client ID and Client Secret — the secret is shown once at creation.
  4. 4
    Note your Halo URL (e.g. https://yourcompany.halopsa.com) and, for hosted instances, your tenant name (shown on the Halo API configuration page). Self-hosted instances leave tenant blank.
  5. 5
    In Dex, enable the HaloPSA integration and paste the Halo URL, tenant (if hosted), Client ID, and Client Secret. Dex exchanges these for an OAuth2 bearer token (refreshed automatically) and validates with a live GET /Ticket call.

Credentials required

halo_url
Your HaloPSA instance URL (e.g. https://yourcompany.halopsa.com)
tenant
Tenant name — required for hosted Halo instances (Configuration → Integrations → Halo API). Leave blank for self-hosted.
client_id
Client ID from the Halo API application
client_secret
Client Secret from the Halo API application (shown once)

Requirements

  • HaloPSA admin rights to create API Applications under Configuration → Integrations
  • API application must be granted the scopes Dex needs (tickets, customers, sites, assets, agents, contracts, kb)
  • POST /Ticket body is always an ARRAY [{...}] — include id to update, omit to create. Dex handles this automatically.
  • Ticket notes are created via POST /Actions (ticket_id + note + outcome + hiddenfromuser), not as a sub-resource under the ticket
  • Ticket types, statuses, and priorities are instance-configurable — discovered via /TicketType, /Status, and /Priority at runtime

See Dex run HaloPSA

Book a 30-minute walkthrough with our team and see how autonomous IT works in your environment — or get started for free.