Skip to main content

Webhooks

A webhook is a content resource, prefixed WHK_, that sends an outbound HTTP request when a platform event fires, with its URL, headers, and body rendered from LiquidJS templates against the event payload.

Each webhook binds to one event name (CaseCreated, ThreatReportCreated, and the rest listed below), and sends the request with the configured HTTP method. A {{ credential.<name> }} reference in any template resolves against a stored credential, so secrets never sit in the template text. Webhooks route cases, threat reports, and usage alerts to external systems such as Slack, Jira, and PagerDuty.

Trigger events​

eventName takes one of the following values. Each event delivers a payload whose top-level key names the object below, plus a type field equal to the event name. Templates read the payload directly, so a ThreatReportCreated body references {{ threatReport.name }}.

EventPayload keyFires when
CaseCreatedcaseA case is opened.
CaseClosedcaseA case is closed.
CaseInitialAnalysisCompletedcaseThe agent finishes initial analysis on a case.
ContentWorkItemCreatedcontentWorkItemA content work item is created.
ThreatReportCreatedthreatReportA threat report is created.
CircuitBreakerTrippedcircuitBreakerA platform circuit breaker trips.
SimbaUsageAlertalertAgent usage crosses a configured quota threshold.

Templating​

The url, headers values, and body are LiquidJS templates. Two kinds of reference resolve at send time.

ReferenceResolves to
{{ <field> }}A field of the event payload, e.g. {{ case.name }} or {{ type }}. Any Liquid filter applies, so {{ case.summary | json }} escapes a value for a JSON body.
{{ credential.<name> }}A stored credential by name. Use bracket notation ({{ credential["my-key"] }}) when the name is not a valid identifier. Text and OAuth2 credentials substitute their value string. For an AwsRole or HmacSignature credential, Perpetual computes a signed request header over the final request.

Inputs​

FieldTypeRequiredDescription
namestringRequiredWebhook name.
eventNameenumRequiredThe platform event that fires this webhook. See Trigger events for the values and their payloads.
urlstringRequiredThe request URL, a Liquid template. Renders against the event payload and any credential.* references.
methodenumRequiredHTTP method for the request: GET, POST, PUT, PATCH, DELETE.
headersobjectRequiredRequest headers as a string-to-string map. Each value is a Liquid template. An empty object sends no headers.
bodystringOptionalThe request body, a Liquid template. Absent sends no body.
folderPathstringOptionalFolder location within the Space, e.g. Webhooks/Slack.

Outputs​

A webhook returns no fields of its own.

Plus the common resource fields.