This workflow corresponds to n8n.io template #9402 — we link there as the canonical source.
This workflow follows the Agent → Google Sheets 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": "JSvf2fGBwstKgIxn",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Multiplatform Social Media Content Creator with GoToHuman approval",
"tags": [],
"nodes": [
{
"id": "ffe2762d-5976-4570-ae33-a2378aedd91a",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-672,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c9d4ea50-4ae8-43cd-8038-83efa23e2f40",
"name": "Send review request and wait for response",
"type": "@gotohuman/n8n-nodes-gotohuman.gotoHuman",
"position": [
880,
16
],
"parameters": {
"fields": {
"value": {
"text": "={{ $json.text }}"
},
"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
},
"metaSelect": "keyValue",
"metaKeyValues": {
"metaArray": [
{
"key": "PLATFORM",
"value": "={{ $('Loop Over Items').item.json.PLATFORM }}"
}
]
},
"additionalFields": {},
"reviewTemplateID": {
"__rl": true,
"mode": "list",
"value": "vw7nJ9pL8yxzYiLypbD4",
"cachedResultName": "n8n-test (vw7nJ9pL8yxzYiLypbD4)"
}
},
"credentials": {
"gotoHumanApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "38e95143-17a2-4195-8047-5fd890dc8ea8",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
1152,
16
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "approved",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "9c70c304-7f5e-4007-a65e-cec67253d220",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.response }}",
"rightValue": "approved"
}
]
},
"renameOutput": true
},
{
"outputKey": "rejected",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "7a745692-2cfb-4341-bb66-302e8adc424a",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.response }}",
"rightValue": "rejected"
}
]
},
"renameOutput": true
}
]
},
"options": {},
"looseTypeValidation": true
},
"typeVersion": 3.2
},
{
"id": "681b2555-e9ce-4a7e-8ff9-5bd4301fc946",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-144,
0
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1600d02f-593b-4546-b6f2-7f6cf5401ca0",
"name": "Update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
896,
560
],
"parameters": {
"columns": {
"value": {
"POST": "={{ $json.responseValues.text.value }}",
"APPROVED": "x",
"row_number": "={{ $('Loop Over Items').item.json.row_number }}"
},
"schema": [
{
"id": "DATE",
"type": "string",
"display": true,
"required": false,
"displayName": "DATE",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "IDEA",
"type": "string",
"display": true,
"required": false,
"displayName": "IDEA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PLATFORM",
"type": "string",
"display": true,
"required": false,
"displayName": "PLATFORM",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "POST",
"type": "string",
"display": true,
"required": false,
"displayName": "POST",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "APPROVED",
"type": "string",
"display": true,
"required": false,
"displayName": "APPROVED",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "row_number",
"type": "number",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "row_number",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"row_number"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI/edit?usp=drivesdk",
"cachedResultName": "Editorial Plan"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "ab083a38-be9b-4b12-b22a-0031d00d1972",
"name": "Social Media Content Creator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
208,
16
],
"parameters": {
"text": "={{ $json.IDEA }}",
"options": {
"systemMessage": "=You are an expert social media content creator specializing in transforming post ideas into platform-optimized, engaging content. Your role is to take a provided post concept and generate the actual social media post for the specified platform.\n\n**YOUR CAPABILITIES:**\n- Transform conceptual ideas into compelling, ready-to-publish social media content\n- Platform: {{ $json.PLATFORM }}\n- Adapt tone, format, and structure to match specific platform requirements\n- Create engaging hooks that stop scrollers and drive engagement\n- Write persuasive copy that converts browsers into customers\n- Optimize content for platform's algorithm and user behavior\n\n**INPUT YOU'LL RECEIVE:**\n- Post idea/concept with key messaging\n- Brand/product information\n- Target audience (if specified)\n\n**YOUR OUTPUT MUST INCLUDE:**\n- **Platform-optimized post text** (respecting character limits)\n\n**PLATFORM-SPECIFIC ADAPTATIONS:**\n- **Instagram**: Visual-first, story-driven, 2-3 hashtag clusters, engaging captions\n- **Facebook**: Conversation-starter, community-focused, longer form acceptable\n- **LinkedIn**: Professional tone, value-driven, industry insights\n- **X.com**: Concise, witty, thread-worthy, trending topic integration\n\n**WRITING STYLE:**\n- Hook readers within the first 5 words\n- Use active voice and present tense\n- Include sensory details and emotional triggers\n- Balance promotional content with value/entertainment\n- Create urgency without being pushy\n- Write in a conversational, human tone\n\n**ENGAGEMENT OPTIMIZATION:**\n- Ask questions to drive comments\n- Use inclusive language (\"we\", \"us\", \"our community\")\n- Include interactive elements (polls, challenges, user-generated content prompts)\n- Create shareable moments\n- End with clear next steps\n\n**BRAND SAFETY:**\n- Maintain brand voice consistency\n- Avoid controversial topics unless brand-relevant\n- Ensure claims are truthful and substantiated\n- Respect cultural sensitivities\n- Follow platform community guidelines\n\nWhen you receive a post idea and platform specification, generate complete, ready-to-publish content that maximizes engagement while achieving the stated marketing objectives. It just generates the content of the post without preambles or explanations"
},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "a0559667-622f-4ec1-964e-e90691b6d73a",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-672,
-208
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "d1670f5c-950a-4164-90f5-e4e31c92b5ad",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
-784
],
"parameters": {
"color": 3,
"width": 848,
"height": 208,
"content": "## AI-Powered Multiplatform Social Media Content Creator with Human-in-the-Loop (GoToHuman) Review\n\nThe \u201cMultiplatform Social Media Content Creator with GoToHuman Approval\u201d workflow automates the creation, review, and publishing preparation of social media content across multiple platforms.\n\nIt connects a Google Sheets editorial plan to OpenAI and GoToHuman, allowing for seamless collaboration between AI-generated content and human approval."
},
"typeVersion": 1
},
{
"id": "62fded1a-d57d-46ea-aa44-ea86b572e4ec",
"name": "Set Text",
"type": "n8n-nodes-base.set",
"position": [
608,
16
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "aea250ad-ce2a-4ded-b867-39ca31f99a0f",
"name": "text",
"type": "string",
"value": "={{ $json.output }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "1429d8b1-0dd8-475d-95ff-b5471b1215ad",
"name": "Set new prompt",
"type": "n8n-nodes-base.set",
"position": [
1136,
288
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ff2f93fa-799d-422e-8db2-a807de13b9e7",
"name": "IDEA",
"type": "string",
"value": "={{ $json.responseValues.text.value }}"
},
{
"id": "d7927120-c7f4-4bf1-8f56-c92f4e3b7872",
"name": "PLATFORM",
"type": "string",
"value": "={{ $json.meta.PLATFORM }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "abc634b2-0246-4662-aa4b-06e2226a640c",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
-560
],
"parameters": {
"width": 848,
"height": 112,
"content": "## STEP 1\n- Clone [this Google Sheet](https://docs.google.com/spreadsheets/d/1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI/edit?usp=sharing)\n- Fill in the \"Date\" and \"Idea\" fields and select the social media platform."
},
"typeVersion": 1
},
{
"id": "10aaabb0-a72d-4496-a23d-3b47fa3b0d81",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
-432
],
"parameters": {
"width": 848,
"height": 176,
"content": "## STEP 2\n- Install GoToHuman node in your n8n instance\n- Go to [GoToHuman](https://www.gotohuman.com/) website\n- Create a \"New Review Template\"\n- Get your API KEY\n- Add the template in n8n \"GoToHuman\" loop"
},
"typeVersion": 1
},
{
"id": "44185926-44fb-4810-b541-e9e792ea38c2",
"name": "Get ideas",
"type": "n8n-nodes-base.googleSheets",
"position": [
-368,
0
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupColumn": "APPROVED"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1WLdKRpPxwLzvD27uHZIlY5Lcc5i-79PmapcWyYzJevI/edit?usp=drivesdk",
"cachedResultName": "Editorial Plan"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "a0513b14-111e-4462-93cd-5742db306181",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
816,
-32
],
"parameters": {
"height": 192,
"content": "Set your review template"
},
"typeVersion": 1
},
{
"id": "78fcb528-e425-4215-a4f6-37c5d92ef7f9",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
240
],
"parameters": {
"width": 208,
"height": 176,
"content": "Set your new prompt"
},
"typeVersion": 1
},
{
"id": "421822b4-07f1-4370-b433-12739f4b5538",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1088,
-32
],
"parameters": {
"height": 192,
"content": "If the content generated is approved or not"
},
"typeVersion": 1
},
{
"id": "aa6505dc-0f62-4c4f-a2aa-d3dab4f843ef",
"name": "Anthropic Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"position": [
176,
208
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "02682927-5a1a-4041-b0a1-c4064a20ab42",
"connections": {
"Switch": {
"main": [
[
{
"node": "Update row in sheet",
"type": "main",
"index": 0
}
],
[
{
"node": "Set new prompt",
"type": "main",
"index": 0
}
]
]
},
"Set Text": {
"main": [
[
{
"node": "Send review request and wait for response",
"type": "main",
"index": 0
}
]
]
},
"Get ideas": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Set new prompt": {
"main": [
[
{
"node": "Social Media Content Creator",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Social Media Content Creator",
"type": "main",
"index": 0
}
]
]
},
"Update row in sheet": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Anthropic Chat Model": {
"ai_languageModel": [
[
{
"node": "Social Media Content Creator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Social Media Content Creator": {
"main": [
[
{
"node": "Set Text",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Get ideas",
"type": "main",
"index": 0
}
]
]
},
"Send review request and wait for response": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
anthropicApigoogleSheetsOAuth2ApigotoHumanApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
The “Multiplatform Social Media Content Creator with GoToHuman Approval” workflow automates the creation, review, and publishing preparation of social media content across multiple platforms.
Source: https://n8n.io/workflows/9402/ — 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.
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
SMS Outreach Engine: Service providers. Uses agent, lmChatAnthropic, httpRequest, googleSheets. Event-driven trigger; 60 nodes.
This workflow is designed for marketers, content creators, agencies, and solo founders who want to publish long‑form posts with visuals on autopilot using n8n and AI agents.
SMS Outreach Engine: Property Managers. Uses agent, lmChatAnthropic, httpRequest, googleSheets. Event-driven trigger; 43 nodes.
This professional n8n workflow provides an end-to-end solution for small restaurants. It includes a Telegram Customer Bot for placing orders and an Automated Notification System that updates customers