Skip to main content
When a Security Delivery Agent finishes investigating an incident, ContraForce can send a signed webhook to an endpoint you control. Use it to escalate true-positive incidents into your SIEM, ticketing, or on-call tooling at the moment the agent reaches a verdict.
This event is configured per classification on an Agent Configuration card, not as a broadcast subscription. It is delivered only to the webhook a classification card points to. Set it up under Configuring Security Delivery Agents by enabling Advanced mode and choosing a webhook as the custom action for a classification.

When It Fires

The event fires once per investigation, when the agent completes and reaches a classification, for any classification whose policy has a webhook custom action configured. The event type (schema) is:

Request Headers

Every delivery includes these headers. Use them to verify authenticity before trusting the body.
Retries reuse the same X-CF-Event-Id. Treat delivery as at-least-once and make your handler idempotent.

Verifying the Signature

The signature covers the timestamp and the exact raw request body:
The signing_key is the secret shown once when the webhook was created, unless you supplied your own signing token override when setting bearer-token credentials, in which case it is that token.
1

Read the raw body

Compute the signature over the unparsed request body bytes, before any JSON deserialization.
2

Recompute

Concatenate the X-CF-Timestamp value, a literal ., and the raw body. HMAC-SHA256 it with your signing key and Base64-encode the result.
3

Compare in constant time

Compare your value to X-CF-Signature using a constant-time comparison. Reject on mismatch.
4

Check the timestamp

Reject the request if X-CF-Timestamp is more than 5 minutes from current time, to limit replay.

Payload

The body is JSON with camelCase fields:

Fields

Branch on verdict.classificationBucket. It is a stable, vendor-neutral value, so your integration does not need to handle source-specific classification strings.

Testing

Use the Send test action on the webhook in Developers to deliver a synthetic event. Test deliveries carry X-CF-Test: true and use sample data. They are signed identically to live events, so you can validate your verification code end to end.

Troubleshooting

Questions about the agent investigation webhook? Contact us at support@contraforce.com.