Add an API-Only Agent
In Halo PSA, navigate to the Configuration page.

Under Core Features, select Teams & Agents, then select Agents.


Click the + New button located at the top right.

Enter the following details then click Save:
- Username: LaborCast API
- Is an API-only Agent: Yes
- Default Team: *No Default Team*
- Work Hours: 24 Hours or default option

Add an API Role and set permissions
Return to the Configuration page. Under Core Features, select Teams & Agents, then select Roles.


Click the + New button located at the top right.

Enter the following details, then click Save:
- Role Name: API - LaborCast
- Agents that have this role: LaborCast API

After creating the role, click the Edit button, then select the Permissions tab.

Add the following permissions:
| Feature Access | |
| Tickets Access Level | Read Only |
| Customer/Clients Access Level | Read Only |
| Products/Items Access Level | Read Only |
| Sales Access Level | Read Only |
| Invoices Access Level | Read Only |
| Customer Agreements Access Level | Read Only |
| Timesheets Access Level | Read Only (All), Modify Own |
| Tickets Permissions | |
| Can view Unassigned Tickets | Yes |
| Can view Tickets that are assigned to other Agents | Yes |
Click the Save button to save your changes.
Add an Integration
Return to the Configuration page. Under Advanced, select Integrations.

Under Featured, select HaloPSA API.

Your server and tenant ID details will be displayed under API Details. Make note of the URLs and tenant ID for later.

Scroll down to Applications and click View Applications.

Click the + New button located at the top right.

Enter the following details under the Details tab:
- Application Name: LaborCast
- Authentication Method: Client ID and Secret (Services)
- Login Type: Agent
- Agent to log in as: LaborCast API

After selecting Client ID and Secret for the Authentication Method, the Client ID and Client Secret will be displayed. Make note of these for later.
⚠️Important: The Client Secret will only be displayed once. If you accidentally leave this screen after creating the application, click the Generate button to generate a new secret.
Switch to the Permissions tab and select the following:

Click the Save button to finish creating the application.
Test Connection
Back in LaborCast, complete the API Settings section as follows:
| PSA Software | Halo PSA |
| URL | The value from the Resource Server field on the Integrations > HaloPSA API screen, excluding /api. For example, if the Resource Server is https://mycompany.halopsa.com/api, then enter: https://mycompany.halopsa.com |
| Tenant ID | The value from the Tenant field on the Integrations > HaloPSA API screen |
| Client ID | The value from the Client ID field on the Integrations > HaloPSA API > View Applications > LaborCast screen |
| Client Secret | The value from the Client Secret field on the Integrations > HaloPSA API > View Applications > LaborCast screen. This is only displayed once when the integration is first created. This can be re-generated if needed. |
Click the Test Connection button to check your connection. If the connection fails due to a missing permission, check the API - LaborCast role to confirm the role has the necessary permissions. If the connection fails without any missing permissions listed, check your URL, Tenant ID, Client ID, and Client Secret to confirm the values are correct