All Templates
Content • Intermediate

AI Social Media Content Scheduler

Generate and schedule engaging LinkedIn and Twitter posts from your blog content using AI.

0

Interactive Workflow

Powered by n8n.io

How it works

Overview

This workflow watches your blog's RSS feed and repurposes every new post into platform-native social content.

The flow

  1. Trigger — RSS Read polls your blog feed on a schedule (every 15 minutes).
  2. Summarize — OpenAI extracts the core message and writes a LinkedIn post.
  3. Thread — A second AI call turns the summary into a 3-tweet thread.
  4. Publish — LinkedIn and Twitter nodes post the drafts automatically.

At a glance: one blog post becomes a full week of social content with zero extra effort.

How to use

Setup

  1. Replace the RSS feed URL with your blog's feed.
  2. Connect your LinkedIn account (OAuth2) and Twitter credentials in n8n.
  3. Add your OpenAI API key.
  4. Import, activate, and publish your next blog post to watch it work.

Customizing tone

Edit the prompt in the OpenAI nodes to match your brand voice. Increase the RSS poll interval if you publish less frequently.

Ready to use?

Import into n8n

Copy the workflow JSON below and paste it directly onto your n8n canvas.

Ctrl + V to paste in n8n
View raw JSON
{
  "name": "Social Media Content Scheduler",
  "nodes": [
    {
      "parameters": {
        "triggerTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "url": "https://yourblog.com/feed",
        "options": {}
      },
      "name": "RSS Read",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1,
      "position": [
        460,
        300
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o-mini",
        "prompt": "Write an engaging LinkedIn post (under 200 words) about this article: {{ $json.title }}. Add a hook, 3 key takeaways, and a question to the reader.",
        "options": {
          "temperature": 0.8
        }
      },
      "name": "OpenAI LinkedIn Post",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1,
      "position": [
        680,
        240
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o-mini",
        "prompt": "Turn this article into a 3-tweet thread with a strong first tweet and a link at the end: {{ $json.title }}",
        "options": {
          "temperature": 0.8
        }
      },
      "name": "OpenAI Twitter Thread",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1,
      "position": [
        680,
        420
      ]
    },
    {
      "parameters": {
        "operation": "create",
        "text": "={{ $json.output }}"
      },
      "name": "LinkedIn Publish",
      "type": "n8n-nodes-base.linkedIn",
      "typeVersion": 2,
      "position": [
        900,
        240
      ]
    },
    {
      "parameters": {
        "operation": "create",
        "text": "={{ $json.output }}"
      },
      "name": "Twitter Publish",
      "type": "n8n-nodes-base.twitter",
      "typeVersion": 2,
      "position": [
        900,
        420
      ]
    }
  ],
  "connections": {
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "RSS Read",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Read": {
      "main": [
        [
          {
            "node": "OpenAI LinkedIn Post",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "OpenAI Twitter Thread",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI LinkedIn Post": {
      "main": [
        [
          {
            "node": "LinkedIn Publish",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Twitter Thread": {
      "main": [
        [
          {
            "node": "Twitter Publish",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}