AI 생성 LinkedIn 게시물 포함 인공 검토
이것은Social Media, Multimodal AI분야의자동화 워크플로우로, 19개의 노드를 포함합니다.주로 Code, Merge, Filter, HttpRequest, GoogleSheets 등의 노드를 사용하며. GPT-4, GoToHuman 및 Blotato를 사용한 AI 생성 LinkedIn 게시물 포함 인공 검토
- •대상 API의 인증 정보가 필요할 수 있음
- •Google Sheets API 인증 정보
- •OpenAI API Key
사용된 노드 (19)
{
"meta": {
"instanceId": "efb474b59b0341d7791932605bd9ff04a6c7ed9941fdd53dc4a2e4b99a6f9439",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "cebd910c-6c4b-4ff4-95d8-a9bd7f2e6bf0",
"name": "메모",
"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": "도구: 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": "메모1",
"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": "메모3",
"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": "메모4",
"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": "AI 에이전트: 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": "메모2",
"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
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 소셜 미디어, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
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.
이 워크플로우 공유