Klaviyo RSS Feed Integration
Automate your email marketing with Klaviyo's RSS feed integration. Automatically send personalized emails to your subscribers whenever you publish new Instagram posts through Feedframer.
What is Klaviyo RSS Feed Integration?
Klaviyo monitors your Feedframer RSS feed and triggers automated email flows when new Instagram posts are published. Unlike simple RSS-to-email campaigns, Klaviyo allows sophisticated personalization, segmentation, and multi-step flows based on subscriber behavior.
Perfect for:
- Personalized product announcements based on customer preferences
- Segmented content delivery (e.g., different emails for different customer groups)
- Multi-touch campaigns (follow-up emails, cart abandonment with latest products)
- Advanced A/B testing and optimization
- E-commerce stores with Instagram shopping
Prerequisites
Before you begin, make sure you have:
- A Feedframer account with a connected Instagram account
- A Klaviyo account (start free trial)
- An email list in Klaviyo with subscribers
- Your Feedframer RSS feed URL (from the RSS Feed page)
Step-by-Step Setup
Step 1: Get Your RSS Feed URL
- Log in to your Feedframer account
- Navigate to RSS Feed in the sidebar
- Select the Instagram account you want to use
- Copy the RSS feed URL - it should look like:
https://feedframer.com/api/v1/rss?api_key=YOUR_API_TOKEN
Step 2: Create an RSS Feed in Klaviyo
- Log in to your Klaviyo account
- Navigate to Content → Feeds in the left sidebar
- Click Create Feed in the top right
- Select RSS as the feed type
Step 3: Configure RSS Feed Settings
-
Feed Name: Give it a descriptive name (e.g., "Instagram Posts - @yourusername")
-
Feed URL: Paste your Feedframer RSS feed URL from Step 1
-
Feed Refresh Frequency:
- Every 6 hours - Recommended for Free tier (updates hourly)
- Every 1 hour - Recommended for Premium tier (updates every 5 minutes)
- Choose based on your tier and posting frequency
-
Number of items to send:
- 1 - Send each new post individually (recommended)
- 2-5 - Send multiple posts in one email (digest style)
- All - Include all new posts since last check
-
Click Create Feed
Step 4: Test the RSS Feed
- After creating the feed, Klaviyo will validate it
- You should see a preview of your Instagram posts
- If validation fails, check:
- RSS feed URL is correct (copied exactly)
- Instagram account is active in Feedframer
- No typos in the URL
Step 5: Create an RSS-Triggered Flow
Now you'll create an automated email flow triggered by new RSS feed items.
- Navigate to Flows in the left sidebar
- Click Create Flow → Create From Scratch
- Name your flow (e.g., "New Instagram Post Email")
Add RSS Feed Trigger
- Click Add Trigger (or the first empty block)
- Select Feed from the trigger options
- Choose the RSS feed you created in Step 2
- Configure trigger settings:
- Trigger each time a new item appears: Yes
- Allow someone to be in this flow: Multiple times (so they get each new post)
Design Your Email
- Click Add Action below the trigger
- Select Email
- Configure email settings:
Email Settings:
- From Name: Your brand name
- From Email: Your sending email
- Subject Line: See examples below
- Preview Text: Engaging snippet about the post
Design the Email Template:
Click Edit Email Content and use Klaviyo's drag-and-drop editor or HTML editor.
Step 6: Email Template Design
Using Visual Editor
-
Add RSS Feed Block:
- Drag an RSS block into your template
- Select your RSS feed
- Choose layout (single item or multiple items)
-
Customize Appearance:
- Adjust image size and positioning
- Modify text styling
- Add brand colors and fonts
-
Add Call-to-Action:
- Add a button block below the RSS content
- Link to
{{ feed_item.link }}(Instagram post URL) - Text: "View on Instagram" or "See Full Post"
Using HTML Editor
For more control, use the HTML editor with these variables:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{ feed_item.title }}</title>
</head>
<body style="margin: 0; padding: 0; font-family: Arial, sans-serif;">
<div style="max-width: 600px; margin: 0 auto; background: #fff;">
<!-- Header -->
<div style="background: #f5f5f5; padding: 20px; text-align: center;">
<h1 style="margin: 0; color: #333;">New on Instagram!</h1>
</div>
<!-- Instagram Post Content -->
<div style="padding: 30px 20px;">
<!-- Post Image (automatically included in feed_item.description) -->
<div style="margin-bottom: 20px;">
{{ feed_item.description|safe }}
</div>
<!-- View on Instagram Button -->
<div style="text-align: center; margin: 30px 0;">
<a href="{{ feed_item.link }}"
style="background: linear-gradient(45deg, #f09433 0%, #e6683c 25%, #dc2743 50%, #cc2366 75%, #bc1888 100%);
color: white;
padding: 15px 40px;
text-decoration: none;
border-radius: 25px;
display: inline-block;
font-weight: bold;">
View on Instagram
</a>
</div>
<!-- Post Details -->
<div style="background: #f9f9f9; padding: 15px; border-radius: 8px; margin-top: 20px;">
<p style="margin: 0; color: #666; font-size: 14px;">
<strong>Posted:</strong> {{ feed_item.published_at|date:"F d, Y" }}
</p>
</div>
</div>
<!-- Personalization (if you have customer data) -->
<div style="padding: 20px; background: #fff; text-align: center;">
<p style="color: #666; font-size: 14px;">
Hi {% if person.first_name %}{{ person.first_name }}{% else %}there{% endif %},<br>
Thought you'd like to see our latest Instagram post!
</p>
</div>
<!-- Footer -->
<div style="background: #333; color: #fff; padding: 20px; text-align: center; font-size: 12px;">
<p>You're receiving this because you subscribed to our updates.</p>
<p>
<a href="{% unsubscribe_link %}" style="color: #fff;">Unsubscribe</a> |
<a href="{% view_in_browser_link %}" style="color: #fff;">View in browser</a>
</p>
</div>
</div>
</body>
</html>
Available Klaviyo Variables
Use these variables in your email template:
RSS Feed Variables:
{{ feed_item.title }}- Post caption (first 100 characters){{ feed_item.description }}- Full HTML content with image and caption{{ feed_item.link }}- Instagram post URL{{ feed_item.published_at }}- Publication date{{ feed_item.guid }}- Unique post identifier
Person Variables (Personalization):
{{ person.first_name }}- Subscriber's first name{{ person.last_name }}- Subscriber's last name{{ person.email }}- Subscriber's email- Custom properties you've added to profiles
Step 7: Add Flow Filters (Optional)
Target specific segments with flow filters:
- Click Flow Filters at the top of the flow
- Add conditions like:
- Has placed order - Send only to customers
- Is in List - Send only to specific list
- Custom property - Filter by any custom data
Example: Send product posts only to customers who've purchased in the last 90 days:
What someone has done (or not done) > Placed Order
Over all time > at least 1 times
AND
What someone has done (or not done) > Placed Order
In the last 90 days > at least 1 times
Step 8: Configure Email Settings
-
Subject Line Ideas:
Fresh from Instagram: New post! 📸 {{ feed_item.title }} Check out what we just posted on Instagram New {{ feed_item.title|truncate:30 }} -
Preview Text:
{{ feed_item.title|striptags|truncate:100 }} We just shared something new on Instagram! -
Tracking:
- Enable open tracking
- Enable click tracking
- Add UTM parameters to Instagram links (optional)
Step 9: Review and Activate
-
Send Test Email:
- Click "Send Test" in the email editor
- Enter your email address
- Verify formatting, images, and links
-
Review Flow Settings:
- Check trigger is set to your RSS feed
- Verify flow filters (if any)
- Confirm email settings
-
Turn on Flow:
- Toggle the flow to Live
- Klaviyo will now monitor your feed and send emails automatically
Advanced Configuration
Multi-Step Flows
Create sophisticated email sequences:
Example: New Product Launch Flow
- Email 1 (Day 0): New Instagram post about product
- Wait 1 day
- Email 2 (Day 1): Follow-up with product details and discount code
- Conditional Split: Has clicked Instagram link?
- Yes: Add to "Engaged with Instagram" segment
- No: Send reminder email on Day 3
Trigger: RSS Feed (new post)
↓
Email: "New on Instagram!"
↓
Wait: 1 day
↓
Conditional Split: Clicked email?
├─ Yes → Add to Segment "Instagram Engaged"
└─ No → Wait 2 days → Reminder Email
Dynamic Content Based on Post Type
Show different content based on Instagram post type:
{% if "VIDEO" in feed_item.title or "Reel" in feed_item.title %}
<p style="background: #ffebee; padding: 10px; border-radius: 5px;">
🎥 This is a video post - click to watch on Instagram!
</p>
{% endif %}
{% if "CAROUSEL" in feed_item.title %}
<p style="background: #e3f2fd; padding: 10px; border-radius: 5px;">
📸 This carousel has multiple images - swipe to see them all!
</p>
{% endif %}
Segment by Instagram Engagement
Create segments based on how subscribers interact with Instagram emails:
- Navigate to Segments in Klaviyo
- Click Create Segment
- Add conditions:
What someone has done (or not done) > Opened Email In the last 30 days > at least 3 times Where Message contains "Instagram"
Use this segment to:
- Send exclusive Instagram content
- Offer special promotions
- Create VIP customer experiences
A/B Testing
Test different approaches to maximize engagement:
Test Elements:
- Subject lines (emoji vs. no emoji, length variations)
- Send times (morning vs. evening)
- Email layouts (image-first vs. text-first)
- CTA copy ("View on Instagram" vs. "See Full Post")
Setup A/B Test:
- In your flow, click on the email step
- Select A/B Test
- Create variant B with your changes
- Set test duration and winning metric (open rate or click rate)
- Klaviyo will automatically send the winning variant
Product Feed Integration (E-commerce)
If your Instagram posts feature products, link them to your product catalog:
- Tag products in Instagram (if using Instagram Shopping)
- Reference products in email:
{% if feed_item.title contains "Product Name" %}
{% catalog event.ProductID %}
<div style="border: 1px solid #eee; padding: 20px; margin-top: 20px;">
<h3>{{ event.ProductName }}</h3>
<p>{{ event.ProductDescription|truncate:100 }}</p>
<p><strong>${{ event.Price }}</strong></p>
<a href="{{ event.ProductURL }}" style="background: #000; color: #fff; padding: 10px 20px; text-decoration: none; display: inline-block;">
Shop Now
</a>
</div>
{% endcatalog %}
{% endif %}
Best Practices
Send Frequency
Match to Posting Cadence:
- High-frequency posting (daily): Send each post individually
- Moderate posting (3-4/week): Send each post or batch 2-3
- Low-frequency posting (1-2/week): Send digest of all posts
Avoid Email Fatigue:
- Monitor unsubscribe rates
- Add frequency caps (max 1 email per day)
- Segment high-engagement vs. low-engagement subscribers
Personalization
Use Klaviyo's data to personalize:
Hi {{ person.first_name|default:"there" }},
{% if person.last_order_date %}
We know you loved your last purchase! Check out our latest Instagram post featuring similar styles.
{% else %}
Discover what we've been up to on Instagram!
{% endif %}
Timing Optimization
Let Klaviyo determine the best send time:
- In email settings, enable Smart Send Time
- Klaviyo analyzes when each subscriber typically engages
- Emails are sent at optimal times for each person
Mobile Optimization
- 60%+ of emails are opened on mobile
- Keep images responsive:
max-width: 100%; height: auto; - Use large, tappable buttons (min 44x44px)
- Test in Klaviyo's mobile preview
Monitoring Performance
Key Metrics to Track
In Klaviyo's Flow Analytics, monitor:
-
Flow Activity:
- How many people entered the flow (new posts detected)
- How many emails were sent
- Flow revenue (if e-commerce enabled)
-
Email Performance:
- Open rate (benchmark: 20-30%)
- Click rate (benchmark: 2-5%)
- Click-to-open rate (engagement quality)
- Revenue per recipient (e-commerce)
-
Engagement Trends:
- Which posts drive the most clicks
- Best send times and days
- Subject line performance
Optimization Tips
Low Open Rates?
- Test different subject lines
- Try Smart Send Time
- Verify "From Name" is recognizable
Low Click Rates?
- Improve email design and imagery
- Make CTAs more prominent
- Test different button copy
High Unsubscribes?
- Reduce email frequency
- Improve content relevance
- Segment better (send only relevant content)
Troubleshooting
Flow Not Triggering
Problem: New Instagram posts aren't triggering the flow
Solutions:
- Check RSS feed is active in Klaviyo (Content → Feeds)
- Verify Instagram account is active in Feedframer
- Ensure you've posted new content since activating the flow
- Check feed refresh frequency (may take up to 6 hours)
- Manually refresh feed in Klaviyo to test
Emails Not Sending
Problem: Flow triggers but emails don't send
Solutions:
- Check flow is set to Live (not draft)
- Verify recipients meet flow filter conditions
- Check for suppression (unsubscribed, bounced, etc.)
- Review flow analytics for errors
- Ensure email passed Klaviyo's spam filters
Images Not Displaying
Problem: Instagram images not showing in emails
Solutions:
- Use
{{ feed_item.description|safe }}(includes|safefilter) - Test in different email clients (Gmail, Outlook, Apple Mail)
- Check recipient's email settings (images may be blocked)
- Verify Feedframer RSS feed includes
<media:content>tags
Duplicate Emails Sending
Problem: Subscribers receiving multiple emails for same post
Solutions:
- Check flow settings - "Allow someone to be in this flow: Multiple times" should be enabled
- Review trigger settings - ensure "once per feed item" is selected
- Verify only one flow is monitoring the same RSS feed
- Check for multiple RSS feeds pointing to same URL
Example Use Cases
Fashion E-commerce
Setup:
- RSS flow sends each new Instagram post individually
- Segment: Customers who've purchased in last 60 days
- Email includes product links and discount code
- Follow-up email after 2 days if no purchase
Restaurant/Cafe
Setup:
- RSS flow sends daily digest at 7am
- Includes all posts from previous day (specials, menu items)
- Segment: Local subscribers within 10-mile radius
- CTA: "Reserve a table" or "Order online"
Photography Portfolio
Setup:
- Weekly digest of Instagram posts
- Segment: Engaged subscribers (opened last 3 emails)
- High-quality image display, minimal text
- CTA: "Book a session" or "View full portfolio"
Integration with Other Klaviyo Features
Combine with Other Flows
Coordinate Instagram content with other marketing:
Example: Product Launch Campaign
- Day 0: Instagram post announcing new product → RSS flow email
- Day 1: Standard promotional email with product details
- Day 3: Reminder email to those who didn't click
- Day 7: Last chance email with urgency
Use in Segmentation
Create segments based on Instagram email engagement:
Definition: "Instagram Engaged Customers"
- Clicked email in flow "New Instagram Post"
- In the last 30 days, at least 2 times
- AND
- Has placed order, over all time, at least 1 time
Use this segment for:
- Exclusive Instagram-only promotions
- Early access to new products
- VIP customer programs
Combine with SMS
Add SMS to your Instagram flow:
- After email is sent, wait 2 hours
- Conditional split: Opened email?
- No: Send SMS with shorter message and Instagram link
- Yes: Exit flow
SMS Example:
Hey {{ person.first_name }}! 📸 Just posted something new on Instagram. Check it out: [Instagram Link]
Getting Help
Need assistance with your Klaviyo integration?
Klaviyo Resources:
Feedframer Support:
- Review our RSS Feed Documentation
- Check the FAQ on the RSS Feed page
- Contact Feedframer support for feed-related issues
Next Steps
Once your Klaviyo RSS flow is running:
- Monitor performance for first 2 weeks
- A/B test subject lines and email designs
- Create segments based on engagement
- Build multi-step flows for more sophisticated automation
- Integrate with SMS for multi-channel campaigns
- Consider Mailchimp integration for comparison
Happy automating! 🚀