Alerts & webhooks
Fact0 can push two types of notifications:| Channel | Events |
|---|---|
| Webhook | Chain verification failure, async ingest failure |
| Quota threshold (80% and 100%), evidence report ready |
Webhook alerts
Setup
- Go to Settings → Alerts in the dashboard.
- Paste your endpoint URL in the Webhook URL field. Fact0 will POST JSON to this URL.
- Optionally enter an Alert email for quota and report notifications.
- Click Save, then Test to verify Fact0 can reach your endpoint.
2xx status within 10 seconds. Fact0 makes a single attempt — there is no retry queue.
Payload
All webhook deliveries share this shape:| Field | Type | Description |
|---|---|---|
event | string | Event type (see below) |
tenant_id | string | Your workspace identifier |
valid | bool | false for all webhook events (they only fire on failure) |
broken_count | int | Number of broken links detected (chain events only) |
reason | string | Human-readable failure description |
Event types
| Event | Trigger |
|---|---|
fact0.chain.verify_failed | A chain verification run found one or more hash mismatches |
fact0.ingest.receipt_failed | An async ingest receipt exhausted all retries without completing |
Email alerts
Email notifications go to the Alert email address you configure in Settings → Alerts.| Alert | Trigger |
|---|---|
| Quota at 80% | Your workspace has consumed 80% of its monthly event quota |
| Quota at 100% | Monthly quota fully consumed — further ingest will be rejected |
| Evidence report ready | A PDF or evidence pack export has finished and is ready to download |
| Chain break | Same trigger as the webhook, sent as an email in parallel |
Testing your webhook
Click Test in Settings → Alerts to send a samplefact0.chain.verify_failed payload to your configured URL. Fact0 logs whether your endpoint responded successfully.
You can also trigger a test with the API: