RSS Trigger
Trigger a workflow run automatically whenever a new item is published to an RSS or Atom feed.
The RSS Trigger is a polling-based trigger that watches an RSS or Atom feed and fires your workflow whenever new content is published. It's a good fit for monitoring blogs, news sites, podcasts, changelogs, or any other source that publishes a feed.
graph TD
A[RSS / Atom Feed] -->|New item published| B[Mandala Poller]
B -->|Every 1 min| C[Trigger Workflow Run][!NOTE] Mandala checks your feed periodically (every minute) and triggers the workflow for each new item it finds. Each new item results in one separate workflow run containing that item's data — a feed with three new posts since the last check produces three runs, not one.
How It Works
- Add the RSS block to your canvas as the workflow's trigger.
- Enter the Feed URL of the RSS or Atom feed you want to monitor.
- Deploy the workflow to activate polling.
- Mandala polls the feed every minute, comparing what it finds against items it has already seen.
- Each new item triggers a run, with the item's and feed's data made available to downstream blocks.
Configuration
| Parameter | Type | Required | Description |
|---|---|---|---|
feedUrl | string | Yes | The URL of the RSS or Atom feed to monitor (e.g. https://example.com/feed.xml) |
That's the entire configuration surface — there's no poll-interval setting (it's fixed at one check per minute) and no authentication field, so the feed URL needs to be publicly reachable without credentials.
Features
- Works with both RSS 2.0 and Atom feeds.
- One workflow run per new item, so downstream blocks process items individually rather than as a batch.
- Rich per-item data — title, link, publish date, description, full content, author, and categories — is available without any extra parsing.
- The complete raw item and feed objects are also exposed, so unusual or feed-specific fields aren't lost even if they aren't broken out individually.
Like other polling triggers (IMAP, Gmail, Outlook), the RSS trigger participates in Mandala's trigger health tracking: it will be automatically disabled after repeated failures (a dead feed URL fails fast, transient network issues get more retries), and the workspace owner is notified by email if that happens. See Trigger Health & Automatic Disabling for details.
Outputs
When the trigger fires, the following payload structure is made available to subsequent blocks under the trigger object:
{
"item": {
"title": "How We Rebuilt Our Deploy Pipeline",
"link": "https://example.com/blog/deploy-pipeline",
"pubDate": "Sat, 15 Aug 2026 09:00:00 GMT",
"guid": "https://example.com/blog/deploy-pipeline",
"description": "A look at how we cut deploy time by 80%...",
"content": "<p>A look at how we cut deploy time by 80%...</p>",
"contentSnippet": "A look at how we cut deploy time by 80%...",
"author": "Jane Doe",
"categories": ["engineering", "infrastructure"],
"enclosure": { "url": "https://example.com/cover.png", "type": "image/png", "length": "24500" },
"isoDate": "2026-08-15T09:00:00.000Z"
},
"feed": {
"title": "Example Co. Blog",
"link": "https://example.com/blog",
"description": "Engineering notes from Example Co."
},
"timestamp": "2026-08-15T09:01:00.000Z"
}Quick-reference fields (title, link, pubDate) are also available directly, and item / feed always carry every field the source feed actually provides — some feeds include more (or fewer) fields than shown above, since RSS/Atom implementations vary.
| Field | Type | Description |
|---|---|---|
item.title | string | Item title |
item.link | string | Item link/URL |
item.pubDate | string | Publication date as published by the feed |
item.guid | string | Unique identifier for the item |
item.description | string | Item description/summary |
item.content | string | Full content (content:encoded), where provided |
item.contentSnippet | string | Content snippet with HTML stripped |
item.author | string | Author name |
item.categories | json | Categories/tags array |
item.enclosure | json | Media attachment info (url, type, length), e.g. a podcast audio file |
item.isoDate | string | Publication date in ISO format |
feed.title | string | Feed title |
feed.link | string | Feed website link |
feed.description | string | Feed description |
timestamp | string | Time the trigger fired |
Example: Summarize a Competitor's Blog to Slack
A common use case is watching a competitor's or partner's blog and getting a quick digest posted to your team's Slack channel whenever they publish something new:
- RSS Trigger — set Feed URL to the competitor's blog feed (e.g.
https://competitor.com/blog/feed.xml). - Agent block — prompt it with something like:
Summarize this blog post in 2-3 sentences for a competitive intelligence channel: Title: {{trigger.item.title}} Link: {{trigger.item.link}} Content: {{trigger.item.contentSnippet}} - Slack block — post the Agent's summary, along with
{{trigger.item.link}}, to your competitive-intel channel.
Because every new post fires its own run, each summary is posted as soon as the item appears in the feed — no batching, no manual checking.