Automation Endpoints (Part 3)
Automation & Workflows (continued)
Webhook (Outbound Webhooks)
Outbound webhook configurations define where HaloPSA sends event notifications to external systems.
GET /Webhook
List outbound webhook configurations.
Query Parameters:
| Name | Type | Description |
|---|---|---|
isazureautomation | boolean | Filter for Azure Automation webhooks |
type | integer | Filter by webhook type |
POST /Webhook
Create or update webhook configurations.
Request Body: Array of Webhook objects
Key Webhook fields:
| Property | Type | Description |
|---|---|---|
id | string (uuid) | Webhook UUID |
name | string | Webhook name |
type | integer | Webhook type |
url | string | Target URL |
content_type | string | Content-type header for requests |
method | integer | HTTP method (GET/POST/etc.) |
authentication_type | integer | Outbound authentication type |
basic_username | string | Basic auth username |
certificate_id | integer | Client certificate ID |
active | boolean | Active status |
disabled | boolean | Whether webhook is disabled |
events | array[UnameNotification] | Events that trigger this webhook |
steps | array[FlowDetail] | Runbook steps (for runbook-type webhooks) |
input_variables | array | Input variable definitions |
mappings | array[WebhookMapping] | Field mappings |
custom_payload | boolean | Use custom payload format |
payload_type | integer | Payload format type |
schedule_id | integer | Schedule for scheduled webhooks |
log_retention_policy_days | integer | Log retention period in days |
notify_on_failure | boolean | Send failure notifications |
notify_on_failure_tech | integer | Tech to notify on failure |
inbound_authentication_type | integer | Authentication type for inbound requests to this webhook |
runbook_start_type | integer | How the runbook is initiated |
batch_method | integer | Batch processing method |
batch_delay_seconds | integer | Delay between batches |
batch_limit | integer | Maximum batch size |
safe_instances | integer | Max concurrent instances |
multiple_execution_mode | integer | Behavior when triggered multiple times concurrently |
auto_disable_attempts | integer | Auto-disable after N failed attempts |
integrations | array[OutboundIntegration] | Linked outbound integrations |
standalone_methods | array[OutboundIntegrationMethod] | Standalone callable methods |
run_count_hour / run_count_day / run_count_week | integer | Execution frequency stats |
GET /Webhook/{id}
Get a single webhook configuration.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | Webhook UUID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full step/mapping details |
DELETE /Webhook/{id}
Delete a webhook configuration.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | Webhook UUID |
WebhookEvent
WebhookEvent records log individual execution events for outbound webhooks — each time a webhook fires.
GET /WebhookEvent
List webhook execution event records.
Query Parameters:
| Name | Type | Description |
|---|---|---|
automation_id | integer | Filter by automation ID |
webhook_id | string | Filter by webhook UUID |
integrationmethod_id | integer | Filter by integration method ID |
count | integer | Number of records to return |
idonly | boolean | Return IDs only |
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 |
POST /WebhookEvent
Create webhook event records.
Request Body: Array of WebhookEvent objects
Key WebhookEvent fields:
| Property | Type | Description |
|---|---|---|
id | string (uuid) | Event UUID |
webhook_id | string (uuid) | Parent webhook UUID |
integration_method_id | integer | Integration method that fired |
notification_id | integer | Associated notification ID |
timestamp | datetime | When the event fired |
status | integer | Execution status |
duration | number (double) | Execution duration in ms |
requestheaders | string | Outbound request headers |
requestbody | string | Outbound request body |
responsestatus | integer | HTTP response status code received |
responseheaders | string | Response headers |
responsebody | string | Response body |
automation_id | integer | Associated automation record ID |
automation_step | integer | Step in automation that triggered this |
entity_id | integer | Entity ID (e.g., ticket ID) |
error | boolean | Whether an error occurred |
log_retention_policy_deletion_date | datetime | Scheduled deletion date per retention policy |
GET /WebhookEvent/{id}
Get a single webhook event record.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | Event UUID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full details |
WebhookRepository
Read-only repository view of webhook configurations (library/shared webhooks).
GET /WebhookRepository
List webhook repository entries.
Query Parameters:
| Name | Type | Description |
|---|---|---|
isazureautomation | boolean | Filter for Azure Automation webhooks |
type | integer | Filter by webhook type |
GET /WebhookRepository/{id}
Get a single webhook from the repository.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | string (uuid) | Yes | Webhook UUID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full details |
OutboundIntegration (Custom Integrations)
Custom integrations define authenticated outbound API connections to external systems, including OAuth2, API key, and certificate-based auth configurations.
GET /CustomIntegration
List outbound integration configurations.
POST /CustomIntegration
Create or update outbound integrations.
Request Body: Array of OutboundIntegration objects
Key OutboundIntegration fields:
| Property | Type | Description |
|---|---|---|
id | integer | Integration ID |
guid | string (uuid) | Integration GUID |
name | string | Integration name |
module_id | integer | Associated module |
authorizationtype | integer | Authorization type (None, Basic, OAuth2, API Key, etc.) |
granttype | integer | OAuth2 grant type |
authorizationurl | string | OAuth2 authorization URL |
tokenurl | string | OAuth2 token URL |
client_id | string | OAuth2 client ID |
new_client_secret | string | OAuth2 client secret (write-only) |
username | string | Basic auth / credential username |
new_password | string | Basic auth / credential password (write-only) |
scope | string | OAuth2 scope |
resourcebaseurl | string | Base URL for API calls |
headername | string (max 100) | Authentication header name |
headerprefix | string (max 100) | Authentication header prefix |
algorithm | integer | Signing algorithm |
bearername | string | Bearer token field name |
bearerlocation | integer | Where the bearer is passed (header/query) |
certificate_id | integer | Client certificate ID |
response_token_name | string | Field name in token response |
token_expiry_mins | integer | Token cache duration in minutes |
authorized | boolean | Whether the integration is authorized |
methods | array[OutboundIntegrationMethod] | API methods defined for this integration |
jwt_token_method | integer | JWT generation method |
jwt_certificate_id | string | Certificate for JWT signing |
access_control_level | integer | Access control level |
safe_instances | integer | Max concurrent instances |
enable_linked_instance_client_credentials | boolean | Use per-instance credentials |
version_number | string | Version string |
GET /CustomIntegration/{id}
Get a single outbound integration by ID.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Integration ID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full configuration details |
includemethods | boolean | Include defined API methods |
module_id | integer | Filter methods by module |
DELETE /CustomIntegration/{id}
Delete an outbound integration.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Integration ID |
OutboundIntegrationMethod (Custom Integration Methods)
Individual API methods (endpoints) within an outbound integration configuration.
GET /CustomIntegrationMethod
List outbound integration methods.
Query Parameters:
| Name | Type | Description |
|---|---|---|
integration_id | integer | Filter by parent integration ID |
count | integer | Number of records to return |
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 |
POST /CustomIntegrationMethod
Create or update integration methods.
Request Body: Array of OutboundIntegrationMethod objects
Key OutboundIntegrationMethod fields:
| Property | Type | Description |
|---|---|---|
id | integer | Method ID |
guid | string (uuid) | Method GUID |
integration_id | integer | Parent integration ID |
name | string | Method name |
full_name | string | Fully qualified method name |
resource | string | Resource name |
path | string | API path |
method | integer | HTTP method (GET/POST/PUT/DELETE/etc.) |
authorizationtype | integer | Auth override type |
requesttype | integer | Request body content type |
responsetype | integer | Expected response content type |
requestbody | string | Request body template |
uri_params | array[OutboundIntegrationMethodValue] | URI/query parameter mappings |
headers | array[OutboundIntegrationMethodValue] | Header mappings |
body_mappings | array[OutboundIntegrationMethodValue] | Request body field mappings |
output_variables | array[OutboundIntegrationMethodValue] | Output variable mappings from response |
log_retention_policy_days | integer | Log retention in days |
encrypt_response_body | boolean | Encrypt stored response |
response_is_file | boolean | Whether response is a file download |
access_control_level | integer | Access control level |
GET /CustomIntegrationMethod/{id}
Get a single integration method by ID.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Method ID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full method details |
DELETE /CustomIntegrationMethod/{id}
Delete an integration method.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Method ID |
OutboundIntegrationMethodValue
Values/mappings within integration methods.
GET /CustomIntegrationMethodValue
List integration method values.
OutboundIntegrationRepository (Custom Integration Repository)
Read-only view of shared/library integration configurations.
GET /CustomIntegrationRepository
List integration repository entries.
GET /CustomIntegrationRepository/{id}
Get a single integration from the repository.
Path Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
id | integer (int32) | Yes | Integration ID |
Query Parameters:
| Name | Type | Description |
|---|---|---|
includedetails | boolean | Include full configuration details |
includemethods | boolean | Include defined API methods |
module_id | integer | Filter methods by module |