---
title: "Mention events"
description: "The request an instant rule sends for each new mention, field by field."
canonical: https://docs.rumoro.dev/webhooks/mention-events
markdown: https://docs.rumoro.dev/webhooks/mention-events.mdx
---

# Mention events

The request an instant rule sends for each new mention, field by field.

An `instant` rule sends one request per mention that passes its filter, once it is scored. `data` is the mention as `GET /v1/mentions/{id}` returns it ([reference](/api/mentions/get-mention)).

```json
{
  "id": "dlv_0cf858bebb77495dbf6eec7e063517cc",
  "event": "mention.matched",
  "createdAt": "2026-10-02T11:01:48.751Z",
  "alert": { "id": "feed_68f8c27f90a04454af662c2866f6f49d", "name": "compare instant" },
  "data": {
    "id": "mm_a1951e9f623c410599a710f5cd55f28b",
    "status": "open",
    "relevant": true,
    "delivered": false,
    "priority": 60,
    "keyword": {
      "id": "kw_8de5ae0ca00a4ab1a5ed297db85275fa",
      "term": "n8n",
      "group": { "id": "grp_b4a976f98c3946d7bb83554caec56bc2", "name": "Default", "externalId": null, "isDefault": true }
    },
    "post": {
      "platform": "bluesky",
      "url": "https://bsky.app/profile/flowify.bsky.social/post/3mwv7rsiw6g2g",
      "text": "OpenAI vient de lancer Dots, à 200 $ par mois, soit trois fois le prix du plan standard. …",
      "title": null,
      "imageUrl": null,
      "links": [],
      "engagement": null,
      "publishedAt": "2026-10-02T11:00:49.000Z",
      "replyTo": null
    },
    "review": null,
    "author": {
      "id": "aut_dee30396a6ca409fb0fec8bb633ecb12",
      "name": "flowify.bsky.social",
      "handle": "@flowify.bsky.social",
      "url": "https://bsky.app/profile/flowify.bsky.social",
      "avatarUrl": "https://cdn.bsky.app/img/avatar/plain/did:plc:l4evdzsnuhihppfkm4wzcjl6/…",
      "followers": 5,
      "tags": []
    },
    "classification": {
      "relevance": 72,
      "sentiment": "neutral",
      "intents": ["buy_intent"],
      "automated": false,
      "language": "fr",
      "confidence": 0.809,
      "uncertain": false,
      "note": "The post mentions n8n as a solution to automate workflows and avoid manual copy-pasting, indicating its use in a business context.",
      "failed": false,
      "feedback": null
    },
    "triage": { "assignee": null, "snoozedUntil": null, "note": null },
    "createdAt": "2026-10-02T11:01:45.772Z"
  }
}
```

`post.engagement` holds the counts at the time Rumoro found the post. `review` is set for reviews only.

## What to expect

- **Relevant by default.** Without `minRelevance`, a rule sends mentions scored 40 or more. Lower it (`0` sends all) to get noise too, with `data.relevant: false`. Email keeps the 40 minimum.
- **Always scored.** `data.classification` is never `null` here.
- **No look-back.** A new keyword's older posts go to the feed and digests only.
- **Your triage counts.** A mention you mark done, ignored or not relevant first isn't sent.
- **`data.delivered`** reflects when the request was built, so it's usually `false`.
- **`data.id`** is the mention id, for `PATCH /v1/mentions/{id}` with `done` or `assigneeId`.
- **One request per keyword.** A post matching two keywords comes twice, each with its own `data.id` and `data.keyword`.

## Routing on the payload

| To route by | Use |
| --- | --- |
| Rule | `event`, `alert.id` |
| Keyword | `data.keyword.term`, `data.keyword.id`, `data.keyword.group` |
| Platform | `data.post.platform` |
| Sentiment, intent, relevance | `data.classification.sentiment`, `.intents`, `.relevance` |
| Author | `data.author.followers`, `data.author.tags` |
| Urgency | `data.priority`, the feed's priority score |

See [Webhooks](/webhooks) for retries and signatures.
