What RSS-to-email does
A new blog post publishes → AcelleMail detects via RSS feed → sends an email summary to your list automatically. Zero manual scheduling per post.
Use when:
- You publish content (blog, podcast, video) regularly
- You want a "new content" notification email per publication
- Manual campaign creation per post is tedious + error-prone
Skip when:
- Publication is irregular (every 3-6 weeks); manual is fine
- You want each post to have a hand-curated email (different angle, different subject) — RSS sends a templated summary
The setup in 3 phases#
Phase 1: Pick RSS campaign type
Phase 2: Configure the RSS feed URL + frequency
Phase 3: Build the email template with RSS blocks
Phase 1: Create an RSS campaign
In the campaign builder, type-selector shows the RSS option:

Pick RSS-driven. Continue to recipients + setup as usual.
Phase 2: Configure the RSS feed
In the setup step (RSS campaign type adds an RSS Feed URL field):
RSS Feed URL: https://yourblog.com/feed.xml (or https://yourblog.com/rss/)
Check frequency: every 1 hour / every 6 hours / daily
AcelleMail polls this URL at the chosen interval. When new items appear (newer than the last send), AcelleMail queues an email.
Most blogs publish their RSS at /feed/, /feed.xml, /rss/, or /?feed=rss2. Test the URL in a browser; you should see XML output.
Phase 3: Build the template#
In the template step, the builder includes an RSS block type. The Templates index lets you choose a template that already has RSS blocks, or build from scratch:

Drag the RSS block into the builder canvas:

The RSS block expands to:
<!-- Auto-populated at send time from RSS feed -->
{{ rss_items_loop }}
<h3>{{ item.title }}</h3>
<p>{{ item.summary }}</p>
<a href="{{ item.url }}">Read more</a>
{{ end_loop }}
Customize the markup. Each RSS item becomes one block in the rendered email.
Available RSS variables:
{{ item.title }} — post title
{{ item.summary }} — post excerpt
{{ item.url }} — post URL
{{ item.image }} — featured image URL (if RSS includes it)
{{ item.published_at }} — publication date
{{ item.author }} — author (if RSS includes it)
Common setup decisions#
| Decision |
Recommendation |
| Check frequency |
Daily for slow blogs; every 6h for moderate; every 1h for news-style |
| Max items per send |
1-3 for daily; 5-10 for weekly digest |
| Send mode |
Per-item (one email per new post) OR digest (one email per period covering multiple posts) |
| Schedule |
Aligned to publish-window (e.g. weekly digest sent Mondays after the weekend's publication window) |
| Template style |
Single-item layout for individual posts; multi-card layout for digests |
Common UI signals + fixes#
| Symptom |
Likely cause |
Fix |
| RSS feed URL invalid |
Wrong path or no RSS published |
Test in browser — should return XML |
| No RSS items appearing in test send |
Items already-sent (cached); OR feed has 0 items |
Force feed re-poll OR publish a new post |
| RSS template renders blank |
RSS variables not in correct syntax |
Check {{ item.X }} (correct) vs {rss.X} (wrong) |
| Items appear but missing images |
RSS feed doesn't include <image> or <enclosure> tags |
Configure your CMS to publish images in RSS; or fall back to a default image |
| Send fires immediately after setup |
RSS already had unsent items at config time |
Mark current items as "sent" in admin; OR delete and re-set up after most recent post |
| Recipients see truncated text |
Summary length capped by RSS source |
Extend <description> in RSS feed; OR replace with {{ item.content }} for full content |
Common RSS feed sources by platform
| Platform |
RSS path |
| WordPress |
https://yourblog.com/feed/ |
| Ghost |
https://yourblog.com/rss/ |
| Hugo |
https://yourblog.com/index.xml |
| Jekyll |
Plugin-dependent; typically /feed.xml |
| Substack |
https://yoursubstack.substack.com/feed |
| Medium |
https://medium.com/feed/@username |
| Custom CMS |
Usually /rss/ or /feed/; check your CMS docs |
Anti-patterns#
| Mistake |
Fix |
| RSS-sending to a cold list |
Build engagement first with hand-curated sends; introduce RSS after audience trust |
| Sending every single post |
Most subscribers want digests; per-post sends drive unsubscribes |
| Generic "Latest post" subject |
Use {{ item.title }} in the subject for specificity |
| RSS-only no other sends |
Mix in hand-curated campaigns — pure-RSS audiences see you as a content firehose |
Advanced: per-item conditional sending + per-author RSS + multi-feed digest patterns
Per-item conditional sending:
If your RSS feed mixes content types (blog posts + announcements + product updates), you may want to send only certain types:
{% if item.tags contains 'newsletter' %}
<!-- this item goes in the email -->
{% endif %}
In the RSS block builder, add the conditional. Only items matching the tag get rendered.
Some CMS platforms expose tags in RSS as <category> or <tag> elements; check your platform's RSS output.
Per-author RSS:
For multi-author blogs:
{% if item.author == 'Maria' %}
<p>📝 By Maria</p>
{% elsif item.author == 'Tobias' %}
<p>📝 By Tobias</p>
{% endif %}
Personalize the email when readers follow specific authors.
Multi-feed digest pattern:
Combine multiple RSS feeds into a single digest email:
Feed 1: https://blog.brand.com/feed
Feed 2: https://news.brand.com/feed
Feed 3: https://announcements.brand.com/feed
The campaign builder supports multiple RSS sources (some installs). Each feed contributes items; the template renders all in sections:
## From the blog
{{ rss_items_blog }} ...
## News
{{ rss_items_news }} ...
## Announcements
{{ rss_items_announcements }} ...
Programmatic RSS-to-AcelleMail bridge:
For full control over publish-to-email logic:
# Webhook from your CMS on publish → bridge service → AcelleMail
# Don't rely on RSS polling; push the post directly
curl -X POST "https://acellemail.com/api/v1/campaigns" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"name": "Blog: $POST_TITLE",
"list_uid": "...",
"template_uid": "...",
"subject": "$POST_TITLE",
"preheader": "$POST_EXCERPT",
"merge_tags": {
"post_title": "$POST_TITLE",
"post_url": "$POST_URL",
"post_image": "$POST_IMAGE"
},
"schedule": "in 5 minutes"
}'
Faster than RSS polling; more flexibility for content gating + personalization.
Re-sending RSS to engaged segment:
After 7 days, re-send unread items to non-openers:
Day 0: RSS triggered, email sent to full list
Day 7: Resend to subscribers who didn't open in 7 days
Subject: "ICYMI: [original subject]"
Captures readers who missed the original. Open rates typically rise 20-40% on the re-send.
RSS digest scheduling:
Weekly digest = best for most senders. Daily digest gets ignored; per-post sends are noisy. Middle ground:
Frequency: Weekly (Monday 9am ET)
Min items: 1 (skip the week if nothing published)
Max items: 5 (cap if you published heavily)
Set in the RSS campaign's advanced config.
Related articles#