RssHub Trigger Plugin
Receive RssHub feed notifications in Dify via simple webhooks. Flexible events, rich filters, and optional shared-secret verification.
Why this plugin
- Reduce polling: trigger workflows as soon as a feed changes.
- Normalize payloads: pass through standard RSS/Atom fields or custom structures.
- Keep it simple: optional API Key, no server-to-server handshake required.
What is RSS Hub?
- RSS Hub is an open‑source project that generates RSS/Atom feeds for websites and services.
- Project homepage (GitHub): https://github.com/DIYgod/RSSHub
- This plugin is the webhook receiver: it accepts payloads and triggers Dify workflows.
Features
- Optional API Key verification (header or query param)
- Multiple events with sensible defaults
- Rich, per‑event filters to minimize noise
- Generic item payload passthrough as trigger variables
Architecture
- Sender: your RssHub deployment, a cron/worker that reads the feed, or any script that transforms a feed update into a JSON POST.
- Receiver: this plugin’s webhook URL (generated by Dify for the trigger). It validates (optionally) and dispatches an event to your workflow.
Setup
- Install/import the plugin into Dify.
- Subscription configuration:
- (optional):
- If provided, all webhook calls must include the same key (see Authentication).
- If left blank, the webhook accepts unauthenticated posts.
- Copy the generated webhook endpoint URL from your Dify trigger.
- Configure your RssHub (or a small companion worker) to POST updates to this URL.
- If using an API Key, include it as described below.
- (Optional) If you send a custom event name via header/query/body, it will be accepted, but the plugin is optimized for .
Authentication (Optional)
- Provide a shared in the subscription to enable verification.
- Send the same key with each request using one of:
- HTTP header (recommended)
- HTTP header
- Query string or
- If you do not configure an API Key in the subscription, the receiver accepts unauthenticated requests.
Event Type
-
- This plugin uses a single event, , and expects the payload structure described in this README.
- Reference (project): https://github.com/DIYgod/RSSHub
- Other custom event names are accepted but are not schema-typed.
Payload Schema (rss.app)
The plugin exposes the entire JSON body as trigger variables. The canonical schema is:
- (string): Unique identifier for the webhook event
- (string): Event type (currently )
- (object): Feed metadata
- (string): Unique identifier for the feed
- (string): Feed title
- (string): Source website URL
- (string): RSS feed XML URL
- (string): Feed description
- (string): Favicon/icon URL
- (object): Update details
- (array of objects): New items since the last event
- (string)
- (string)
- (string)
- (string)
- (date string)
- (array of objects)
- (array of objects): Updated items since the last event
- (string)
- (string)
- (string)
- (string)
- (date string)
- (array of objects)
Example (cURL)
-
feed_update (no auth):
-
With API Key in header:
Tips and Best Practices
- Choose the minimal filter set that captures what you care about; let the plugin ignore the rest upstream.
- Normalize GUID/ID at your notifier side to avoid duplicates.
- If you cannot push directly from RssHub, run a small poller (cron/worker) that converts feed changes into webhook POSTs.
- For unauthenticated mode, prefer allowing only known source IPs or use a secret path segment at your reverse proxy.
Troubleshooting
- No runs: check event type and filters; try removing filters to validate connectivity.
- 401/403 with API Key: ensure the subscription’s matches the header/query you send.
- 400 parse error: ensure or send urlencoded with a JSON field.
- Event mismatch: specify the event explicitly (header or query) to avoid heuristic fallback.
Limitations
- This plugin does not create/manage RssHub subscriptions. Configure push from your deployment or a companion worker.
- Only shared-secret style verification is supported; there is no OAuth/HMAC at the moment.