All Collections
BeeCastle for Halo
Integrating BeeCastle with HaloPSA
Integrating BeeCastle with HaloPSA

Step by step instructions to sync your HaloPSA with BeeCastle

Hamish Rickerby avatar
Written by Hamish Rickerby
Updated over a week ago

This article will run you through the steps required to setup integration for organisations who use HaloPSA.


Topics Covered


Setup Process

You can either setup a role that contains the permissions, or configure the permissions directly on the agent. This guide covers setup of a specific role for BeeCastle, as this ensures the least privilege available to our user.


Setup a Role for the BeeCastle Integration

  • Navigate to Configuration -> Teams & Agents -> Roles

  • Click New in the top right

  • Name the role - BeeCastle API Role

  • Click Save to save the shell role

  • Click Edit to set permissions

  • Click on Departments and Teams in the horizontal menu.

  • Click Add next to Teams. This will pop a modal form.

  • Add a team that has visibility of opportunities. Your sales team is typically a good choice.

  • Click Save on the modal.

  • Click Permissions in the horizontal menu, and set the following permissions.

    • Feature Access

      • Ticket Access = Read and Modify

      • Clients Access = Read

      • Users Access = Read

      • Items Access = Read

      • Sales Access = Read

      • Invoices Access = Read

      • Client Agreements Access = Read

    • Ticket Permissions

      • Can add new tickets = Yes

      • Can view unassigned = Yes

      • Can view tickets that are assigned to other agents = Yes

      • Can assign to Agents in Teams the Agent is not a member of = Yes

    • Ticket Type Restrictions

      • Allow use of all Ticket Types = Yes

    • Client Restrictions

      • Allow use of all clients = Yes

    • Billing Permissions

      • Can view item costs = Yes


Setup an Agent for the BeeCastle Integration

  • Navigate to Configuration -> Teams & Agents -> Agents

  • Click New in the top right

  • Name the agent - BeeCastle API

  • For “Roles”, select the role that was created above.

  • Ensure “Account Active” is checked, as well as “Is an API-only Agent”.

  • Select a default team for the agent, same team that was assigned in the role above.

  • Set “Default Working Hours” for “Work Hours”

  • Click Save

  • Then, click Edit

  • Select the "Departments & Teams" tab

  • Click "Add"

  • In the Teams dropdown, choose all teams.

  • Ensure that "Can be assigned to", "Can see Unassigned Tickets for this Team", and "Can see Tickets assigned to other Agents in this Team" are checked.

  • Click Save.


Gather Endpoint Data

  • Navigate to Configuration -> Integrations -> HaloPSA

  • Make a note of the Resource Server, Authorisation Server, and Tenant and send to BeeCastle


Setup Application

  • From the above page, click View Applications within the Applications section

  • Then click New in the upper right corner

  • Enter the following data on the new application screen

    • Name: BeeCastle

    • Active: checked

    • Authentication Method: Client ID and Secret (Services)

    • Make a note of the Client ID (below Authentication Method) and Client Secret, and send to the BeeCastle Team

    • Login Type: Agent

    • Agent: Choose the agent you created earlier

  • Click Permissions Tab, and add the following permissions

    • read:customers

    • read:contracts

    • read:invoices

    • read:items

    • read:sales

    • read:tickets

  • Click Save


Setup Webhooks

  • Navigate to Configuration -> Integrations -> Webhooks

  • Click New in the upper right

  • Fill the following details in the form

    • Webhook name: BeeCastle Webhook

  • Payload URL: (TBA, requires beecastle account to generate)

  • Webhook Type: Standard Webhook

  • Method: Post

  • Content Type: application/json

  • Authentication: No authentication

  • Enabled: checked

  • Use a custom payload: false

  • Events: add the following events

    • Client created

    • Client deleted

    • Client updated

    • User created

    • User deleted

    • User updated

    • New ticket logged (with condition of “Ticket Type” “is equal to” “Opportunity”)

    • Ticket updated

  • Click save

Did this answer your question?