All Collections
Authentication guides
Halo PSA/ITSM Authentication Guide
Halo PSA/ITSM Authentication Guide

How to authenticate Halo PSA/ITSM for use with Tines

Daniel Stoeski avatar
Written by Daniel Stoeski
Updated over a week ago

HaloITSM is a flexible, all-inclusive ITSM (IT Service Management) solution. HaloITSM gives you the power to manage all IT support with powerful ITIL-aligned out-of-the-box functionality. You can streamline and report on specific processes such as change and problem management. Tailored to your exact requirements, you can align IT to your business needs in an all-inclusive, unlimited IT Service Desk solution.

First, create a Halo PSA/ITSM application

  1. Login to your Halo PSA tenant

  2. Click on "Configuration"

  3. Under "Advanced", click "Integrations"

  4. Next, click "HaloPSA API"

  5. Copy the values for "Resource Server", "Authorisation Server" and "Tenant", and then click "View Applications"

  6. Click "New" to create a new application

  7. Give the application a name, select "Username & Password" for the "Authentication Method" and then copy the "Client ID"

  8. Next, click on the "Permissions" tab and choose the required privileges

Next, obtain a Refresh Token in Tines

  1. Login to your Tines tenant

  2. Create a new story

  3. Copy the below action to your storyboard, replace the values and run the action

    1. You will need to replace the following values:

      1. <<AuthorisationServerName>> with your "Authorisation Server"

      2. <<YourTenantName>> with the your "Tenant"

      3. <<YourClientID>> with your "Client ID"

      4. <<UserName>> with your "Username"

      5. <<Password>> with your "Password"

    {"standardLibVersion":"35","actionRuntimeVersion":"4","agents":[{"disabled":false,"name":"Request to HALOPSA to Get Auth Token","description":null,"options":"{\"url\":\"https://\\\\<<AuthorisationServerName>>/token?tenant=\\\\<<YourTenantName>>\",\"method\":\"post\",\"content_type\":\"form\",\"headers\":{\"accept\":\"application/json\"},\"payload\":{\"grant_type\":\"password\",\"client_id\":\"\\\\<<YourClientID>>\",\"username\":\"\\\\<<UserName>>\",\"password\":\"\\\\<<YourPassword>>\",\"scope\":\"all\"}}","position":{"x":90,"y":735},"type":"httpRequest","timeSavedUnit":"minutes","timeSavedValue":0,"monitorAllEvents":false,"monitorFailures":false,"monitorNoEventsEmitted":null,"recordType":null,"recordWriters":[],"form":null,"cardIconName":null,"createdFromTemplateGuid":null,"createdFromTemplateVersion":null,"originStoryIdentifier":"cloud:536b51f8b592b6b269124bde91592b8d:bb39f16bb96afe7fca6079734f25f6e6"}],"links":[],"diagramNotes":[]}

  4. Copy the refresh_token value

Lastly, create a Halo PSA/ITSM credential in Tines

  1. Navigate to the team that will be using the API and click "Credential"

  2. Click "+ New Credential" and select "HTTP Request"

  3. Input the values for the Halo PSA/ITSM credential

    • Name: halo

    • Description: Optional

    • URL: https://<<AuthorisationServerName>>/token?tenant=<<YourTenantName>>

    • Content Type: Form

    • Method: post

    • Payload: Copy the below object and paste into the "Plain code" section, replacing:

      1. <<client_id>> with your "Client ID"

      2. <<refresh_token>> with your "Refresh Token"


    • Headers: Click "+" and add the header "accept":"application/json"

    • Click "Run options" and make sure you get a successful response.

    • Location of token from response: Double-click the access_token key in the response and paste into the pill. It should read halo.body.access_token

  4. Optional

    • Domains: Ensure this credential can only be used when making HTTP requests to specific domains

    • Access: What other teams can also use the API

  5. Click "Save"

Your credential should look like the following:

More on creating credentials in Tines here.

You can also find a selection of Halo PSA/ITSM stories in the story library.

Using the credential in an action

Below is an example Halo PSA/ITSM action you can copy and paste onto your storyboard in Tines. You will need to replace YourResourceServer with your "Resource Server"

{"standardLibVersion":"35","actionRuntimeVersion":"4","agents":[{"disabled":false,"name":"Get a list of Tickets","description":null,"options":"{\"url\":\"https//YourResourceServer/api/Tickets\",\"method\":\"get\",\"content_type\":\"json\",\"headers\":{\"Authorization\":\"Bearer <<CREDENTIAL.halo>>\"}}","position":{"x":1980,"y":1305},"type":"httpRequest","timeSavedUnit":"minutes","timeSavedValue":0,"monitorAllEvents":false,"monitorFailures":false,"monitorNoEventsEmitted":null,"recordType":null,"recordWriters":[],"form":null,"cardIconName":null,"createdFromTemplateGuid":null,"createdFromTemplateVersion":null,"originStoryIdentifier":"cloud:536b51f8b592b6b269124bde91592b8d:bb39f16bb96afe7fca6079734f25f6e6"}],"links":[],"diagramNotes":[]}
Did this answer your question?