About
This module provides a PowerShell interface to the Halo API. It's designed to for PowerShell developers to build their own PowerShell scripts and modules to interact with Halo. It's well tested for Halo Professional Services Automation (PSA) but should work with Halo IT Service Management (ITSM), Halo Service Desk and Halo Customer Relationship Management (CRM).
Installing
This module is published to the PowerShell Gallery. You can install it using the following command:
Install-Module -Name HaloAPI
From time-to-time, preview releases will be published to the PowerShell Gallery. These are not considered stable and should not be used in production. You can install preview releases using the following command:
Install-Module -Name HaloAPI -AllowPrerelease
Getting Started
The first and probably most important requirement for this module is getting it connected to your Halo instance.
Creating an application in Halo
-
In your Halo instance head to Configuration > Integrations > Halo PSA API
This might be Halo Service Desk API or Halo ITSM API. -
Select View Applications
All going well you should be atconfig/integrations/api/applications
. -
Select New to add a new API application.
-
Enter the Application Name.
For example HaloAPI PS Module. -
Make sure you check the Active box.
-
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 determines 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.
You should limit the API to only the permissions it needs to do the job you're scripting for.
Known Issues
Not all Halo's API endpoints have cmdlets but all documented endpoints exist in this module, along with many other undocumented endpoints. Want an endpoint / functionality implemented? Log an issue on GitHub and if possible someone might add it, or you can implement it yourself.
For little used or one-off endpoints you can call Invoke-HaloRequest
directly to reuse the same authentication token/connection and run arbitrary requests. See the cmdlet documentation for more information.