Add this first. This tool needs an access token, so add Get HaloPSA Access Token to the same bot. The bot calls it first and passes the token in.
What the model is told
Get a HaloPSA access token first if you do not already have one. Look up a ticket using the ticket ID the customer gives you. The response includes summary, status_id, priority_id and agent details. Only share the summary and general progress with the customer, and never read out other details such as contact information.
Request
GEThttps://YOUR_INSTANCE.halopsa.com/api/Tickets/{{ticketId}}
Headers
AuthorizationBearer {{accessToken}}
Parameters
ticketId stringThe HaloPSA ticket ID.accessToken stringThe access_token value returned by Get HaloPSA Access Token. Reuse it for the rest of the conversation.
Engage payload
{
"source": "VOICE_AI",
"tool": {
"id": "5a25ba92-0bad-4657-a2f7-37e29416b564",
"type": "HTTP_REQUEST",
"label": "Get HaloPSA Ticket Status",
"name": "get_halopsa_ticket_status",
"customName": false,
"description": "Get a HaloPSA access token first if you do not already have one. Look up a ticket using the ticket ID the customer gives you. The response includes summary, status_id, priority_id and agent details. Only share the summary and general progress with the customer, and never read out other details such as contact information.",
"parameters": [
{
"name": "ticketId",
"type": "string",
"description": "The HaloPSA ticket ID."
},
{
"name": "accessToken",
"type": "string",
"description": "The access_token value returned by Get HaloPSA Access Token. Reuse it for the rest of the conversation."
}
],
"config": {
"endpoint": {
"method": "GET",
"url": "https://YOUR_INSTANCE.halopsa.com/api/Tickets/{{ticketId}}"
},
"headers": [
{
"name": "Authorization",
"value": "Bearer {{accessToken}}"
}
],
"body": null,
"timeout": null
}
}
}IDs are regenerated on every copy.