Skip to main content

Integrating BeeCastle with HaloPSA

Step by step instructions to sync your HaloPSA with BeeCastle

Hamish Rickerby avatar
Written by Hamish Rickerby
Updated over a month 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

  • 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?