<!-- BusyBot node reference — https://busybot.net/tools/rss-feed-trigger/ -->

> Node: RSS Feed Trigger (`rss_feed_trigger`) · Polling trigger · v1
> Category: Utility · Credentials: none
> Updated: 2026-08-16

# RSS Feed Trigger

> Trigger workflows on new RSS/Atom feed items

## Overview

The RSS Feed Trigger node polls an RSS or Atom feed URL at a configurable interval. On each poll it fetches the feed, parses the XML into structured JSON items, and compares each item's publication date against the last known item date stored in persistent state. Only items published after the previously seen newest item are returned, triggering workflow execution. On the very first poll the node establishes a baseline by recording the newest item date and returning no items, preventing a flood of historical data. Supports RSS 2.0, RSS 1.0 (RDF), and Atom feed formats. No authentication is required since RSS feeds are publicly accessible.

**Category:** Utility  
**Tool Name:** `rss_feed_trigger`  
**Version:** 1

**Appearance:** Icon: `lucide-Rss` | Color: `#ff6600`

## Node Type

**Trigger** — polling (checks for new data on a schedule)

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | None (trigger node) |
| Output | `Output` |

## Credentials

This tool does not require any credentials.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Feed URL | `string` | Yes | — | URL of the RSS or Atom feed to poll for new items. |
| Options | `collection` | No | `{}` | Additional parsing and connection options. |
| — Custom Fields | `string` | No | — | A comma-separated list of custom XML element names to extract from each feed item. For example: "author, contentSnippet, customTag". |
| — Ignore SSL Issues (Insecure) | `boolean` | No | `false` | Whether to ignore SSL/TLS certificate validation errors. Enable for feeds served with self-signed certificates. |
| Poll Interval | `number` | No | `5` | How often to check the feed for new items. |
| Poll Interval Unit | `options` | No | `minutes` | Unit for the poll interval. |
| | | | | Options: `seconds`, `minutes`, `hours` |

## Output Data

Each newly published feed item becomes one output item:

```json
{
  "title": "Release 4.2 is out",
  "link": "https://example.com/blog/release-4-2",
  "pubDate": "Fri, 15 Aug 2026 08:55:00 GMT",
  "isoDate": "2026-08-15T08:55:00.000Z",
  "creator": "Jane Doe",
  "content": "<p>Release 4.2 adds …</p>",
  "contentSnippet": "Release 4.2 adds …",
  "summary": "",
  "guid": "https://example.com/blog/release-4-2",
  "categories": ["product"],
  "enclosure": null,
  "_trigger": "rss_feed_polling",
  "_timestamp": "2026-08-15T09:00:00.000Z"
}
```

- `isoDate` — the publication date normalised to ISO 8601. This is the field the trigger compares against; items without a date are never returned.
- `content` / `contentSnippet` — the full item body and its plain-text extract.
- `enclosure` — the attached media descriptor for podcast-style feeds, otherwise `null`.
- Any element named in **Custom Fields**, plus any other element the feed carries, is copied onto the item under its own name.
- `_trigger` — always `rss_feed_polling`.
- `_timestamp` — when the poll that produced the item ran.

Reference feed data downstream by expression, e.g. `{{ $json.title }}`.

## Usage Examples

- Start a workflow when a blog publishes a new post
- Monitor a news RSS feed for new articles
- Trigger automation when a podcast releases a new episode
- Watch a changelog feed for new software releases

## Example Configuration

Watch a public feed every 15 minutes:

```json
{
  "type": "rss_feed_trigger",
  "parameters": {
    "feedUrl": "https://example.com/feed.rss",
    "pollInterval": 15,
    "pollIntervalUnit": "minutes"
  }
}
```

Pull extra elements out of each item:

```json
{
  "type": "rss_feed_trigger",
  "parameters": {
    "feedUrl": "https://blog.example.com/feed.xml",
    "pollInterval": 1,
    "pollIntervalUnit": "hours",
    "options": {
      "customFields": "author, tags, excerpt",
      "ignoreSSL": false
    }
  }
}
```

Read an internal feed served with a self-signed certificate:

```json
{
  "type": "rss_feed_trigger",
  "parameters": {
    "feedUrl": "https://intranet.example.com/announcements.rss",
    "pollInterval": 6,
    "pollIntervalUnit": "hours",
    "options": {
      "customFields": "department, priority",
      "ignoreSSL": true
    }
  }
}
```

### Trigger Behavior

- **Activation:** Polling starts when the workflow is activated. There is no poll at the moment of activation — the first check runs one full interval later.
- **Schedule:** The trigger polls for new data based on the configured polling interval.
- **State:** Maintains internal state (the publication date of the newest item seen) so each poll returns only items published since then.
- **First Run:** The first poll records the newest item currently in the feed and returns no items, so activating the workflow never replays the feed's history.
- **Testing:** Running the node from the editor emits a single sample feed item so you can build the rest of the workflow; real items arrive only while the workflow is activated.

## Tips

Enter the URL of any RSS or Atom feed. The trigger will poll the feed at the configured interval and return new items published since the last check. On first activation, it establishes a baseline and will only trigger on items published afterward.

### Notes

- Items with no publication date cannot be compared against the baseline and are skipped.
- Enable **Ignore SSL Issues (Insecure)** only for feeds you control — it disables certificate verification for the request.