KI-generierte LinkedIn-Beiträge mit manueller Freigabe
Dies ist ein Social Media, Multimodal AI-Bereich Automatisierungsworkflow mit 19 Nodes. Hauptsächlich werden Code, Merge, Filter, HttpRequest, GoogleSheets und andere Nodes verwendet. Verwendung von GPT-4, GoToHuman und Blotato für KI-generierte LinkedIn-Beiträge mit manueller Freigabe
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •Google Sheets API-Anmeldedaten
- •OpenAI API Key
Verwendete Nodes (19)
Kategorie
{
"meta": {
"instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "cebd910c-6c4b-4ff4-95d8-a9bd7f2e6bf0",
"name": "Haftnotiz",
"type": "n8n-nodes-base.stickyNote",
"position": [
420,
-40
],
"parameters": {
"color": 5,
"width": 1200,
"height": 1140,
"content": "## ✅ Step 2 — Generate Caption with OpenAI\n\n### 1. Add Your OpenAI Credential\n- Go to **Credentials > OpenAI API**.\n- Paste your API key and save.\n- Make sure your model is set to `gpt-4.1` or similar.\n\n### 2. Workflow Logic\n- The `idea` is sent to an **AI Agent node**.\n- The prompt instructs the AI to generate a short, emoji-rich LinkedIn caption.\n- A **Parser node** structures the JSON output to extract just the caption.\n\n### 3. Save Caption\n- The AI-generated caption is written back to the Google Sheet in the `caption` column.\n- The `complete` column is also updated to “Yes”.\n\n---"
},
"typeVersion": 1
},
{
"id": "b8a2624c-e353-47af-b2c7-81d74155499d",
"name": "Werkzeug: Inject Creativity",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
800,
760
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e2be1cd1-158f-4599-ae5c-fbc0a39eb64e",
"name": "Parser: Extract JSON from Idea",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
980,
760
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"Caption\": \"\"\n }\n]\n"
},
"typeVersion": 1.2
},
{
"id": "f7456d62-8055-4d03-abc0-f4d633ca8e82",
"name": "openai",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
620,
780
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "gpt-4.1"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "ghJTvay8CvwXDsXz",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "f962953e-7f69-454d-a904-c9813db3a6c4",
"name": "Haftnotiz1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
-40
],
"parameters": {
"width": 980,
"height": 1140,
"content": "## ✅ Step 1 — Get Today’s Topic from Google Sheets\n\n### 1. Set Up Google Sheets Credential in n8n\n- Go to **Settings > Credentials > Google Sheets OAuth2**.\n- Authorize access to your Google account.\n- Make sure you’ve copied this Google Sheet: \n 👉 [Copy this sheet](https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/copy)\n\n### 2. Workflow Logic\n- A **Schedule Trigger** (or Manual Trigger for testing) runs daily.\n- A **Code Node** generates today’s date in ISO format.\n- The **Merge Node** filters to only return the row in the sheet that matches today’s date.\n- Result: You have today’s `idea` ready to process.\n\n---\n"
},
"typeVersion": 1
},
{
"id": "c539e883-f18d-49f3-980f-3b743145274a",
"name": "Haftnotiz3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1640,
-40
],
"parameters": {
"color": 3,
"width": 320,
"height": 1140,
"content": "### 1. Set Up GoToHuman\n- Go to [GoToHuman](https://gotohuman.com) and create an account.\n- Create a **Review Template** for content approvals.\n- In n8n, add your **GoToHuman credential** under **Credentials**.\n- Use the **reviewTemplateId** from your template in the workflow node.\n\n### 2. Workflow Logic\n- The caption is sent to the **Ask Human for approval** node (GoToHuman).\n- The approver sees the caption and can choose to **Approve** or **Reject**.\n- A **Filter node** ensures the workflow only continues if the caption is approved.\n\n---"
},
"typeVersion": 1
},
{
"id": "e39e9b93-f95e-4227-808f-031f30b4f579",
"name": "Haftnotiz4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1980,
-40
],
"parameters": {
"color": 4,
"width": 380,
"height": 1140,
"content": "## ✅ Step 4 — Publish to LinkedIn via Blotato\n\n### 1. Set Up Blotato\n- Go to [Blotato](https://blotato.com) and create an account.\n- Generate a **Blotato API Key** and get your **Account ID**.\n- Paste these into the **HTTP Request node** under headers/body:\n - Header: `blotato-api-key: YOUR_API_KEY`\n - Body:\n ```json\n {\n \"post\": {\n \"accountId\": \"YOUR_ACCOUNT_ID\",\n \"target\": { \"targetType\": \"linkedin\" },\n \"content\": {\n \"text\": \"{{ $('Ask Human for approval').item.json.responseValues.text.value }}\",\n \"platform\": \"linkedin\",\n \"mediaUrls\": []\n }\n }\n }\n ```"
},
"typeVersion": 1
},
{
"id": "5e73c568-4158-422c-b045-c208a5dc018b",
"name": "Daily Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-420,
480
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "f9c4b8af-412d-4057-825b-9c07f3bf96be",
"name": "Test",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-460,
740
],
"parameters": {},
"typeVersion": 1
},
{
"id": "719914a6-a513-4cb7-9e73-c04a68be4239",
"name": "Get Today's Idea",
"type": "n8n-nodes-base.googleSheets",
"position": [
-120,
540
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/edit?usp=drivesdk",
"cachedResultName": "SampleTopics"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "WsgMg14OYooIdvn7",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "5f200d10-1bf3-4325-945f-1f49e22a77ce",
"name": "Output Today's Date",
"type": "n8n-nodes-base.code",
"position": [
40,
660
],
"parameters": {
"jsCode": "const today = new Date();\ntoday.setHours(0, 0, 0, 0); // Normalize to start of day\n\nreturn [\n {\n json: {\n today: today.toISOString().split('T')[0] // e.g., \"2025-07-30\"\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "7885628d-316a-4c9d-b6b2-0a476c289b03",
"name": "Keep only todays idea",
"type": "n8n-nodes-base.merge",
"position": [
180,
440
],
"parameters": {
"mode": "combine",
"options": {},
"advanced": true,
"mergeByFields": {
"values": [
{
"field1": "Date",
"field2": "today"
}
]
}
},
"typeVersion": 3.2
},
{
"id": "e1be8e6f-cf27-4afd-b817-819ec952de4d",
"name": "KI-Agent: Create caption for linkedin",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
680,
500
],
"parameters": {
"text": "=Idea: {{ $json.idea }}",
"options": {
"systemMessage": "=your job is to expand on the idea and turn it into a social media post that will capture users attention. keep it to two sentances using emoji's\n\nOutupt like this. \n\n[\n {\n \"Caption\": \"\"\n }\n]"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.9
},
{
"id": "f138a0e6-aec9-4030-9567-c3b18e388270",
"name": "Mark complete in google sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1320,
440
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('Get Today's Idea').item.json.Date }}",
"complete": "Yes"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "idea",
"type": "string",
"display": true,
"required": false,
"displayName": "idea",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "caption",
"type": "string",
"display": true,
"required": false,
"displayName": "caption",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "complete",
"type": "string",
"display": true,
"required": false,
"displayName": "complete",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Date"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/edit?usp=drivesdk",
"cachedResultName": "SampleTopics"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "WsgMg14OYooIdvn7",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "148a16f9-7bc9-4bf2-8676-520c1fedce07",
"name": "Save caption to google sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1320,
700
],
"parameters": {
"columns": {
"value": {
"Date": "={{ $('Get Today's Idea').item.json.Date }}",
"caption": "={{ $json.output[0].Caption }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "id",
"defaultMatch": true,
"canBeUsedToMatch": true
},
{
"id": "Date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "idea",
"type": "string",
"display": true,
"required": false,
"displayName": "idea",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "caption",
"type": "string",
"display": true,
"required": false,
"displayName": "caption",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "complete",
"type": "string",
"display": true,
"required": false,
"displayName": "complete",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "STATUS",
"type": "string",
"display": true,
"required": false,
"displayName": "STATUS",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Date"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1oC3dbRkGF_bSIKuFKtSJsYS-ZypT2uk7jPsAni8y154/edit?usp=drivesdk",
"cachedResultName": "SampleTopics"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "WsgMg14OYooIdvn7",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "78f79c4f-067d-4388-8a53-7b298d15c342",
"name": "Ask Human for approval",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
1680,
420
],
"webhookId": "6d42cd89-8e27-4747-8636-87d6adcd9f77",
"parameters": {
"fields": {
"value": {
"text": "={{ $json.caption }}"
},
"schema": [
{
"id": "text",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "text (text)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"text"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"additionalFields": {},
"reviewTemplateID": {
"__rl": true,
"mode": "list",
"value": "RoUEcfHxQX17pM8Roj7i",
"cachedResultName": "My Review Step (RoUEcfHxQX17pM8Roj7i)"
}
},
"credentials": {
"gotoHumanApi": {
"id": "DDAwJMAARwFCF0fA",
"name": "gotoHuman account"
}
},
"typeVersion": 1
},
{
"id": "0e72f635-22b8-432a-b90f-4d9c0ad7a94f",
"name": "Keep only if approved",
"type": "n8n-nodes-base.filter",
"position": [
1820,
720
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "4966b55f-f10b-415a-bc81-f8fedfc60573",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.response }}",
"rightValue": "approved"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "c433a60f-b108-42fe-9eb0-78bd280ab68c",
"name": "Post to Linkedin",
"type": "n8n-nodes-base.httpRequest",
"position": [
2140,
700
],
"parameters": {
"url": "https://backend.blotato.com/v2/posts",
"method": "POST",
"options": {},
"jsonBody": "={\n \"post\": {\n \"accountId\": \"your account id\",\n \"target\": {\n \"targetType\": \"linkedin\"\n },\n \"content\": {\n \"text\": \"{{ $('Ask Human for approval').item.json.responseValues.text.value }}\",\n \"platform\": \"linkedin\",\n \"mediaUrls\": []\n }\n }\n}\n",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "blotato-api-key",
"value": "your api key"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "91e7834b-4280-40e4-aad1-4015c21ef33a",
"name": "Haftnotiz2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-580,
-280
],
"parameters": {
"color": 6,
"width": 2940,
"height": 200,
"content": "# 🤖 Automated LinkedIn Posting with OpenAI, GoToHuman, and Blotato\n\n## 📬 Need Help?\n\nMessage me on [LinkedIn](https://www.linkedin.com/in/robert-breen-29429625/) \nor email me at **robert@ynteractive.com**\n"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"f9c4b8af-412d-4057-825b-9c07f3bf96be": {
"main": [
[
{
"node": "719914a6-a513-4cb7-9e73-c04a68be4239",
"type": "main",
"index": 0
},
{
"node": "5f200d10-1bf3-4325-945f-1f49e22a77ce",
"type": "main",
"index": 0
}
]
]
},
"f7456d62-8055-4d03-abc0-f4d633ca8e82": {
"ai_languageModel": [
[
{
"node": "AI Agent: Create caption for linkedin",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"5e73c568-4158-422c-b045-c208a5dc018b": {
"main": [
[
{
"node": "719914a6-a513-4cb7-9e73-c04a68be4239",
"type": "main",
"index": 0
}
]
]
},
"719914a6-a513-4cb7-9e73-c04a68be4239": {
"main": [
[
{
"node": "7885628d-316a-4c9d-b6b2-0a476c289b03",
"type": "main",
"index": 0
}
]
]
},
"5f200d10-1bf3-4325-945f-1f49e22a77ce": {
"main": [
[
{
"node": "7885628d-316a-4c9d-b6b2-0a476c289b03",
"type": "main",
"index": 1
}
]
]
},
"0e72f635-22b8-432a-b90f-4d9c0ad7a94f": {
"main": [
[
{
"node": "c433a60f-b108-42fe-9eb0-78bd280ab68c",
"type": "main",
"index": 0
}
]
]
},
"7885628d-316a-4c9d-b6b2-0a476c289b03": {
"main": [
[
{
"node": "AI Agent: Create caption for linkedin",
"type": "main",
"index": 0
}
]
]
},
"78f79c4f-067d-4388-8a53-7b298d15c342": {
"main": [
[
{
"node": "0e72f635-22b8-432a-b90f-4d9c0ad7a94f",
"type": "main",
"index": 0
}
]
]
},
"Tool: Inject Creativity": {
"ai_tool": [
[
{
"node": "AI Agent: Create caption for linkedin",
"type": "ai_tool",
"index": 0
}
]
]
},
"148a16f9-7bc9-4bf2-8676-520c1fedce07": {
"main": [
[
{
"node": "78f79c4f-067d-4388-8a53-7b298d15c342",
"type": "main",
"index": 0
}
]
]
},
"e2be1cd1-158f-4599-ae5c-fbc0a39eb64e": {
"ai_outputParser": [
[
{
"node": "AI Agent: Create caption for linkedin",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"AI Agent: Create caption for linkedin": {
"main": [
[
{
"node": "148a16f9-7bc9-4bf2-8676-520c1fedce07",
"type": "main",
"index": 0
},
{
"node": "f138a0e6-aec9-4030-9567-c3b18e388270",
"type": "main",
"index": 0
}
]
]
}
}
}Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Experte - Soziale Medien, Multimodales KI
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Robert Breen
@rbreenProfessional services consultant with over 10 years of experience solving complex business problems across industries. I specialize in n8n and process automation—designing custom workflows that integrate tools like Google Calendar, Airtable, GPT, and internal systems. Whether you need to automate scheduling, sync data, or streamline operations, I build solutions that save time and drive results.
Diesen Workflow teilen