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. Create a ticket for the customer. Confirm their name, email, a short summary and the detail of the issue first. Tell the customer the ticket ID returned in the id field of the response.
Request
POSThttps://YOUR_INSTANCE.halopsa.com/api/Tickets
Headers
Content-Typeapplication/jsonAuthorizationBearer {{accessToken}}
Body
[
{
"summary": "{{summary}}",
"details": "{{description}}",
"user_name": "{{name}}",
"user_email": "{{email}}",
"tickettype_id": "YOUR_HALO_TICKET_TYPE_ID",
"client_id": "YOUR_HALO_CLIENT_ID_NUMBER"
}
]Parameters
summary stringA short summary of the issue.description stringThe full detail of the issue.name stringThe customer's full name.email stringThe customer's email address.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": "f76a21d8-4e11-49b0-ae40-f4ddf9968249",
"type": "HTTP_REQUEST",
"label": "Create HaloPSA Ticket",
"name": "create_halopsa_ticket",
"customName": false,
"description": "Get a HaloPSA access token first if you do not already have one. Create a ticket for the customer. Confirm their name, email, a short summary and the detail of the issue first. Tell the customer the ticket ID returned in the id field of the response.",
"parameters": [
{
"name": "summary",
"type": "string",
"description": "A short summary of the issue."
},
{
"name": "description",
"type": "string",
"description": "The full detail of the issue."
},
{
"name": "name",
"type": "string",
"description": "The customer's full name."
},
{
"name": "email",
"type": "string",
"description": "The customer's email address."
},
{
"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": "POST",
"url": "https://YOUR_INSTANCE.halopsa.com/api/Tickets"
},
"headers": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "Bearer {{accessToken}}"
}
],
"body": "[\n {\n \"summary\": \"{{summary}}\",\n \"details\": \"{{description}}\",\n \"user_name\": \"{{name}}\",\n \"user_email\": \"{{email}}\",\n \"tickettype_id\": \"YOUR_HALO_TICKET_TYPE_ID\",\n \"client_id\": \"YOUR_HALO_CLIENT_ID_NUMBER\"\n }\n]",
"timeout": null
}
}
}IDs are regenerated on every copy.