Webhooks
When a scan completes, the platform POSTs a JSON snapshot — including the generated PDFs — to the brand’s webhook_url.
Configuration
Section titled “Configuration”Set webhook_url on the brand profile (Brand Profile). The dashboard alerts when it’s missing.
Delivery
Section titled “Delivery”WebhookDeliveryJob performs the POST using WebhookDeliverer:
- Method:
POST - Headers:
Content-Type: application/json,User-Agent: BrandProtect/1.0 - Body: the scan snapshot (below)
- Size cap: 100 MB
Payload
Section titled “Payload”{ "event": "scan_completed", "scan_run": { "...": "scan attributes" }, "findings": [ "..." ], "social_findings": [ "..." ], "audit_events": [ "..." ], "reports": { "full": "<base64 pdf>", "summary": "<base64 pdf>" }}| Field | Contents |
|---|---|
event |
scan_completed (the only event today) |
scan_run |
The completed scan’s attributes |
findings |
Domain findings |
social_findings |
Social findings |
audit_events |
Relevant audit events |
reports |
Full + executive-summary PDFs (base64) |
Failure handling
Section titled “Failure handling”Delivery is best-effort: the job never raises on a failed POST — it logs and records a webhook_sent audit event. There is no retry queue; the webhook is a notification, not a durable queue.