AutomationFlowsWeb Scraping › Auto-generate and Post Social Media Content to Bluesky Using Groq LLM

Auto-generate and Post Social Media Content to Bluesky Using Groq LLM

ByMehdi @mlstudio on n8n.io

Unlock the power of automation with the Automatically Generate Content and Post to Bluesky with LLM Workflow, an n8n-powered solution that uses Large Language Model (LLM) APIs to create engaging content and seamlessly posts it to Bluesky. Say goodbye to manual content creation…

Cron / scheduled trigger★★★★☆ complexityAI-powered18 nodesHTTP RequestGroq ChatStop And ErrorChain Llm
Web Scraping Trigger: Cron / scheduled Nodes: 18 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Chainllm → HTTP Request 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": "GWZAhBLEL8cESN3X",
  "name": "bsky_social_llm_n8n_workflow",
  "tags": [],
  "nodes": [
    {
      "id": "b1da191f-0a92-4b3d-abd5-31256f4de696",
      "name": "Create Bluesky Session",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        -1780,
        340
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "b9f1e764-a3f9-4355-939b-cd3f7dc0e366",
      "name": "Post to Bluesky",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        440,
        280
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "616a8e36-a5a8-465a-a5d5-d9a27303a77d",
      "name": "Define Credentials",
      "type": "n8n-nodes-base.set",
      "position": [
        -1980,
        340
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "0f6b0c15-3a45-48cc-904f-03755434b043",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2360,
        340
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "35e4ffe8-5c83-4044-9b48-e16cd78727a0",
      "name": "Groq Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGroq",
      "position": [
        -1360,
        460
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2510127c-7487-4268-af8d-4dbc05ed02e3",
      "name": "HTTP error",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -320,
        360
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 4.2
    },
    {
      "id": "c49bb142-ea94-4992-a823-25854650472b",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        -680,
        460
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "06b82e37-fefd-4aa2-b1a0-b0c99ae0ac28",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        -60,
        360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "f20bf10a-2f86-440f-bb67-d732ea9f4b57",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1980,
        500
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5a6947a0-f449-422c-a27c-41847158b72e",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1500,
        940
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a7e6b13b-7fe7-45f0-bcbe-71a853e120d5",
      "name": "LLM Chain",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        -1460,
        280
      ],
      "parameters": {},
      "retryOnFail": true,
      "typeVersion": 1.5
    },
    {
      "id": "15ce7aa5-1f58-47a2-b8b1-911fb9487eb4",
      "name": "Execution Count Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -900,
        260
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "aace2c31-743c-4f72-8a8a-5f5fd3027d53",
      "name": "Execution Count Check",
      "type": "n8n-nodes-base.if",
      "position": [
        -680,
        260
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "08b1e018-b7f3-4f3f-a3cd-3a0fedf08b57",
      "name": "Check if JSON is Valid",
      "type": "n8n-nodes-base.if",
      "position": [
        -900,
        460
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "7021bc4c-cda6-4fc8-bd83-0afd43186fb8",
      "name": "Code code to cap posts at 300 characters",
      "type": "n8n-nodes-base.code",
      "position": [
        -780,
        40
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "1e7351eb-296c-4350-9c53-413c0143efb9",
      "name": "Execution Count Code 2",
      "type": "n8n-nodes-base.code",
      "position": [
        -900,
        700
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "517b3125-0595-43de-843d-38ef5bf47878",
      "name": "Execution Count Check 2",
      "type": "n8n-nodes-base.if",
      "position": [
        -660,
        700
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "d3cbc8e0-4ace-4e71-9339-addddf4a2641",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1460,
        580
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8989183f-f964-4fb6-a40c-e6e15c30774c",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Execution Count Code 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "LLM Chain": {
      "main": [
        [
          {
            "node": "Code code to cap posts at 300 characters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP error": {
      "main": [
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Groq Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Post to Bluesky": {
      "main": [
        [],
        [
          {
            "node": "HTTP error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Define Credentials",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Define Credentials": {
      "main": [
        [
          {
            "node": "Create Bluesky Session",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execution Count Code": {
      "main": [
        [
          {
            "node": "Execution Count Check",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execution Count Check": {
      "main": [
        [
          {
            "node": "HTTP error",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Post to Bluesky",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if JSON is Valid": {
      "main": [
        [
          {
            "node": "Execution Count Code",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Bluesky Session": {
      "main": [
        [
          {
            "node": "LLM Chain",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "HTTP error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execution Count Code 2": {
      "main": [
        [
          {
            "node": "Execution Count Check 2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execution Count Check 2": {
      "main": [
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP error",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code code to cap posts at 300 characters": {
      "main": [
        [
          {
            "node": "Check if JSON is Valid",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

Unlock the power of automation with the Automatically Generate Content and Post to Bluesky with LLM Workflow, an n8n-powered solution that uses Large Language Model (LLM) APIs to create engaging content and seamlessly posts it to Bluesky. Say goodbye to manual content creation…

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

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

Scraping Articles Dev.to Prod. Uses itemLists, stickyNote, nocoDb, scheduleTrigger. Scheduled trigger; 44 nodes.

Item Lists, Noco Db, HTTP Request +2
Web Scraping

Animal advocates & campaigners who want a weekly briefing on animal-related bills with clear, actionable steps—no manual research needed.

OpenRouter Chat, HTTP Request, Information Extractor +3
Web Scraping

pfe-hunter-sophistique. Uses lmChatGroq, chatTrigger, chainLlm, httpRequest. Chat trigger; 24 nodes.

Groq Chat, Chat Trigger, Chain Llm +1
Web Scraping

This workflow is built for one core purpose: to maximize the return on your reading time. It turns your passive consumption of articles and highlights into an active system for generating original con

HTTP Request, Chain Llm, OpenRouter Chat
Web Scraping

Automate your n8n community job board monitoring with this intelligent workflow that scrapes, analyzes, and delivers opportunities straight to your inbox. Perfect for freelancers, agencies, and develo

HTTP Request, Output Parser Structured, OpenRouter Chat +2