AutomationFlowsAI & RAG › Auto-publish Web Articles as Social Posts for X, Linkedin, Reddit & Threads…

Auto-publish Web Articles as Social Posts for X, Linkedin, Reddit & Threads…

Original n8n title: Auto-publish Web Articles as Social Posts for X, Linkedin, Reddit & Threads with Gemini AI

ByJuan Carlos Cavero Gracia @carlosgracia on n8n.io

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Event trigger★★★★☆ complexityAI-powered12 nodesAgentGoogle Gemini ChatHTTP Request ToolOutput Parser StructuredN8N Nodes Upload PostReddit
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → HTTP Request Tool 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": "jwYT7Sha0ieBnEvJ",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Auto-Publish Web Articles as Social Posts for X, LinkedIn, Reddit & Threads with Gemini AI",
  "tags": [],
  "nodes": [
    {
      "id": "82e99e4a-bf53-46a5-b713-8ae45baad177",
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -180,
        20
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "71004fb4-8c03-42c4-a020-6522a6b7f9ae",
      "name": "Set Input Data",
      "type": "n8n-nodes-base.set",
      "position": [
        40,
        20
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "ab234870-d90d-4b54-8916-5084080e1ad8",
              "name": "workflow_url",
              "type": "string",
              "value": "https://n8n.io/workflows/5128-auto-publish-web-articles-as-social-posts-for-x-linkedin-reddit-and-threads-with-gemini-ai/"
            },
            {
              "id": "9cdf7369-78c9-4abd-8f26-f7c14694b64b",
              "name": "upload-post_user",
              "type": "string",
              "value": "testttt"
            },
            {
              "id": "6268ce66-0e20-4461-a2fa-cb6e53a8cd0c",
              "name": "ScreenshotOne_API_KEY",
              "type": "string",
              "value": "Add_key_screenshotOne"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "44d76415-e94e-49c3-be1e-f53db96f9c11",
      "name": "Social Media Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        260,
        20
      ],
      "parameters": {
        "text": "=**Role and Persona:**\nYou are an expert Social Media Content Creator and an n8n Evangelist. Your persona is that of a passionate \"builder,\" a creator who enjoys solving real-world problems with technology and sharing their creations with the community. You are approachable, a bit nerdy, and excited to show what's possible with tools like n8n.\n\n**Core Mission:**\nYour mission is to analyze an n8n workflow and generate exciting, engaging, and platform-specific posts for LinkedIn, Twitter, and Threads. The goal is to make automation seem useful, accessible, and cool, inspiring others to try it and build their own solutions.\n\n**Tone and Style to Emulate (Key Principles):**\nTo sound like your creator, follow these principles derived from their posts:\n\n1.  **Personal Narrative (The \"Why\"):** Start with a personal story or problem. (\"*I was tired of...*\", \"*Since I really like...*\", \"*After another entertaining weekend...*\"). People connect with real problems.\n2.  **\"Maker\" Mindset:** Talk about \"creating,\" \"building,\" \"a weekend project.\" This shows passion and a hands-on approach. Use a casual and energetic tone.\n3.  **Problem -> Solution:** Structure the post clearly. First, present a relatable problem. Then, show how this workflow is the brilliant solution.\n4.  **Show, Don't Just Tell:** Give a powerful, concrete example of what the workflow can do. (e.g., \"*for example: 'Get me the apartments with two naturally lit rooms...'*\").\n5.  **Technical Transparency (without being boring):** Casually mention key technologies (n8n, Gemini, APIs, etc.). This adds credibility and piques the curiosity of other developers.\n6.  **Community Call-Out:** Actively invite interaction. Ask direct questions: *\u201cWhat do you think?\u201d, \u201cWhat would you add?\u201d, \u201cTry it out and see if you can come up with new use cases\u201d*. Use phrases like \"I'm reading your comments.\"\n7.  **Clear Call to Action (CTA):** End with a specific request: share, try the workflow, vote for features, etc. (*\"And if you like it, please share it\"*).\n8.  **Use of Emojis:** Use emojis but 1 or 2 in all post to add personality and guide the reader.\n9. If the workflow creator is Carlos Gracia talk like I created the workflow, else it's another person\n10. Add the link to the workflow always in the end {{ $json.workflow_url }}\n\n---\n\n**Content Creation Process:**\n\n**Step 1: Deep Workflow Analysis & Rigorous Image Extraction**\n*   **URL to analyze:** `{{ $json.workflow_url }}`\n*   Use your tool to extract the full HTML content from the URL.\n\n*   **Find the Workflow Image (CRUCIAL - Follow these steps in order):**\n    1.  **Primary Method:** First, search the HTML for the `<meta property=\"og:image\" content=\"...\">` tag. Extract the URL from the `content` attribute.\n    2.  **Verification & Fallback Method:** The `og:image` is often generic. You must verify if it actually shows an n8n workflow diagram (nodes and connections). If it doesn't, or if it's not found, you MUST find the correct image. The correct image is the main diagram of the workflow. Search all `<img>` tags in the HTML and identify the one whose `src` URL points to this diagram.\n        *   **Clues for the correct image:**\n            *   Its `src` or `alt` attribute might contain keywords like `workflow`, `diagram`, `template`, `graph`.\n            *   It is likely the largest, most central content image on the page, not a small logo, icon, or author avatar.\n            *   It might be inside a `<div>` with a class like `workflow-canvas`, `workflow-diagram`, or `template-image`.\n    3.  **Final Decision:** Use the URL of the actual workflow diagram for `imageUrl`. If after this rigorous search you cannot find an image that is clearly a workflow diagram, set `imageUrl` to an empty string `\"\"`.\n\n*   **Analyze the Text Content:**\n    *   **The Core Problem:** What frustration or tedious task does this workflow eliminate?\n    *   **The Magic Solution:** What is the end result for the user? What superpower does it grant them?\n    *   **The Key Ingredients:** What important nodes or services does it use (OpenAI, Google Sheets, a specific API, etc.)?\n\n**Step 2: Ideation of the Post's Angle**\n*   Based on the **Key Principles** of Tone and Style, choose the best angle.\n*   Ask yourself: What's the most interesting story here? Is it a massive time-saver? A new capability that was previously impossible? A fun solution to a niche problem?\n\n**Step 3: Platform-Specific Content Creation**\n\n*   **For LinkedIn:**\n    *   Create a more elaborate post **in Spanish**. Start with a strong narrative hook (the personal problem).\n    *   Develop the solution over several paragraphs. Use bullet points (\u2022) to highlight benefits or features.\n    *   Maintain a professional yet approachable tone.\n    *   End with an open-ended question to encourage discussion and a clear CTA.\n    *   Not emotes\n    *   Use relevant hashtags like `#n8n`, `#Automatizaci\u00f3n`, `#NoCode`, `#API`, `#Productividad`.\n    *   Ejemplos de post de linkedin mios para que copies el lenguaje, tono, expresiones todo: \n\n\"Hoy os quiero compartir un nuevo workflow de n8n que estuve haciendo el finde para generar carruseles de historias con la nueva api de Openai gpt-image-1.\n\nLo que hace es generar 5 im\u00e1genes y mantiene la consistencia de los mismos personajes u objetos en las 5, luego autom\u00e1ticamente lo sube a Instagram y Tiktok con una canci\u00f3n de fondo. En Tiktok sobre todo est\u00e1 funcionando bastante bien este tipo de contenido, aqu\u00ed os dejo un ejemplo:\n\nhttps://lnkd.in/dHB8kJfz\n\nY aqu\u00ed ten\u00e9is el t\u00e9mplate por si quer\u00e9is probarlo: \n\nhttps://lnkd.in/d_3fGzDt\n\nA ver si a alguien se le ocurre alg\u00fan uso interesante/comercial a parte del de contar historias, igual para hacer anuncios tambi\u00e9n puede servir, os leo.\"\n\n\"Hoy os quer\u00eda compartir una automatizaci\u00f3n de n8n que tenemos para las facturas que nos est\u00e1 quitando mucho curro.\n\nLo que hace es escucha los correos entrantes y cuando le llega uno con una factura, coge el pdf lo pasa por chatgpt para coger los valores lo sube a drive y actualiza un excel con los datos, fecha, concepto, precio y link a la factura.\n\nlink\n\"\n\"\nComo me gusta mucho comer fuera, los bares y el turismo gastron\u00f3mico, y como adem\u00e1s me gustan mucho los datos, he cogido todos los datos posibles de todos los restaurantes y bares de Madrid, Barcelona y M\u00e1laga (de momento), y he hecho una webapp con los 100 mejores. \n\nEsta selecci\u00f3n est\u00e1 basada solo en datos de Google Maps, rese\u00f1as y webs de todo tipo, procesados y filtrados con Gemini 2.5 flash. Los datos han sido recogidos con la API de google places y las b\u00fasquedas de Gemini (Google <3) .\n\nYa estaba cansado de tener que estar todo el d\u00eda leyendo y filtrando google maps a mano para buscar sitios donde comer o cenar y de los fooders de Tiktok con opiniones sesgadas. \n\nLa idea es ir mejorando la aplicaci\u00f3n e ir a\u00f1adiendo nuevas funcionalidades que se os ocurran, para ello he puesto un bot\u00f3n de solicitar funcionalidad donde la gente puede ir votando qu\u00e9 feature nueva quiere.\n\n\u00bfQu\u00e9 os parece, qu\u00e9 a\u00f1adir\u00edais? os leo \n\nY si os mola please compartidlo \n\nhttps://www.topbares.com/\n\"\n\"\nBuenas gente, hoy os quer\u00eda compartir un workflow de n8n que he creado (modificado), he cogido uno de los m\u00e1s usados del mes pasado que genera reels con IA y le he enganchado upload-post para subir el contenido a todas las redes: \n\nhttps://lnkd.in/dqSeZ7is\n\nEst\u00e1 rankeando bastante bien este mes en el ranking de las templates de n8n m\u00e1s usadas, utiliza Openai, FLux y Kling para generar el contenido, solo le tienes que pasar varias ideas en un excel y el va generando los videos y subiendolos.\n\"\n\n\"\nHe actualizado la template de n8n para a\u00f1adirle Youtube, en cuanto nos aprueben la verificaci\u00f3n de Facebook lo a\u00f1adir\u00e9 tambi\u00e9n, y as\u00ed puedes subir tu contenido a todas las redes sociales a la vez, con solo subir al drive el video: \n\nhttps://lnkd.in/d-5hhuB2\n\nTambi\u00e9n hemos creado librer\u00edas en node y python para que los devs pod\u00e1is integrar la subida en vuestros pipelines muy f\u00e1cilmente : \n\nhttps://lnkd.in/dWSRPqQD\n\nSe os ocurre alguna automatizaci\u00f3n m\u00e1s que a\u00f1adir o alguna feature para facilitar las subidas a redes? os leo.\n\"\n\"\nHoy os quer\u00eda hablar de otro SaaS que tenemos: https://upload-post.com \n\nB\u00e1sicamente es una API que te permite subir f\u00e1cilmente post, reels, im\u00e1genes ect a casi todas las redes sociales: Tiktok, Instagram, Facebook, YouTube , Twitter y Linkedin\n\nSolo hay que conectar las cuentas, generar un token y listo! ya solo con una petici\u00f3n subes a todas las redes tu post. \n\nAdem\u00e1s tenemos integraci\u00f3n con n8n y make y 10 subidas gratis al mes para que pruebes.\n\nLas \u00fanicas alternativas del mercado que te dejan integrar con API (que yo conozca son Ayrshare y Hootsuite) y parten de un plan mensual de 150 d\u00f3lares.\n\nNosotros hemos hecho planes mucho m\u00e1s asequibles. echadle un vistazo!\n\n\"\n\n*   **For Twitter/X:**\n    *   Create a thread **in English** .\n    *   **If it's a thread:**\n        *   Tweet 1: The hook with the image. Present the problem and solution explosively. (e.g., \"I built an n8n workflow that does [X]. Goodbye to [problem]. \ud83e\uddf5\ud83d\udc47\")\n        *   Tweet 2-3: Briefly explain how it works and why it's useful.\n        *   Final Tweet: The CTA and community invitation.\n    *   Use concise hashtags: `#n8n`, `#automation`, `#dev`.\nThe system is designed to intelligently create threads on X (formerly Twitter) by automatically splitting your text while respecting any formatting you've already done. Here\u2019s the step-by-step logic:\nSplitting by Paragraphs (Primary Method):\nThe function first looks for two or more newlines (i.e., a blank line) between blocks of text. It considers each of these blocks as a separate, intended tweet in your thread.\nExample: If you write two paragraphs separated by a blank line, they will become the first and second tweets in the thread.\nHandling Overly Long Tweets:\nIf any of these individual \"tweets\" are still longer than the 280-character limit, the system will try to split them further using these rules in order:\nSplitting by Line Breaks: It will first try to split the long text by single newline characters. This is useful for lists or text with intentional line breaks.\nSplitting by Words: As a last resort, if a single line is still too long, it will be broken up by words to ensure it fits within the character limit.\n\n\n*   **For Threads:**\n    *   The style is similar to Twitter, but allows for a slightly more conversational and relaxed tone. Create the post **in Spanish**.\n    *   You can frame it as a \"dev note\" or a \"behind the scenes\" look at the workflow.\n    *   It's a good place to ask direct questions and respond to comments more fluidly.\n    *  Mximun 500 characters long\n    *  Don't need create thread like x here is more long\n\n\n*   For Reddit  *\n\nCopy this lenguage and style no emotes, Always in English, need a title too for the post: \n\n\"Hi everyone!\n\nI wanted to share a workflow I came across on YouTube that lets you generate videos with Veo 3 and publish them all by chatting with a Telegram agent.\n\nYou can ask the agent to create the video, brainstorm ideas, review it, and then post it to TikTok, Facebook, YouTube, etc.\n\nHere\u2019s the video, showing the workflow demo and how to configure\n\nhttps://www.youtube.com/watch?v=v52xbWp1LFk\n\nAnd here it's the workflow code:\n\nlink\n\"\n\"Hey folks,\n\nJust ran into an n8n template that lets you turn full-length podcast videos into short, TikTok-ready clips in one go. It uses Gemini AI to pick the best moments, slaps on captions, mixes in a \u201ckeep-them-watching\u201d background video (think Minecraft parkour or GTA gameplay), and even schedules the uploads straight to your TikTok account. All you do is drop two YouTube links: the podcast and the background filler. From there it handles download, highlight detection, editing, catchy-title generation, and hands-free posting.\n\nThe cool part: everything runs on free tiers. You only need n8n plus free accounts on Assembly, Andynocode, and Upload-Posts. Perfect if you\u2019re already making money on TikTok or just want to squeeze more reach out of your podcast backlog.\n\nLink here if you want to poke around:\nhttps://n8n.io/workflows/4568-transform-podcasts-into-viral-tiktok-clips-with-gemini-ai-and-auto-posting/\n\nCurious to hear if anyone\u2019s tried it yet or has tweaks to make it even smoother.\"\n\n\n**Step 4: Output Format**\n\n**CRITICAL!** You must return the final result as a series of separate JSON objects, one for each platform. Strictly adhere to this format for each platform.\n\n`{\"platform\": \"linkedin\", \"content\": \"generated_content_in_spanish\", \"userId\": \"user_id\", \"imageUrl\": \"the_url_you_extracted_in_step_1\"}`\n`{\"platform\": \"twitter\", \"content\": \"generated_content_in_english\", \"userId\": \"user_id\", \"imageUrl\": \"the_url_you_extracted_in_step_1\"}`\n`{\"platform\": \"threads\", \"content\": \"generated_content_in_spanish\", \"userId\": \"user_id\", \"imageUrl\": \"the_url_you_extracted_in_step_1\"}`\n`{\"platform\": \"reddit\", \"title\": \"generated_title_in_english\", \"content\": \"generated_content_in_english\", \"userId\": \"user_id\", \"imageUrl\": \"the_url_you_extracted_in_step_1\"}`",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "5a2fd155-5960-430f-80d6-fe1c22588dc1",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        260,
        240
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro-preview-06-05"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "24a9d686-f277-4221-9bbc-09587dfdb210",
      "name": "HTTP Request1",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        400,
        340
      ],
      "parameters": {
        "url": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "d28a2def-981e-4f29-88a6-99cca3c94e60",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        500,
        240
      ],
      "parameters": {
        "jsonSchemaExample": "[\n{\"platform\": \"linkedin\", \"content\": \"generated_content_in_spanish\", \"userId\": \"user_id\", \"imageUrl\": \"optional_image_url\"},\n{\"platform\": \"twitter\", \"content\": \"generated_content_in_english\", \"userId\": \"user_id\", \"imageUrl\": \"optional_image_url\"},\n{\"platform\": \"threads\", \"content\": \"generated_content_in_spanish\", \"userId\": \"user_id\", \"imageUrl\": \"optional_image_url\"},\n{\"platform\": \"reddit\", \"title\": \"generated_title_in_english\", \"content\": \"generated_content_in_english\", \"userId\": \"user_id\", \"imageUrl\": \"optional_image_url\"}\n]"
      },
      "typeVersion": 1.2
    },
    {
      "id": "ee1ef72a-023a-4625-9fac-ff8b9685ae47",
      "name": "Upload Post X",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        1060,
        -160
      ],
      "parameters": {
        "user": "={{ $('Set Input Data').item.json['upload-post_user'] }}",
        "title": "={{ $('Social Media Agent').item.json.output[1].content }}",
        "photos": "=https://api.screenshotone.com/take?access_key={{ $('Set Input Data').item.json['ScreenshotOne_API_KEY'] }}&url={{ $('Set Input Data').item.json.workflow_url }}&format=jpg&block_ads=false&block_cookie_banners=false&block_banners_by_heuristics=false&block_trackers=true&delay=20&timeout=60&response_type=by_format&image_quality=80\n",
        "platform": [
          "x"
        ]
      },
      "credentials": {
        "uploadPostApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f7e77843-326c-4027-bfa4-81d41f87edb3",
      "name": "Upload Post Threads",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        1060,
        20
      ],
      "parameters": {
        "user": "={{ $('Set Input Data').item.json['upload-post_user'] }}",
        "title": "={{ $('Social Media Agent').item.json.output[2].content }}",
        "photos": "=https://api.screenshotone.com/take?access_key={{ $('Set Input Data').item.json['ScreenshotOne_API_KEY'] }}&url={{ $('Set Input Data').item.json.workflow_url }}&format=jpg&block_ads=false&block_cookie_banners=false&block_banners_by_heuristics=false&block_trackers=true&delay=20&timeout=60&response_type=by_format&image_quality=80",
        "platform": [
          "threads"
        ]
      },
      "credentials": {
        "uploadPostApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f96bf84e-a1b1-45bc-90f4-2b0f82d2c2dd",
      "name": "Upload Post Linkedin",
      "type": "n8n-nodes-upload-post.uploadPost",
      "position": [
        1060,
        200
      ],
      "parameters": {
        "user": "={{ $('Set Input Data').item.json['upload-post_user'] }}",
        "title": "={{ $('Social Media Agent').item.json.output[0].content }}",
        "photos": "=https://api.screenshotone.com/take?access_key={{ $('Set Input Data').item.json['ScreenshotOne_API_KEY'] }}&url={{ $('Set Input Data').item.json.workflow_url }}&format=jpg&block_ads=false&block_cookie_banners=false&block_banners_by_heuristics=false&block_trackers=true&delay=20&timeout=60&response_type=by_format&image_quality=80",
        "platform": [
          "linkedin"
        ]
      },
      "credentials": {
        "uploadPostApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "15c3ad6f-271c-43a9-b3cf-ce7794556b34",
      "name": "Upload Post Reddit",
      "type": "n8n-nodes-base.reddit",
      "position": [
        1060,
        400
      ],
      "parameters": {
        "text": "={{ $('Social Media Agent').item.json.output[3].content }}",
        "title": "={{ $('Social Media Agent').item.json.output[3].title }}",
        "subreddit": "n8n"
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ac776039-4202-4864-82d5-3e16bd29bce1",
      "name": "Wait to approve by user",
      "type": "n8n-nodes-base.wait",
      "position": [
        560,
        20
      ],
      "parameters": {
        "resume": "form",
        "options": {},
        "formTitle": "Review the posts ",
        "formFields": {
          "values": [
            {
              "fieldType": "dropdown",
              "fieldLabel": "decision",
              "fieldOptions": {
                "values": [
                  {
                    "option": "approve"
                  },
                  {
                    "option": "reject"
                  }
                ]
              },
              "requiredField": true
            }
          ]
        },
        "formDescription": "=### \ud83d\udd35 LINKEDIN\n{{ $('Social Media Agent').item.json.output[0].content }}\n\n---\n\n### \ud83c\uddfd TWITTER/X\n{{ $('Social Media Agent').item.json.output[1].content }}\n\n---\n\n### \ud83e\uddf5 THREADS\n{{ $('Social Media Agent').item.json.output[2].content }}\n\n---\n\n### \ud83e\udd16 REDDIT\n**Title:** {{ $('Social Media Agent').item.json.output[3].title }}\n**Content:** {{ $('Social Media Agent').item.json.output[3].content }}\n\nplease review de posts and approve it if you want to publish"
      },
      "typeVersion": 1.1
    },
    {
      "id": "5bd359c7-2350-4b76-8d71-d9d760e7d619",
      "name": "If approved publish",
      "type": "n8n-nodes-base.if",
      "position": [
        740,
        20
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "loose"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "394500db-496d-4c6e-9adb-59f3caead492",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('Wait to approve by user').item.json.decision }}",
              "rightValue": "=approve"
            }
          ]
        },
        "looseTypeValidation": "=true"
      },
      "typeVersion": 2.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a2efc16e-b9ae-4d94-87fb-208b45e09547",
  "connections": {
    "HTTP Request1": {
      "ai_tool": [
        [
          {
            "node": "Social Media Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Manual Trigger": {
      "main": [
        [
          {
            "node": "Set Input Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Input Data": {
      "main": [
        [
          {
            "node": "Social Media Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Social Media Agent": {
      "main": [
        [
          {
            "node": "Wait to approve by user",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If approved publish": {
      "main": [
        [
          {
            "node": "Upload Post X",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload Post Threads",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload Post Linkedin",
            "type": "main",
            "index": 0
          },
          {
            "node": "Upload Post Reddit",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Wait to approve by user": {
      "main": [
        [
          {
            "node": "If approved publish",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Social Media Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Social Media Agent",
            "type": "ai_outputParser",
            "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 contains community nodes that are only compatible with the self-hosted version of n8n.

Source: https://n8n.io/workflows/5128/ — 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

This workflow turns any URL (news article, blog post, or even an n8n workflow page) into a vertical short video with your AI avatar explaining it ready for TikTok, Instagram Reels, and YouTube Shorts.

HTTP Request, Agent, Google Gemini Chat +3
AI & RAG

This automated workflow template transforms a single product image into a complete professional advertisement video with dynamic motion and custom soundtrack. Perfect for e-commerce businesses, market

HTTP Request, Output Parser Structured, Tool Think +4
AI & RAG

Main. Uses httpRequest, agent, lmChatGoogleGemini, outputParserStructured. Event-driven trigger; 57 nodes.

HTTP Request, Agent, Google Gemini Chat +4
AI & RAG

This is an automated blog post generation system that: Researches topics using AI agents and web search tools Writes complete blog posts with proper SEO structure Generates custom images for each post

Output Parser Structured, Google Gemini Chat, HTTP Request Tool +11
AI & RAG

This n8n template automates complaint mining from unstructured text sources and turns raw user feedback into clear, actionable insights. It uses AI to identify recurring complaints, pain points, and t

Output Parser Structured, Chain Llm, Google Gemini Chat +5