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.
What Dex does with HaloPSA
Dex handles both admin workflows and employee self-service — all policy-guardrailed and audit-logged.
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
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.
| Action | What it does |
|---|---|
halopsa_create_ticket | Create a new HaloPSA ticket on behalf of the end user |
halopsa_add_note | Add a note (public or hidden) to an existing ticket via /Actions |
halopsa_resolve_ticket | Resolve or close a HaloPSA ticket |
halopsa_list_tickets | List 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
- 1Sign in to HaloPSA as an admin and go to Configuration → Integrations → Halo API.
- 2Under 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.).
- 3Copy the Client ID and Client Secret — the secret is shown once at creation.
- 4Note 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.
- 5In 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
Related integrations
- Ticketing & ITSM
ServiceNow
Manage ServiceNow incidents, service requests, and ITSM workflows in natural language.
Learn more → - Ticketing & ITSM
Freshservice
Drive Freshservice ITSM tickets, agents, and service catalog in plain language.
Learn more → - RMM & Endpoint
N-able N-sight
Query N-sight clients, devices, checks, and patches from plain-language requests.
Learn more →
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.