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 →
{
"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
}
]
]
}
}
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Scraping Articles Dev.to Prod. Uses itemLists, stickyNote, nocoDb, scheduleTrigger. Scheduled trigger; 44 nodes.
Animal advocates & campaigners who want a weekly briefing on animal-related bills with clear, actionable steps—no manual research needed.
pfe-hunter-sophistique. Uses lmChatGroq, chatTrigger, chainLlm, httpRequest. Chat trigger; 24 nodes.
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
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