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:

  1. A Feedframer account with a connected Instagram account
  2. A Klaviyo account (start free trial)
  3. An email list in Klaviyo with subscribers
  4. Your Feedframer RSS feed URL (from the RSS Feed page)

Step-by-Step Setup

Step 1: Get Your RSS Feed URL

  1. Log in to your Feedframer account
  2. Navigate to RSS Feed in the sidebar
  3. Select the Instagram account you want to use
  4. 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

  1. Log in to your Klaviyo account
  2. Navigate to ContentFeeds in the left sidebar
  3. Click Create Feed in the top right
  4. Select RSS as the feed type

Step 3: Configure RSS Feed Settings

  1. Feed Name: Give it a descriptive name (e.g., "Instagram Posts - @yourusername")

  2. Feed URL: Paste your Feedframer RSS feed URL from Step 1

  3. 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
  4. 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
  5. Click Create Feed

Step 4: Test the RSS Feed

  1. After creating the feed, Klaviyo will validate it
  2. You should see a preview of your Instagram posts
  3. 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.

  1. Navigate to Flows in the left sidebar
  2. Click Create FlowCreate From Scratch
  3. Name your flow (e.g., "New Instagram Post Email")

Add RSS Feed Trigger

  1. Click Add Trigger (or the first empty block)
  2. Select Feed from the trigger options
  3. Choose the RSS feed you created in Step 2
  4. 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

  1. Click Add Action below the trigger
  2. Select Email
  3. 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

  1. Add RSS Feed Block:

    • Drag an RSS block into your template
    • Select your RSS feed
    • Choose layout (single item or multiple items)
  2. Customize Appearance:

    • Adjust image size and positioning
    • Modify text styling
    • Add brand colors and fonts
  3. 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:

  1. Click Flow Filters at the top of the flow
  2. 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

  1. 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 }}
    
  2. Preview Text:

    {{ feed_item.title|striptags|truncate:100 }}
    We just shared something new on Instagram!
    
  3. Tracking:

    • Enable open tracking
    • Enable click tracking
    • Add UTM parameters to Instagram links (optional)

Step 9: Review and Activate

  1. Send Test Email:

    • Click "Send Test" in the email editor
    • Enter your email address
    • Verify formatting, images, and links
  2. Review Flow Settings:

    • Check trigger is set to your RSS feed
    • Verify flow filters (if any)
    • Confirm email settings
  3. 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

  1. Email 1 (Day 0): New Instagram post about product
  2. Wait 1 day
  3. Email 2 (Day 1): Follow-up with product details and discount code
  4. 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:

  1. Navigate to Segments in Klaviyo
  2. Click Create Segment
  3. 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:

  1. In your flow, click on the email step
  2. Select A/B Test
  3. Create variant B with your changes
  4. Set test duration and winning metric (open rate or click rate)
  5. Klaviyo will automatically send the winning variant

Product Feed Integration (E-commerce)

If your Instagram posts feature products, link them to your product catalog:

  1. Tag products in Instagram (if using Instagram Shopping)
  2. 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:

  1. In email settings, enable Smart Send Time
  2. Klaviyo analyzes when each subscriber typically engages
  3. 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:

  1. Flow Activity:

    • How many people entered the flow (new posts detected)
    • How many emails were sent
    • Flow revenue (if e-commerce enabled)
  2. Email Performance:

    • Open rate (benchmark: 20-30%)
    • Click rate (benchmark: 2-5%)
    • Click-to-open rate (engagement quality)
    • Revenue per recipient (e-commerce)
  3. 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:

  1. Check RSS feed is active in Klaviyo (Content → Feeds)
  2. Verify Instagram account is active in Feedframer
  3. Ensure you've posted new content since activating the flow
  4. Check feed refresh frequency (may take up to 6 hours)
  5. Manually refresh feed in Klaviyo to test

Emails Not Sending

Problem: Flow triggers but emails don't send

Solutions:

  1. Check flow is set to Live (not draft)
  2. Verify recipients meet flow filter conditions
  3. Check for suppression (unsubscribed, bounced, etc.)
  4. Review flow analytics for errors
  5. Ensure email passed Klaviyo's spam filters

Images Not Displaying

Problem: Instagram images not showing in emails

Solutions:

  1. Use {{ feed_item.description|safe }} (includes |safe filter)
  2. Test in different email clients (Gmail, Outlook, Apple Mail)
  3. Check recipient's email settings (images may be blocked)
  4. Verify Feedframer RSS feed includes <media:content> tags

Duplicate Emails Sending

Problem: Subscribers receiving multiple emails for same post

Solutions:

  1. Check flow settings - "Allow someone to be in this flow: Multiple times" should be enabled
  2. Review trigger settings - ensure "once per feed item" is selected
  3. Verify only one flow is monitoring the same RSS feed
  4. 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

  1. Day 0: Instagram post announcing new product → RSS flow email
  2. Day 1: Standard promotional email with product details
  3. Day 3: Reminder email to those who didn't click
  4. 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:

  1. After email is sent, wait 2 hours
  2. 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:

Next Steps

Once your Klaviyo RSS flow is running:

  1. Monitor performance for first 2 weeks
  2. A/B test subject lines and email designs
  3. Create segments based on engagement
  4. Build multi-step flows for more sophisticated automation
  5. Integrate with SMS for multi-channel campaigns
  6. Consider Mailchimp integration for comparison

Happy automating! 🚀