RSS-to-Email Campaigns in AcelleMail — Auto-Send Your Blog Posts

New blog post published? AcelleMail can detect it via RSS and auto-send to your list. This guide walks the RSS campaign type, the feed URL setup, and the template that maps RSS items into email blocks.

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:

RSS campaign type

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:

Templates index

Drag the RSS block into the builder canvas:

Builder with RSS block

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

7 commenti

4 commenti

  1. danrey.dev
    Any guidance on how this interacts with the time-of-day send optimization? Conflicts with our scheduled-blast pattern.
    1. admin
      Currently a manual step. There's a feature request tracking it on the repo if you want to +1.
    2. admin (modificato)
      yes — strict alignment requires the from: domain to match exactly. subdomain-level (`bounce.example.com` vs `example.com`) passes relaxed but fails strict. most operators run relaxed; the rare strict-dmarc setups need explicit subdomain dkim configuration
  2. ahmed.hassan.c…
    Saved this. Going to use as a reference for our next campaign cycle.
  3. aisha.khan.pak
    The personalization-beyond-first-name section is what I needed. Most articles talk about it abstractly.
  4. lequan.saigon
    Our open rate jumped from 18% to 24% after we restructured around these principles. Took about 6 weeks to see the full lift.
    1. admin (modificato)
      thanks for the detail — adding the kernel-reboot edge case to the article on the next update

More in Email Marketing