Skip to main content

Automation Endpoints (Part 2)

Automation & Workflows (continued)

EscMsg (Notifications) — continued

GET /Notifications — Query Parameters (continued)

NameTypeDescription
countintegerNumber of records to return
newer_than_idintegerReturn only records newer than this ID
older_than_idintegerReturn only records older than this ID
page_nointegerPage number
page_sizeintegerPage size
pageinatebooleanEnable pagination
update_shownbooleanMark returned notifications as shown
utc_offsetintegerUTC offset for time display

POST /Notifications

Create notification messages.

Request Body: Array of EscMsg objects

Key EscMsg fields:

PropertyTypeDescription
emailaddressstringRecipient email address
subjectstringEmail subject
emailbodystringPlain text email body
emailbody_htmlstringHTML email body
ccaddressstringCC email addresses
typeintegerNotification type
emailstatusintegerEmail delivery status
popupstatusintegerPopup display status
smsstatusintegerSMS delivery status
smsnosstringSMS recipient numbers
smsbodystringSMS message body
pushstatusintegerPush notification status
slackidintegerSlack integration ID
msteamsidintegerMS Teams integration ID
mattermost_channelidintegerMattermost channel ID
template_idintegerNotification template ID
approval_idintegerAssociated approval ID
ticket_idintegerAssociated ticket ID
agent_idintegerAgent recipient ID
user_idintegerUser recipient ID
notification_idintegerNotification definition ID
datetimedatetimeNotification timestamp
shownbooleanWhether popup was shown
read_statusintegerRead status
mailbox_fromintegerFrom mailbox ID
replyto_addressstringReply-to address

GET /Notifications/{id}

Get a single notification by ID.

Path Parameters:

NameTypeRequiredDescription
idinteger (int64)YesNotification ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude full notification details

DELETE /Notifications/{id}

Delete a notification.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesNotification 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:

PropertyTypeDescription
idintegerTarget ID
namestringTarget name
flow_idintegerAssociated workflow ID
flow_guidstring (uuid)Associated workflow GUID
target_typeintegerTarget type
start_stage_idintegerStarting stage ID
end_stage_idintegerEnding stage ID
targetnumber (double)Target time value
target_unitsstringTarget time units
workdayintegerWorking day calendar ID
rule_idintegerAssociated ticket rule ID
teamsarray[WorkflowTargetTeam]Teams associated with this target
prioritiesarray[WorkflowTargetPriority]Priority-specific targets
template_idintegerAssociated ticket template
start_stepsarray[WorkflowTargetStep]Steps that start the clock
end_stepsarray[WorkflowTargetStep]Steps that stop the clock

GET /WorkflowTarget/{id}

Get a single workflow target by ID.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesTarget ID

DELETE /WorkflowTarget/{id}

Delete a workflow target.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesTarget 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:

PropertyTypeDescription
idintegerRecord ID
rule_idintegerEvent rule that processed this event
timestampdatetimeWhen the event was received
statusintegerProcessing status
durationnumber (double)Processing duration in ms
urlstringSource URL
requestheadersstringIncoming request headers
requestbodystringIncoming request body
responsestatusintegerHTTP response status returned
responsebodystringResponse body
errorbooleanWhether an error occurred
entity_idintegerEntity ID associated with this event
thirdparty_idstringThird-party identifier
rule_namestringName of the matched event rule
output_variablesarrayOutput variables from processing
deletion_datedatetimeScheduled deletion date
moduleidintegerModule ID

GET /IncomingEvent/{id}

Get a single incoming event record by ID.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesEvent record ID

DELETE /IncomingEvent/{id}

Delete an incoming event record.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesEvent 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:

PropertyTypeDescription
idintegerRecord ID
urlstring (max 1000)Source URL
typestringWebhook type identifier
module_idintegerAssociated module ID
date_receiveddatetimeWhen the webhook was received
resource_idstringResource identifier from the payload
resource_typestringResource type from the payload
request_headersstringRaw request headers
request_bodystringRaw request body
resource_datastringExtracted resource data
resultstring (max 2000)Processing result message
statusBackgroundJobStatusProcessing status
retry_remainingintegerRemaining retry attempts
next_retry_datedatetimeNext retry scheduled time
process_errorstringError message if processing failed
last_attempt_datedatetimeLast processing attempt timestamp

GET /IncomingWebhook/{id}

Get a single incoming webhook record by ID.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesWebhook record ID

DELETE /IncomingWebhook/{id}

Delete an incoming webhook record.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesWebhook 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:

NameTypeDescription
countintegerNumber of records to return
idonlybooleanReturn IDs only
mailbox_idintegerFilter by mailbox ID
orderstringPrimary sort field
order2order5stringAdditional sort fields
orderdescorderdesc5booleanSort descending flags
page_nointegerPage number
page_sizeintegerPage size
pageinatebooleanEnable pagination
status_idintegerFilter 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:

NameTypeRequiredDescription
idinteger (int32)YesOutgoing message ID

Query Parameters:

NameTypeDescription
includeattachmentsbooleanInclude attachment details
includedetailsbooleanInclude full message details

DELETE /Outgoing/{id}

Delete an outgoing message record.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesOutgoing message ID

OutgoingAttempt

Logs individual send attempts for outgoing messages.


GET /OutgoingAttempt

List outgoing message attempt records.

Query Parameters:

NameTypeDescription
countintegerNumber of records to return
outgoing_idintegerFilter by parent outgoing message ID
orderorder5stringSort fields
orderdescorderdesc5booleanSort descending flags
page_nointegerPage number
page_sizeintegerPage size
pageinatebooleanEnable pagination

GET /OutgoingAttempt/{id}

Get a single outgoing attempt record.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesAttempt record ID

Query Parameters:

NameTypeDescription
includeattachmentsbooleanInclude attachments
includedetailsbooleanInclude full details