8
n8n 한국어amn8n.com

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
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "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)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수19
카테고리2
노드 유형13
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

저자
Robert Breen

Robert Breen

@rbreen

Professional 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.

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34