Team: Huntress Managed Endpoint Detection and Response (EDR)
Integration: HaloPSA (PSA)
Environment: Huntress Dashboard and HaloPSA (Admin)
Summary: This guide covers how to configure the Huntress ticketing integration with HaloPSA, including required HaloPSA-side settings that affect ticket creation.
In this article
Before you begin
Confirm you have HaloPSA admin access, can create an API-only agent, and have selected the Ticket Type Huntress should use.
Common blockers
Ticket creation can fail if the selected Ticket Type enforces required fields without defaults (such as Category, Impact, and Urgency). If those fields must stay required, set defaults. Otherwise, select a Ticket Type with fewer enforced requirements.
If your PSA restricts access by IP address, allowlist Huntress IPs. See our Required Firewall Settings article for the full list.
See our Troubleshooting section for more info.
Configuration
Open the HaloPSA integration in Huntress
- Log in to Huntress and go to Integrations > HaloPSA.
- The HaloPSA integration setup screen prompts you for values from HaloPSA.
Create the HaloPSA API-only agent
- In HaloPSA, create an API-only agent for Huntress.
- Assign the API-only agent to a team or department so it can view and create tickets.
- If assigning to a department, set membership level to View All.
- If assigning to a team, use the same or similar team to what technician agents use.
- After saving the API-only agent, edit it to apply the following permissions:
- Tickets Access Level: Read and Modify
- Customers Access Level: Read Only (may appear as Clients Access Level in some HaloPSA environments)
- Can add new Tickets: Yes
- Can view Unassigned Tickets: Yes
- Can view Tickets assigned to other Agents: Yes
Copy the HaloPSA API hostname
- Navigate to the HaloPSA API section and copy the Resource Server hostname.
- Use the hostname only (do not include the
https://prefix or the/apisuffix).
Note: Use the base HaloPSA domain (for example yourcompany.halopsa.com). Custom domains are not supported.
Complete setup and test
- In HaloPSA, click View Applications, then click New to add an application.
- Collect the Client ID and Client Secret and copy both into Huntress. Ensure the application has at least the following permissions:
- Read Tickets: Yes
- Edit Tickets: Yes
- Read Customers: Yes
- Set the Agent to log in as to your API-only agent.
- Save the application in HaloPSA before submitting the form in Huntress.
- After the connection succeeds, map your Huntress organizations to HaloPSA clients and select the default Ticket Type.
- Send a test ticket from the integration's action menu and confirm it appears in HaloPSA.
Troubleshooting
Setup doesn’t complete (spinning indicator)
Integration setup stays on a spinning indicator and doesn’t complete.
Solution
Confirm the API-only agent and application permissions match this article. Ensure the Server Host is the base Halo domain only. After correcting any values, remove the HaloPSA integration in Huntress, add it again, and rerun the setup test.
Bad Request: “Please select a valid Client/Site/User”
Bad Request - "Please select a valid Client/Site/User"
Halo rejected the ticket request because it couldn’t resolve a valid context.
Solution
Create a General User at the MSP company level in HaloPSA, then re-send the test ticket. After creating the General User, re-sending the test ticket should succeed.
HTTP 401 during test ticket retrieval
the server responded with status 401 for GET /api/Tickets/<ticket_id>?count=1
Huntress can create the test ticket, but Halo rejects the retrieval request. This usually means the API-only agent can create the ticket but cannot see it afterward because of team scope or ticket visibility restrictions.
Solution
Confirm the API-only agent used for the Huntress integration is assigned to a team or department so it can view the tickets Huntress creates.
If assigning to a department, set the membership level to View All.
If assigning to a team, use the same or similar team used for ticket visibility and routing.
If tickets default to a specific team, set the API-only agent’s default team to that same team.
If the tenant uses multiple teams for ticket routing, add the API-only agent to all relevant teams.
- If needed for API-only workflows, clear Can be assigned to for the API-only agent, then rerun Send Test Ticket.
If the issue persists after these checks, review the tenant for non-standard team restrictions or assignment rules and work with HaloPSA Support as needed.
HTTP 400 during test ticket creation
the server responded with status 400, response_code: 400, response_body: "Category is mandatory\nImpact is mandatory\nUrgency is mandatory\n"
Halo is enforcing Category, Impact, and Urgency as required fields on the ticket type Huntress is using, but the Huntress integration does not send values for those fields. Halo then rejects the API request with a 400 and no ticket is created.
Solution
-
Identify the ticket type Huntress is using
- In Huntress, open Integrations > HaloPSA and note the name of the Default Ticket Type.
-
Edit that ticket type in Halo
- In Halo, open the matching Ticket Type.
- Locate the fields Category, Impact, and Urgency on that ticket type or its form or field group. Names may vary slightly per tenant.
-
Relax or default the fields
- For each of those fields, either:
- Make it non-mandatory, or
- Configure a default value so the ticket can be created via API without user input. If these fields must stay required for your normal workflows, consider using a dedicated “Huntress” ticket type with those defaults configured.
- Save your changes.
- For each of those fields, either:
-
Retest from Huntress
- In Huntress, go to Integrations > HaloPSA and run Send Test Ticket again.
PSA Ticket does not close after resolving incident report
Resolving incident reports are not closing out the tickets in the PSA. This is most likely due to a non-standard setup not covered in the article above and may require additional troubleshooting or outreach to HaloPSA Support.
Solution 1
Ensure in your HaloPSA integration in the Huntress portal, under the map tickets tab, to set your status for Status after Huntress Resolution.
Solution 2
Consider enabling either the all:teams setting for the API user you created or enable Can Edit Tickets Which Are Not Assigned To Them directly in your HaloPSA portal.