Overview
The RSS integration allows you to:- Subscribe channels to any RSS or Atom feed
- Configure polling intervals (how often to check for new items)
- Automatic formatting of feed items as messages
- Enable/disable subscriptions without deleting them
- Error tracking for failed feed fetches
Creating Subscriptions
Find the RSS Feed URL
Locate the RSS feed URL for the content you want to follow:
- Blogs: Look for RSS icon or
/feedURL - GitHub Releases:
https://github.com/{owner}/{repo}/releases.atom - YouTube Channels: Use channel ID in feed URL
- Podcasts: Use the feed URL from the podcast directory
Polling Workflow
RSS feeds are polled on a schedule using a durable workflow:packages/domain/src/cluster/workflows/rss-feed-poll-workflow.ts:7-23
- Fetches the RSS feed at the configured interval
- Parses feed items and compares against last fetched item
- Posts new items as messages in the subscribed channel
- Updates subscription metadata (lastFetchedAt, lastItemPublishedAt, lastItemGuid)
- Tracks errors and retries on failure
Polling Intervals
Configure how often feeds are checked:Managing Subscriptions
List Subscriptions
Update Subscription
Disable Subscription
Temporarily pause polling without deleting:Delete Subscription
Subscription Schema
Each RSS subscription includes:packages/domain/src/models/rss-subscription-model.ts:6-25
Error Tracking
Subscriptions track polling errors:consecutiveErrors- Number of consecutive failed fetcheslastErrorMessage- Last error messagelastErrorAt- Timestamp of last error
Message Format
RSS items are posted as formatted messages:Blog Post
GitHub Release
Podcast Episode
RPC Schema Reference
Create Subscription
packages/domain/src/rpc/rss-subscriptions.ts:47-61
Update Subscription
packages/domain/src/rpc/rss-subscriptions.ts:75-83
Common Use Cases
Engineering Team Updates
Product Announcements
News & Industry
Error Handling
Common Errors
| Error | Cause | Solution |
|---|---|---|
RssFeedValidationError | Invalid or unreachable feed URL | Verify the feed URL is correct and publicly accessible |
RssSubscriptionExistsError | Channel already subscribed to feed | Update existing subscription or delete it first |
ChannelNotFoundError | Invalid channel ID | Verify the channel exists and you have access |
UnauthorizedError | User not authorized | Must be organization admin to manage subscriptions |
Error Example
Best Practices
Choose Appropriate Intervals
Match polling frequency to content update rate:
- 15-30 min: High-frequency news feeds
- 1 hour: Most blogs and releases
- 6-12 hours: Low-frequency content
Validate Feeds Before Subscribing
Test feed URLs in an RSS reader first to ensure they’re valid and contain expected content.
Use Dedicated Channels
Create separate channels for different content types:
#engineering-releases- Dependency releases#product-news- Product announcements#industry-news- Industry publications
Next Steps
Channel Webhooks
Create incoming webhooks for external notifications
Bot Creation
Build custom bots with the Hazel Bot SDK