# Monitor webhook payloads

Receive findings, summaries and attention notices. A notification is bounded; use the saved result for complete evidence and run history.

## Choose destination and cadence

Register a JSON webhook, then choose it on the monitor. Immediate destinations apply minimum severity; daily or weekly destinations receive summaries. Account-wide digests and older subscription-based delivery also exist. Explicit monitor destinations and account-wide event subscriptions are different selection rules.

Use monitors/test-delivery or the dashboard sample alert. Sample events are marked and must not count as real findings. All JSON events use the shared signature and durable-acknowledgment contract.

- [Receiver example](https://www.monocrawl.com/docs/webhook-receiver)

- [Monitor setup](https://www.monocrawl.com/docs/monitors)

## monitor.findings: bounded result previews

| Field under data | Meaning |
| --- | --- |
| monitor_id / run_id | Owned monitor and run identifiers; run_id is a string. |
| name / title / purpose / subject | Display context. Subject query/name is not verified identity. |
| new_findings | Count for this notification group; the embedded preview can be shorter. |
| accounts / people / by_source | Platform-scoped account counts, not deduplicated people across platforms. |
| findings | Up to five previews: id, key, source, label, url, title, text, author, posted_at, relationship, matched, why and severity when available. Text is truncated. |
| url / summary | Saved evidence link and readable delivery body. |
| report / text | Optional report representation; not produced by every monitor. |
| event_type / result | Scheduled-result variants can use event_type:monitor.result and include result. Inspect the variant before assuming finding rows. |

Relevance-filtered delivery can send one confirmed finding at a time. The same finding can appear in a summary. Deduplicate transports by envelope id and correlate finding IDs separately. Previews are not a census.

**JSON · illustrative abbreviated finding**

```
{
  "id": "whd_example_finding",
  "type": "monitor.findings",
  "created_at": "2026-09-22T10:00:00.000Z",
  "data": {
    "monitor_id": "mon_example",
    "run_id": "42",
    "new_findings": 1,
    "findings": [
      {
        "id": "finding_example",
        "source": "reddit",
        "title": "Example discussion",
        "text": "Abbreviated source passage.",
        "url": "https://www.reddit.com/r/example/comments/example",
        "severity": "info"
      }
    ],
    "url": "https://www.monocrawl.com/dashboard/monitors/mon_example",
    "summary": "One matching discussion."
  }
}
```

## monitor.digest: two summary shapes

| Variant | Fields under data |
| --- | --- |
| Per-monitor summary | monitor_id, name, title, period, headline, counts, totals, lines, findings, sections, url, text and destination. |
| Account-wide digest | digest_id, period, totals, headline, sections and report_id. Sections contain monitor_id, name, findings count, severity and bounded threads previews (story_id, title, severity, count). |
| Shared delivery field | summary contains the readable delivery body. |

Per-monitor summaries are transported as monitor.digest. Branch on supplied fields, not one assumed payload shape. Account and per-monitor summaries can overlap.

**JSON · illustrative abbreviated account digest**

```
{
  "id": "whd_example_digest",
  "type": "monitor.digest",
  "created_at": "2026-09-22T08:00:00.000Z",
  "data": {
    "digest_id": "digest_example",
    "headline": "Two monitors have updates.",
    "sections": [
      {
        "monitor_id": "mon_example",
        "name": "Example monitor",
        "findings": 3,
        "severity": "info",
        "threads": []
      }
    ],
    "report_id": null,
    "summary": "Two monitors have updates."
  }
}
```

The example omits period and totals for brevity. Preserve the actual window and counts; a summary is not a second collection of new source observations.

## monitor.attention: action needed

| Cause | Fields under data |
| --- | --- |
| Repeated failed checks | monitor_id, run_id, consecutive_failures. Inspect current status before resuming. |
| Ambiguous subject | monitor_id, run_id, candidates. Candidates include id, label and count. Review the choice in the monitor UI. |
| Delivery body | summary explains the issue. Additional cause-specific fields may appear. |

**JSON · illustrative attention notice**

```
{
  "id": "whd_example_attention",
  "type": "monitor.attention",
  "created_at": "2026-09-22T10:00:00.000Z",
  "data": {
    "monitor_id": "mon_example",
    "run_id": "43",
    "consecutive_failures": 3,
    "summary": "Monitor paused after repeated failed checks."
  }
}
```

The example failure count is illustrative, not a global pause threshold. This notice does not establish a newly matched finding. Inspect health and run history.

## Recover delivery separately from collection

Successful collection can have failed notification. Review the destination receipt and fix delivery before recreating a monitor or repeating paid collection. A successful check can cost credits with no matches. A webhook timeout does not prove the run or saved findings disappeared.

- [Monitor health](https://www.monocrawl.com/docs/endpoints/monitors/health)

- [Saved findings](https://www.monocrawl.com/docs/endpoints/monitors/findings)

- [Run history](https://www.monocrawl.com/docs/endpoints/monitors/runs)

- [Retries and deduplication](https://www.monocrawl.com/docs/webhook-receiver#recovery)
