Pull RSS Feeds into Email
Use Bento's Liquid helpers to stream your latest posts, episodes, or releases straight into a campaign.
Last updated: October 30, 2025
Liquid exposes an rss helper so you can render fresh items from any public feed when the message sends. Point it at your feed URL, loop through the returned collection, and format each item however you like.
Fetch the feed
Assign the feed to a variable with the rss filter. Each item contains the standard RSS fields—title, description, published date, and link.
{% assign posts = "https://feedforall.com/sample.xml" | rss %}
{% for post in posts %}
{{ post.title }}
{% endfor %}
Swap in your own RSS URL and you will see live content the next time a campaign renders.
Format each entry
Wrap the metadata in the markup your layout expects. Titles and descriptions are plain strings, so you can bold, italicize, or truncate as needed.
{% assign posts = "https://feedforall.com/sample.xml" | rss %}
{% for post in posts limit: 3 %}
<h3>{{ post.title }}</h3>
<p>{{ post.description }}</p>
{{ post.link | hyperlink: "Read more →" }}
{% endfor %}
Use Liquid filters such as limit, slice, or date to control how many items appear and how timestamps are formatted.
Troubleshooting
- Make sure the feed is publicly accessible over HTTPS—private feeds cannot be fetched.
- If nothing renders, copy the loop into an email preview to inspect the JSON payload and confirm field names.
- Keep descriptions short; RSS sources often include long content blocks. Use
truncatewordsif you only need a teaser.
Wrap up
RSS-powered sections keep newsletters current without manual edits. Pair them with other Liquid helpers in the Liquid Guide for HTML scraping or JSON APIs when you need more than a feed can provide. Questions? Say hi in the Bento Discord and we can walk through your template together.
Need the original Markdown? Open raw file