Webhooks API
POST/api/v1/webhooks/templates
Product availabilityAlgaPSA

Create webhook template

Creates a reusable webhook template. Requires system_settings RBAC.

RBAC · webhook

Request body

Content type: application/json · schema WebhookTemplateBodyV1

namestringRequired
descriptionstring
categorystringRequired
default_configobjectRequired
required_fieldsarray of string
itemsstring
supported_eventsarray of WebhookEventTypeV1
itemsstring
Public webhook event name from the single event registry (ticket.*, project.*, client.*, contact.*, client_location.*). Webhooks created earlier may still store retired names (time.entry.*, invoice.*, asset.*, system.*, workflow.*, custom.event); those are returned as stored, never deliver, and are rejected when newly added.
Enum: ticket.createdticket.updatedticket.assignedticket.status_changedticket.closedticket.comment.addedticket.response_state_changedproject.createdproject.updatedproject.status_changedproject.assignedproject.closedproject.completedproject.task.createdproject.task.updatedproject.task.status_changedproject.task.assignedproject.task.completedclient.createdclient.updatedclient.deactivatedclient.deletedcontact.createdcontact.updatedcontact.deactivatedcontact.deletedclient_location.createdclient_location.updatedclient_location.deactivatedclient_location.deleted
is_system_templateboolean

Response body

Success response 201 · schema WebhookTemplateEnvelopeV1

dataobjectRequired
template_idstring <uuid>Required
namestringRequired
descriptionstring
categorystringRequired
default_configobjectRequired
url_templatestring
methodstringRequired
Enum: GETPOSTPUTPATCHDELETE
headersobject
payload_templatestringRequired
security_typestring
Enum: nonebasic_authbearer_tokenapi_keyhmac_signatureoauth2
required_fieldsarray of string
itemsstring
supported_eventsarray of WebhookEventTypeV1
itemsstring
Public webhook event name from the single event registry (ticket.*, project.*, client.*, contact.*, client_location.*). Webhooks created earlier may still store retired names (time.entry.*, invoice.*, asset.*, system.*, workflow.*, custom.event); those are returned as stored, never deliver, and are rejected when newly added.
Enum: ticket.createdticket.updatedticket.assignedticket.status_changedticket.closedticket.comment.addedticket.response_state_changedproject.createdproject.updatedproject.status_changedproject.assignedproject.closedproject.completedproject.task.createdproject.task.updatedproject.task.status_changedproject.task.assignedproject.task.completedclient.createdclient.updatedclient.deactivatedclient.deletedcontact.createdcontact.updatedcontact.deactivatedcontact.deletedclient_location.createdclient_location.updatedclient_location.deactivatedclient_location.deleted
is_system_templateboolean
created_atstring <date-time>Required
updated_atstring <date-time>Required
tenantstring <uuid>Nullable
metaobject

Response codes

201
Template created.
400
Invalid request payload, query, or webhook id format.
401
API key missing/invalid or key user missing.
403
Webhook RBAC permission denied.
500
Unexpected webhook operation failure.