AutomationFlowsAI & RAG › Create Social Posts From RSS Feeds with Openai, Unsplash, and Buffer

Create Social Posts From RSS Feeds with Openai, Unsplash, and Buffer

ByAyaan Sheikh @ayaansheikh77 on n8n.io

This workflow polls an RSS feed for new articles, uses OpenAI to generate platform-specific copy for X, LinkedIn, and Instagram, pulls a related random image from the Unsplash API, and creates queued posts in Buffer for each social channel. Runs every hour and reads the latest…

Event trigger★★★★☆ complexityAI-powered11 nodesRss Feed Read TriggerOpenAIHTTP Request@Bufferapp/N8N Nodes Buffer
AI & RAG Trigger: Event Nodes: 11 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #16688 — we link there as the canonical source.

This workflow follows the HTTP Request → OpenAI recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "3CHx7dyvHcIvWnp7",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Social Media Auto Reposter",
  "tags": [],
  "nodes": [
    {
      "id": "daa6302d-15a5-4d28-857a-ebad341fe360",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3440,
        1136
      ],
      "parameters": {
        "color": 3,
        "width": 800,
        "height": 1000,
        "content": "## Social Media Auto Reposter\n\n### How it works\n\nThis workflow automatically reposts new RSS feed items to social media. When a new feed item arrives, it uses OpenAI to generate social copy, fetches a supporting image from Unsplash, and then creates Buffer posts for X, LinkedIn, and Instagram in sequence.\n\n### Setup steps\n\n- Configure the RSS Feed Trigger with the source feed URL and polling settings.\n- Add valid OpenAI credentials and adjust the model/prompt so it produces the desired post copy.\n- Configure the HTTP Request node with a valid Unsplash API access key and desired photo query parameters.\n- Connect Buffer credentials and select the correct Buffer channels/profiles for X, LinkedIn, and Instagram.\n\n### Customization\n\nUpdate the OpenAI prompt for platform-specific tone, change the Unsplash search parameters to match your niche, or add/remove Buffer nodes for different social channels."
      },
      "typeVersion": 1
    },
    {
      "id": "95133d5d-e75f-420d-b48a-6b94ff2d2cea",
      "name": "Sticky Note - Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4336,
        1408
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 520,
        "content": "## Trigger\n\n### Watch RSS feed\n\nPolls the configured RSS feed on a schedule and fires whenever a new article/item is published."
      },
      "typeVersion": 1
    },
    {
      "id": "44937829-a6e4-4d2a-a959-f96cb91b7ab5",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4752,
        1392
      ],
      "parameters": {
        "color": 6,
        "width": 480,
        "height": 536,
        "content": "## Read and draft content\n\nStarts from new RSS feed items and sends the article content into OpenAI to generate repost-ready social media text."
      },
      "typeVersion": 1
    },
    {
      "id": "6c45dccb-d525-4eec-a594-73382fe012ac",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5248,
        1392
      ],
      "parameters": {
        "color": 5,
        "width": 352,
        "height": 536,
        "content": "## Fetch post image\n\nRetrieves a random image from Unsplash via HTTP request to enrich the generated social post before publishing."
      },
      "typeVersion": 1
    },
    {
      "id": "591a1855-6553-4c85-a2ad-9376e1b42003",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        5616,
        1392
      ],
      "parameters": {
        "color": 7,
        "width": 972,
        "height": 536,
        "content": "## Publish across channels\n\nCreates Buffer posts in sequence for X, LinkedIn, and Instagram using the generated copy and fetched media asset."
      },
      "typeVersion": 1
    },
    {
      "id": "59185950-bc15-461c-9f40-f15ba043fe9e",
      "name": "When RSS Feed Updates",
      "type": "n8n-nodes-base.rssFeedReadTrigger",
      "position": [
        4432,
        1664
      ],
      "parameters": {
        "feedUrl": "https://techcrunch.com/feed",
        "pollTimes": {
          "item": [
            {
              "mode": "everyHour"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1a51543a-b077-4354-b02e-8ec9e2a8919f",
      "name": "OpenAI Content Generator",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        4800,
        1664
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "GPT-4O-MINI"
        },
        "options": {},
        "responses": {
          "values": [
            {
              "content": "=IMPORTANT: Never use asterisks (**) or markdown formatting. Use plain text only.\n\nYou are a viral social media expert.\n\nArticle Title: {{ $json.title }}\nArticle Content: {{ $json.contentSnippet }}\n\nCreate 3 highly engaging social media posts:\n\nTWITTER:\n- Maximum 200 characters including spaces and hashtags\n- Start with a hook (surprising fact or question)\n- Add relevant emojis\n- End with call to action\n- Add 2-3 trending hashtags\n- No asterisks or markdown\n\nLINKEDIN:\n- Professional but engaging tone\n- Start with a bold statement on first line\n- 3-4 paragraphs with line breaks between them\n- Add bullet points using dash (-) not asterisks\n- End with a question to drive comments\n- Add 5 relevant hashtags\n- No asterisks or markdown formatting\n\nINSTAGRAM:\n- Fun and energetic tone\n- Start with attention grabbing line\n- Use lots of emojis\n- Add call to action\n- Add 10-15 hashtags\n- No asterisks or markdown\n\nReturn ONLY in this exact format, nothing else."
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "0b5ed0b0-0aea-4eef-a755-e9078c040974",
      "name": "Fetch Random Image from Unsplash",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        5328,
        1664
      ],
      "parameters": {
        "url": "=https://api.unsplash.com/photos/random?query={{ $('When RSS Feed Updates').item.json.title.split(' ').slice(0,3).join(' ') }}&client_id=VEjr7_ERMitKzXjhWFyIgp5wModg11DiwuGatVW6ZQw",
        "options": {}
      },
      "typeVersion": 4.4
    },
    {
      "id": "a505c330-d2e3-4fca-b34f-6bdc776d755e",
      "name": "Prepare Post for X",
      "type": "@bufferapp/n8n-nodes-buffer.buffer",
      "position": [
        5728,
        1664
      ],
      "parameters": {
        "imageUrl": "={{ $json.urls.regular }}",
        "postText": "{{ $('Open AI Model').item.json.output[0].content[0].text.split('TWITTER:')[1].split('LINKEDIN:')[0].trim() }}",
        "resource": "post",
        "channelId": "6a416e5c5ab6d2f1068104d2|twitter",
        "attachmentType": "image",
        "organizationId": "6a416822c3e6309a0f12c56f"
      },
      "credentials": {
        "bufferApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3afdf294-98f6-4dfc-ae48-9145a365c43f",
      "name": "Prepare Post for LinkedIn",
      "type": "@bufferapp/n8n-nodes-buffer.buffer",
      "position": [
        6016,
        1664
      ],
      "parameters": {
        "imageUrl": "={{ $('Fetch Random Image from Unsplash').item.json.urls.regular }}",
        "postText": "={{ $('OpenAI Content Generator').item.json.output[0].content[0].text.split('LINKEDIN:')[1].split('INSTAGRAM:')[0].trim() }}",
        "resource": "post",
        "channelId": "6a4176a35ab6d2f106813141|linkedin",
        "attachmentType": "image",
        "organizationId": "6a416822c3e6309a0f12c56f"
      },
      "credentials": {
        "bufferApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3d8f1f04-f2ba-4c44-99e5-a52171ea6c86",
      "name": "Prepare Post for Instagram",
      "type": "@bufferapp/n8n-nodes-buffer.buffer",
      "position": [
        6304,
        1664
      ],
      "parameters": {
        "imageUrl": "={{ $('Fetch Random Image from Unsplash').item.json.urls.regular }}",
        "postText": "={{ $('OpenAI Content Generator').item.json.output[0].content[0].text.split('INSTAGRAM:')[1].trim() }}",
        "resource": "post",
        "channelId": "6a42309a5ab6d2f10683ac22|instagram",
        "attachmentType": "image",
        "organizationId": "6a416822c3e6309a0f12c56f"
      },
      "credentials": {
        "bufferApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "79646871-72cc-490d-86cf-b847e17d48e8",
  "nodeGroups": [],
  "connections": {
    "Prepare Post for X": {
      "main": [
        [
          {
            "node": "Prepare Post for LinkedIn",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When RSS Feed Updates": {
      "main": [
        [
          {
            "node": "OpenAI Content Generator",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Content Generator": {
      "main": [
        [
          {
            "node": "Fetch Random Image from Unsplash",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Prepare Post for LinkedIn": {
      "main": [
        [
          {
            "node": "Prepare Post for Instagram",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Random Image from Unsplash": {
      "main": [
        [
          {
            "node": "Prepare Post for X",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow polls an RSS feed for new articles, uses OpenAI to generate platform-specific copy for X, LinkedIn, and Instagram, pulls a related random image from the Unsplash API, and creates queued posts in Buffer for each social channel. Runs every hour and reads the latest…

Source: https://n8n.io/workflows/16688/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

inoreader_AI->196267257. Uses httpRequest, openAi, telegram, airtable. Event-driven trigger; 28 nodes.

HTTP Request, OpenAI, Telegram +2
AI & RAG

Automatically create and publish ready-to-post social media news updates — all powered by AI. This workflow turns any RSS feed into professional, branded posts, complete with visuals and captions.

HTTP Request, Stop And Error, Rss Feed Read Trigger +2
AI & RAG

This workflow is for content creators, social media managers, marketing teams, and virtual assistants who want to automatically repurpose YouTube videos into ready-to-post social media content. If you

HTTP Request, OpenAI, Airtable +1
AI & RAG

Boost engagement on your Discord server by automatically sharing new YouTube videos along with AI generated summaries of their content. This workflow is ideal for content creators and community manage

Rss Feed Read Trigger, HTTP Request, OpenAI +1
AI & RAG

Ask questions like “How much did I spend on food last month?” and get instant answers from your financial data — directly in Telegram.

Telegram Trigger, OpenAI, Google Sheets +2