Skip to main content
Preview how often an alert would fire before creating it. Read-only — it creates nothing. The tool sweeps the past N days (default 7, max 30) for the given entities and returns the total match count, a per-day breakdown, and a small sample of the most recent matches with episode context. Use it to size an alert (pick REALTIME vs DAILY vs WEEKLY cadence based on how chatty the entity is) or to confirm the entity slugs watch the right thing, then call particle_alert_create with the same entities. Entities are passed as slugs from the resolve tools — particle_entity_resolve, particle_person_resolve, particle_company_resolve — the same input as particle_alert_create.entities.
The preview runs asynchronously; the tool polls for the result for a few seconds. If the sweep hasn’t finished, it returns an in-progress status — call the tool again with the same arguments to read the completed result (the same preview is served from cache, so it is cheap to retry).

Inputs

FieldTypeRequiredDefaultDescription
entitiesarray of stringsyesEntity slugs to preview (from the resolve tools), same as particle_alert_create.entities.
kindenumnoENTITY_MENTIONSignal to preview: ENTITY_MENTION or PODCAST_SPEAKER.
window_daysinteger (1–30)no7How many days back to sweep.

Output

A markdown ## Alert preview document with **Window:** (past N days) and **Total matches:** KV rows, a ### By day section listing each date and its count, and a ### Sample (N most recent) section showing the most recent matches with episode context. When there are no matches in the window, a closing line notes the alert would not have caught anything. If the sweep is still running, the output is an in-progress line telling you to call again with the same arguments; on failure, a line suggesting you retry or narrow the entity list. Sample (entities=["sam-altman"], window_days=7):
## Alert preview

**Window:** past 7 days
**Total matches:** 5

### By day

- **2026-06-12:** 1
- **2026-06-14:** 2
- **2026-06-15:** 2

### Sample (3 most recent)

- The AI Daily (Acme Network) — 3 mentions
  - **Episode:** the-ai-daily-2026-06-15
Passing output_format: "json" returns status, window_days, total_matches, by_day, and sample as compact JSON.

Example

User: How noisy would an alert on Sam Altman be?

Agent calls: particle_person_resolve { "query": "Sam Altman" }
            → reads "- **Slug:**" row → "sam-altman"

Agent calls: particle_alert_preview { "entities": ["sam-altman"], "window_days": 14 }
            → 5 matches over 7 days → suggest DAILY cadence

Agent calls: particle_alert_create {
  "title": "Sam Altman mentions",
  "entities": ["sam-altman"],
  "delivery_cadence": "DAILY"
}