Skip to main content
When an Action fires the Custom Webhook automation, Protect issues an outbound HTTP request to the URL you configured. This page is the canonical reference for what that request looks like. For symptom-driven debugging (webhook timeouts, 4xx / 5xx responses) see Troubleshooting → Action Center. For the configuration UI itself see Automation.

Request shape

The destination URL is supplied per-Action when you choose the Custom Webhook automation type. The configurator surfaces:
  • Method dropdown — POST, PUT, PATCH
  • Request URL field
  • Request Headers table (Key / Value rows)
  • Query Params table (Key / Value rows)
  • Body table (Key / Value rows)
  • Test Webhook section — fires a test request using one of three data sources: Demo Data, Sample Data, All Data

Body shape

The default body is a JSON object with the following top-level keys:
The newDevices[].* field set is what you configure under the Body table on the Action, not a fixed shape. Adding rows to the Body table extends each device object with additional fields (e.g. Os, LastUser.Email). Demo Data uses a fixed sample of device names; Sample Data uses the first matching devices from the saved view; All Data sends every matching device in a single request.

Body template interpolation

The Body table is a Key / Value mapping. The Value column supports literal strings, and for fields surfaced by the Action editor’s field picker (the small dropdown next to each Value cell), Protect interpolates the matching device field at fire time. Common interpolation fields used in Body values:

Headers

Default headers sent on every webhook: Custom headers configured on the Action are sent in addition to the defaults. Typical custom headers include:
  • Authorization: Bearer <token> for destination-side authentication
  • X-API-Key: <key> for systems that use a custom auth header
  • X-Source: protect or similar for downstream routing
Protect does not add a signature header (such as an HMAC X-ThreatAware-Signature) to outbound webhooks. To authenticate the source on your receiver, add an Authorization or X-API-Key header to the Action’s Request Headers table.

Retry behaviour

When a destination returns a non-2xx response or times out:
  • Failure is logged in the Action’s Automation Log with the response status (or timeout)
  • Retries are attempted automatically for transient failures (5xx, network errors)
  • 4xx responses are typically treated as terminal — the destination rejected the payload and retrying won’t help
The current state and history of every webhook execution is visible in the Automation Log on the Action Center page. Filter by Action to surface persistent issues.

Webhook destinations

Protect’s Action Center exposes the following automation types from the Create Action modal: This page documents the Custom Webhook wire format. The other channels (Trigger Workflow, Create Ticket, Send Notification, Send Email) use destination-specific transports.

Testing your endpoint

1

Open the Custom Webhook configurator

Action Center → Create Action → choose Custom Webhook under Automations.
2

Point at a request bin

Use a free request inspector (e.g. webhook.site, requestbin.com) to capture the exact headers and body Protect sends.
3

Use the Test Webhook section

Pick a Type (Demo Data / Sample Data / All Data) and click Send Test Request — this fires without saving the Action.
4

Watch the Automation Log

The Automation Log on the Action Center page records the response code and any retries for live (non-test) firings.

Security considerations

Protect doesn’t sign webhook requests and doesn’t restrict where they go. Configure your destination to require an Authorization header (set as a custom Request Header on the Action) and reject unauthenticated requests.
For destinations behind a firewall, allowlist the ThreatAware egress IP range — request the current list from your account team.
Payloads include the device hostname, user email, public IP, and any custom fields you’ve added. Log accordingly — don’t write to public storage.
Auth tokens embedded in custom headers are stored as part of the Action configuration. Rotate them on a normal cadence and re-save the Action when you do.

Cross-references

Action Center

The conceptual home of webhook automations

Continuous Actions

Always-on Actions

Snapshot Actions

Time-bound Actions

Error Codes

Action error states

Troubleshooting

Webhook failure debugging

API Reference

Inbound API counterpart