> ## Documentation Index
> Fetch the complete documentation index at: https://agentheya.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# feed_monitors

> Recurring RSS and X (Twitter) watchers. Each monitor polls a source and can react to new items (off / all / classified), optionally delivering results to…

# `feed_monitors` — Feed monitors

Recurring RSS and X (Twitter) watchers. Each monitor polls a source and can react to new items (off / all / classified), optionally delivering results to email or the inbox.

**Section key** `feed_monitors` · **Shape** array · **Tier** All plans\
**Edit in the dashboard:** [Feeds page](/sidebar-menu/feeds)\
**Related:** [Schedules](/sidebar-menu/schedules)

> List of feed monitor objects.

## Fields (per item)

| Field                         | Required | Type            | Allowed values / constraints      | Default | Description                                                                                                                                                                                                                                                          |
| ----------------------------- | -------- | --------------- | --------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                          | **yes**  | string          | —                                 | —       | Stable id for this monitor (10+ char random). Used as the dedup/cursor key and to match the feed\_monitor DB row.                                                                                                                                                    |
| `enabled`                     | no       | boolean         | —                                 | —       | Whether the poller should fire this monitor.                                                                                                                                                                                                                         |
| `kind`                        | **yes**  | enum            | one of `rss`, `twitter`           | —       | Source type: 'rss' (feed\_url) or 'twitter' (handle).                                                                                                                                                                                                                |
| `feed_url`                    | no       | string          | —                                 | —       | For kind='rss': the full http(s) URL of the RSS/Atom feed.                                                                                                                                                                                                           |
| `handle`                      | no       | string          | —                                 | —       | For kind='twitter': the username to watch (with or without a leading '@').                                                                                                                                                                                           |
| `query`                       | no       | string          | —                                 | —       | For kind='twitter': optional keyword/phrase to further filter the user's tweets.                                                                                                                                                                                     |
| `poll_interval_minutes`       | no       | integer         | —                                 | —       | How often to poll, in minutes. Clamped to the platform-configured minimum.                                                                                                                                                                                           |
| `react_mode`                  | no       | enum            | one of `off`, `all`, `classified` | —       | How to react to new items. 'off' = log only; 'all' = run the agent on every new item; 'classified' = run an LLM classifier first and react only when it returns action='react'.                                                                                      |
| `classifier_prompt`           | no       | string          | —                                 | —       | For react\_mode='classified': owner guidance describing which items are relevant enough to react to.                                                                                                                                                                 |
| `classifier_action_allowlist` | no       | array of string | —                                 | —       | For react\_mode='classified': restrict the actions the classifier may pick. Subset of \["react", "drop"].                                                                                                                                                            |
| `react_instructions`          | no       | string          | —                                 | —       | The task the agent runs when it reacts to a new item. The item's title/author/link/content are appended automatically.                                                                                                                                               |
| `delivery`                    | no       | object          | —                                 | —       | Where the agent's reaction output goes. 'inbox' is implicit (the reaction always mirrors into the owner Inbox); 'email' also sends the output to a target address. Item fields below.                                                                                |
| `label`                       | no       | string          | —                                 | —       | Optional human-readable label for the dashboard.                                                                                                                                                                                                                     |
| `preProcessor`                | no       | object          | —                                 | —       | Code-first pre-processor: owner JS/Python that runs per new item BEFORE the LLM classifier and returns a verdict. A 'drop' or 'store' here skips the classifier; 'pass\_to\_agent' falls through to react\_mode. See \$lib/server/event-pipeline. Item fields below. |
| `interpreters`                | no       | array of object | —                                 | —       | Payload interpreters: each is tested in order against a new item and the first match injects its hint into the agent's context. Part of the unified incoming-event pipeline. See \$lib/shared/event-pipeline. Item fields below.                                     |
| `notes`                       | no       | string          | —                                 | —       | Private operator notes about this monitor. Never sent to the model.                                                                                                                                                                                                  |
| `collapsed`                   | no       | boolean         | —                                 | —       | UI hint — start this entry collapsed in the dashboard editor.                                                                                                                                                                                                        |

### `delivery` fields

Where the agent's reaction output goes. 'inbox' is implicit (the reaction always mirrors into the owner Inbox); 'email' also sends the output to a target address.

| Field    | Required | Type   | Allowed values / constraints    | Default | Description                                                                                                                                                                         |
| -------- | -------- | ------ | ------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `kind`   | no       | enum   | one of `none`, `email`, `inbox` | —       | Controls delivery of the agent's reaction output. 'none' disables delivery; 'email' sends output to the target address; 'inbox' (default) mirrors reactions into the owner's Inbox. |
| `target` | no       | string | —                               | —       | Email address when kind='email'.                                                                                                                                                    |

### `preProcessor` fields

Code-first pre-processor: owner JS/Python that runs per new item BEFORE the LLM classifier and returns a verdict. A 'drop' or 'store' here skips the classifier; 'pass\_to\_agent' falls through to react\_mode. See \$lib/server/event-pipeline.

| Field      | Required | Type    | Allowed values / constraints  | Default | Description                                                        |
| ---------- | -------- | ------- | ----------------------------- | ------- | ------------------------------------------------------------------ |
| `enabled`  | no       | boolean | —                             | —       | Whether the pre-processor runs.                                    |
| `language` | no       | enum    | one of `python`, `javascript` | —       | Code language for the handle(event, ctx) function.                 |
| `code`     | no       | string  | —                             | —       | Source defining handle(event, ctx) which returns a verdict object. |

### `interpreters` items

Payload interpreters: each is tested in order against a new item and the first match injects its hint into the agent's context. Part of the unified incoming-event pipeline. See \$lib/shared/event-pipeline.

| Field             | Required | Type   | Allowed values / constraints  | Default | Description                                                                                  |
| ----------------- | -------- | ------ | ----------------------------- | ------- | -------------------------------------------------------------------------------------------- |
| `name`            | no       | string | —                             | —       | Human-readable label for this interpreter.                                                   |
| `matchType`       | no       | enum   | one of `json_fields`, `regex` | —       | How this interpreter matches: presence of JSON dot-paths, or a regex over the raw item text. |
| `matchFields`     | no       | string | —                             | —       | For matchType='json\_fields': newline/comma-separated dot-paths that must all be present.    |
| `matchRegex`      | no       | string | —                             | —       | For matchType='regex': pattern tested against the serialized item.                           |
| `matchRegexFlags` | no       | string | —                             | —       | Optional regex flags, e.g. 'i'.                                                              |
| `hint`            | no       | string | —                             | —       | Instruction prepended to the agent's context when this interpreter matches.                  |
