Automation Endpoints (Part 2)
Automation & Workflows (continued)
EscMsg (Notifications) — continued
GET /Notifications — Query Parameters (continued)
| Name | Type | Description |
|---|---|---|
count | integer | Number of records to return |
newer_than_id | integer | Return only records newer than this ID |
older_than_id | integer | Return only records older than this ID |
page_no | integer | Page number |
page_size | integer | Page size |
pageinate | boolean | Enable pagination |
update_shown | boolean | Mark returned notifications as shown |
utc_offset | integer | UTC offset for time display |
POST /Notifications
Create notification messages.
Request Body: Array of EscMsg objects
Key EscMsg fields:
| Property | Type | Description |
|---|---|---|
emailaddress | string | Recipient email address |
subject | string | Email subject |
emailbody | string | Plain text email body |
emailbody_html | string | HTML email body |
ccaddress | string | CC email addresses |
type | integer | Notification type |
emailstatus | integer | Email delivery status |
popupstatus | integer | Popup display status |
smsstatus | integer | SMS delivery status |
smsnos | string | SMS recipient numbers |
smsbody | string | SMS message body |
pushstatus | integer | Push notification status |
slackid | integer | Slack integration ID |
msteamsid | integer | MS Teams integration ID |
mattermost_channelid | integer | Mattermost channel ID |
template_id | integer | Notification template ID |
approval_id | integer | Associated approval ID |
ticket_id | integer | Associated ticket ID |
agent_id | integer | Agent recipient ID |
user_id | integer | User recipient ID |
notification_id | integer | Notification definition ID |
datetime | datetime | Notification timestamp |
shown | boolean | Whether popup was shown |
read_status | integer | Read status |
mailbox_from | integer | From mailbox ID |
replyto_address | string | Reply-to address |
GET /Notifications/{id}
Get a single notification by ID.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int64) | Yes | Notification ID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full notification details |
DELETE /Notifications/{id}
Delete a notification.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Notification ID |
POST /Notifications/process
Process a set of notifications by UUID.
Request Body: Array of UUIDs (string[])
WorkflowTarget
WorkflowTargets define OLA (Operational Level Agreement) targets — time-based targets between workflow stages.
GET /WorkflowTarget
List workflow targets.
POST /WorkflowTarget
Create or update workflow targets.
Request Body: Array of WorkflowTarget objects
Key WorkflowTarget fields:
| Property | Type | Description |
|---|---|---|
id | integer | Target ID |
name | string | Target name |
flow_id | integer | Associated workflow ID |
flow_guid | string (uuid) | Associated workflow GUID |
target_type | integer | Target type |
start_stage_id | integer | Starting stage ID |
end_stage_id | integer | Ending stage ID |
target | number (double) | Target time value |
target_units | string | Target time units |
workday | integer | Working day calendar ID |
rule_id | integer | Associated ticket rule ID |
teams | array[WorkflowTargetTeam] | Teams associated with this target |
priorities | array[WorkflowTargetPriority] | Priority-specific targets |
template_id | integer | Associated ticket template |
start_steps | array[WorkflowTargetStep] | Steps that start the clock |
end_steps | array[WorkflowTargetStep] | Steps that stop the clock |
GET /WorkflowTarget/{id}
Get a single workflow target by ID.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Target ID |
DELETE /WorkflowTarget/{id}
Delete a workflow target.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Target ID |
IncomingEvent
IncomingEvent records are the log of events received from external integrations (e.g., third-party tools sending event payloads).
GET /IncomingEvent
List incoming event records.
POST /IncomingEvent
Create incoming event records.
Request Body: Array of IncomingEvent objects
Key IncomingEvent fields:
| Property | Type | Description |
|---|---|---|
id | integer | Record ID |
rule_id | integer | Event rule that processed this event |
timestamp | datetime | When the event was received |
status | integer | Processing status |
duration | number (double) | Processing duration in ms |
url | string | Source URL |
requestheaders | string | Incoming request headers |
requestbody | string | Incoming request body |
responsestatus | integer | HTTP response status returned |
responsebody | string | Response body |
error | boolean | Whether an error occurred |
entity_id | integer | Entity ID associated with this event |
thirdparty_id | string | Third-party identifier |
rule_name | string | Name of the matched event rule |
output_variables | array | Output variables from processing |
deletion_date | datetime | Scheduled deletion date |
moduleid | integer | Module ID |
GET /IncomingEvent/{id}
Get a single incoming event record by ID.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Event record ID |
DELETE /IncomingEvent/{id}
Delete an incoming event record.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Event record ID |
POST /IncomingEvent/Process
Trigger processing of queued incoming events.
IncomingWebhook
IncomingWebhook records log raw webhook payloads received by HaloPSA from external systems, including processing status and retry state.
GET /IncomingWebhook
List incoming webhook records.
POST /IncomingWebhook
Create incoming webhook records.
Request Body: Array of IncomingWebhook objects
Key IncomingWebhook fields:
| Property | Type | Description |
|---|---|---|
id | integer | Record ID |
url | string (max 1000) | Source URL |
type | string | Webhook type identifier |
module_id | integer | Associated module ID |
date_received | datetime | When the webhook was received |
resource_id | string | Resource identifier from the payload |
resource_type | string | Resource type from the payload |
request_headers | string | Raw request headers |
request_body | string | Raw request body |
resource_data | string | Extracted resource data |
result | string (max 2000) | Processing result message |
status | BackgroundJobStatus | Processing status |
retry_remaining | integer | Remaining retry attempts |
next_retry_date | datetime | Next retry scheduled time |
process_error | string | Error message if processing failed |
last_attempt_date | datetime | Last processing attempt timestamp |
GET /IncomingWebhook/{id}
Get a single incoming webhook record by ID.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Webhook record ID |
DELETE /IncomingWebhook/{id}
Delete an incoming webhook record.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Webhook record ID |
POST /IncomingWebhook/Process
Trigger processing of incoming webhook records by ID.
Request Body: Array of integer IDs
IncomingWebhookAttempt
Logs individual processing attempts for incoming webhooks.
GET /IncomingWebhookAttempt
List incoming webhook processing attempt records.
Outgoing (Outgoing Messages)
Outgoing records represent outbound messages queued or sent by HaloPSA — typically emails sent to contacts.
GET /Outgoing
List outgoing message records.
Query Parameters:
| Name | Type | Description |
|---|---|---|
count | integer | Number of records to return |
idonly | boolean | Return IDs only |
mailbox_id | integer | Filter by mailbox ID |
order | string | Primary sort field |
order2–order5 | string | Additional sort fields |
orderdesc–orderdesc5 | boolean | Sort descending flags |
page_no | integer | Page number |
page_size | integer | Page size |
pageinate | boolean | Enable pagination |
status_id | integer | Filter by message status |
POST /Outgoing
Queue outgoing messages by ID.
Request Body: Array of integer IDs
GET /Outgoing/{id}
Get a single outgoing message record.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Outgoing message ID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includeattachments | boolean | Include attachment details |
includedetails | boolean | Include full message details |
DELETE /Outgoing/{id}
Delete an outgoing message record.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Outgoing message ID |
OutgoingAttempt
Logs individual send attempts for outgoing messages.
GET /OutgoingAttempt
List outgoing message attempt records.
Query Parameters:
| Name | Type | Description |
|---|---|---|
count | integer | Number of records to return |
outgoing_id | integer | Filter by parent outgoing message ID |
order–order5 | string | Sort fields |
orderdesc–orderdesc5 | boolean | Sort descending flags |
page_no | integer | Page number |
page_size | integer | Page size |
pageinate | boolean | Enable pagination |
GET /OutgoingAttempt/{id}
Get a single outgoing attempt record.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Attempt record ID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includeattachments | boolean | Include attachments |
includedetails | boolean | Include full details |