AIgénérationLinkedIn帖子含人工审批
Ceci est unSocial Media, Multimodal AIworkflow d'automatisation du domainecontenant 19 nœuds.Utilise principalement des nœuds comme Code, Merge, Filter, HttpRequest, GoogleSheets. utilisationGPT-4、GoToHumanetBlotatodeAIgénérationLinkedIn帖子含人工审批
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (19)
Catégorie
{
"meta": {
"instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "cebd910c-6c4b-4ff4-95d8-a9bd7f2e6bf0",
"name": "Sticky Note",
"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": "Outil : Injecter de la créativité",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
800,
760
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e2be1cd1-158f-4599-ae5c-fbc0a39eb64e",
"name": "Parseur : Extraire JSON de l'idée",
"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": "Sticky Note1",
"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": "Sticky Note3",
"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": "Sticky Note4",
"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": "Déclencheur quotidien",
"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": "Obtenir l'idée du jour",
"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": "Afficher la date du jour",
"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": "Conserver uniquement l'idée du jour",
"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": "Agent IA : Créer une légende pour 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": "Marquer comme terminé dans 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": "Enregistrer la légende dans 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": "Demander l'approbation humaine",
"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": "Conserver uniquement si approuvé",
"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": "Publier sur 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": "Sticky Note2",
"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": "e1be8e6f-cf27-4afd-b817-819ec952de4d",
"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": "e1be8e6f-cf27-4afd-b817-819ec952de4d",
"type": "main",
"index": 0
}
]
]
},
"78f79c4f-067d-4388-8a53-7b298d15c342": {
"main": [
[
{
"node": "0e72f635-22b8-432a-b90f-4d9c0ad7a94f",
"type": "main",
"index": 0
}
]
]
},
"b8a2624c-e353-47af-b2c7-81d74155499d": {
"ai_tool": [
[
{
"node": "e1be8e6f-cf27-4afd-b817-819ec952de4d",
"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": "e1be8e6f-cf27-4afd-b817-819ec952de4d",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"e1be8e6f-cf27-4afd-b817-819ec952de4d": {
"main": [
[
{
"node": "148a16f9-7bc9-4bf2-8676-520c1fedce07",
"type": "main",
"index": 0
},
{
"node": "f138a0e6-aec9-4030-9567-c3b18e388270",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Réseaux sociaux, IA Multimodale
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
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.
Partager ce workflow