HaloAPI - A PowerShell module for Halo Service Solutions software
We are Mikey O'Toole (@homotechsual) and Luke Whitelock (@LWhitelock) we are both directors for (separate) UK-based managed IT services providers who share a passion for automation and good quality MSP software tools.
This is the code for a PowerShell module for the Halo Service Solutions series of software, including:
The module is written for PowerShell 7. It is not compatible with Windows PowerShell 5.1 and never will be.. This module is licensed under the MIT license.
HaloAPI provides a PowerShell wrapper around the Halo API, tested extensively against HaloPSA instances only (please test against HaloITSM or HaloServiceDesk instances and let us know how it works). The module can retrieve and send information to the Halo API.
This module is published to the PowerShell Gallery and can be installed from within PowerShell with Install-Module
Install-Module HaloAPI
The first and probably most important requirement for this module is getting it connected to your Halo instance.
-
In your Halo instance head to Configuration > Integrations > Halo PSA API
This might be Halo Service Desk API or Halo ITSM API. -
Click on View Applications
All going well you should be atconfig/integrations/api/applications
. -
Click on New to add a new API application.
-
Enter the Application Name.
For example HaloAPI PS Module. -
Make sure Active is checked.
-
Set the Authentication Method to Client ID and Secret (Services).
-
Store the Client ID and Client Secret securely.
-
Set the Login Type and Agent to login as appropriately.
This setting will determine who appears to be responsible for these API calls. You may want to create a dedicated agent user for this purpose. -
Select the Permissions tab.
-
Grant the application the permissions required for your purposes.
Generally speaking you want to limit the API to only the permissions it needs, to do the job you're scripting for.
-
Install the HaloAPI PowerShell module on PowerShell 7.0 or above.
Install-Module HaloAPI
-
Connect to the Halo API with
Connect-HaloAPI
Connect-HaloAPI -ClientID "a1234567-bcd8-9e01-2f34-56g7hijk89lm" -Tenant "demo" -URL "https://demo.halopsa.com" -ClientSecret "a1234567-bcd8-9e01-2f34-56g7hijk89lm-a1234567-bcd8-9e01-2f34-56g7hijk89lm" -Scopes "all"