This workflow corresponds to n8n.io template #6486 — we link there as the canonical source.
This workflow follows the Agent → Form Trigger 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": "RUV5oY5uuXl1ZaFr",
"meta": {
"templateId": "3066",
"templateCredsSetupCompleted": true
},
"name": "The Post Factory",
"tags": [],
"nodes": [
{
"id": "02429ea7-be59-49e3-9d85-c1678ee64abd",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1568,
16
],
"parameters": {
"color": 7,
"height": 680,
"content": "## STEP 2 : Send approval Email"
},
"typeVersion": 1
},
{
"id": "9b6e2038-9f65-4e0f-b13d-6c09e8224ed6",
"name": "Social Media Content",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1008,
544
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"name\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"description\": {\n\t\t\t\"type\": \"string\"\n\t\t},\n\t\t\"platform_posts\": {\n\t\t\t\"type\": \"object\",\n\t\t\t\"properties\": {\n\t\t\t\t\"LinkedIn\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n \"image_suggestion\": {\n \t\t\t\"type\": \"string\"\n \t\t},\n\t\t\t\t\t\t\"post\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"call_to_action\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"X-Twitter\": {\n\t\t\t\t\t\"type\": \"object\",\n\t\t\t\t\t\"properties\": {\n \"video_suggestion\": {\n \t\t\t\"type\": \"string\"\n \t\t},\n \"image_suggestion\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"post\": {\n\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"hashtags\": {\n\t\t\t\t\t\t\t\"type\": \"array\",\n\t\t\t\t\t\t\t\"items\": {\n\t\t\t\t\t\t\t\t\"type\": \"string\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\"character_limit\": {\n\t\t\t\t\t\t\t\"type\": \"integer\"\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t\"additional_notes\": {\n\t\t\t\"type\": \"string\"\n\t\t}\n\t}\n}"
},
"typeVersion": 1.2
},
{
"id": "14327277-1e66-401d-9c74-8fdb6d76445f",
"name": "gpt-4o-mini",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1184,
496
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {
"responseFormat": "text"
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "56eb9c72-87fc-42b2-b576-be68b3a8c7d2",
"name": "gpt-4o LLM",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
656,
544
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o",
"cachedResultName": "gpt-4o"
},
"options": {
"responseFormat": "text"
}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "3a015f3f-a162-411a-85e8-e1f042d9c653",
"name": "LinkedIn Post",
"type": "n8n-nodes-base.linkedIn",
"onError": "continueRegularOutput",
"position": [
2704,
336
],
"parameters": {
"text": "={{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.post }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.call_to_action }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.hashtags }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.call_to_action }}",
"person": "VoJamciSbX",
"additionalFields": {},
"binaryPropertyName": "=data",
"shareMediaCategory": "IMAGE"
},
"credentials": {
"linkedInOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "aaef70d7-6029-4fae-afc1-72a6a0019b03",
"name": "Gmail User for Approval",
"type": "n8n-nodes-base.gmail",
"position": [
1632,
336
],
"parameters": {
"sendTo": "=emailAddress",
"message": "={{ $json.output }}",
"options": {
"limitWaitTime": {
"values": {
"resumeUnit": "minutes",
"resumeAmount": 45
}
}
},
"subject": "=FOR YOUR APPROVAL {{ $('Social Media Content Factory').item.json.output.name }} - {{ $('Social Media Content Factory').item.json.output.description }}",
"operation": "sendAndWait",
"approvalOptions": {
"values": {
"approvalType": "double"
}
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "9732c12e-903e-49ac-8d29-ffc4d78c7ff8",
"name": "Submit Social Post Details",
"type": "n8n-nodes-base.formTrigger",
"position": [
464,
336
],
"parameters": {
"options": {
"buttonLabel": "Generate Social Media Content"
},
"formTitle": "What do you feel like posting about today?",
"formFields": {
"values": [
{
"fieldLabel": "Topic",
"placeholder": "What is the title or topic you want to write the post about?",
"requiredField": true
},
{
"fieldLabel": "Keywords or Hashtags (optional)",
"placeholder": "Include any specific keywords or hashtags you'd like",
"requiredField": "={{ false }}"
},
{
"fieldLabel": "Link (optional)",
"placeholder": "=Would you like to redirect your audience to a link? Add it here."
},
{
"fieldType": "dropdown",
"fieldLabel": "Image",
"fieldOptions": {
"values": [
{
"option": "AI generated"
},
{
"option": "Image Link"
}
]
}
}
]
},
"formDescription": "=Welcome to your Social Media Assistant!\n\nJust provide the topic or title of your choice and an optional image, and the agent will generate platform-specific posts\n\nIf you're looking to grow your social media presence, this agent will save you time and make posting efficient."
},
"typeVersion": 2.2
},
{
"id": "899f658f-4faa-4ba7-ae02-cc8fb1d22c71",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
16
],
"parameters": {
"color": 7,
"width": 1120,
"height": 680,
"content": "## STEP 1 : Generate social media post - text"
},
"typeVersion": 1
},
{
"id": "a8075b2a-4cd0-4b0c-9b19-8bd58de449c0",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
1824,
16
],
"parameters": {
"color": 7,
"width": 668,
"height": 684,
"content": "## STEP 3: Generate social media post - image or choose an existing image online"
},
"typeVersion": 1
},
{
"id": "1da28ef3-9061-4e83-84e0-3502d254d63a",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
2528,
16
],
"parameters": {
"color": 7,
"width": 400,
"height": 684,
"content": "## STEP 4: Publish posts"
},
"typeVersion": 1
},
{
"id": "6dc47749-eb49-4351-89aa-50f2b6c035bb",
"name": "Social Media Content Factory",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
768,
336
],
"parameters": {
"text": "=You are a **content creation AI** for Saloni, a leading creator of **product management careers, growth, leadership** content.\n\nYour goal is to craft **engaging, platform-specific content** for LinkedIn, Twitter (X),. Each post must align with the platform\u2019s audience preferences, tone, and style while reflecting Saloni's expertise. The content should provide **value-driven insights**, tutorials, reviews, and discussions that resonate with tech professionals, product managers, leaders, startup founders and more.\n\n### Key Objectives:\n1. **Platform Optimization**: Tailor content format, tone, and hashtags to suit each platform\u2019s algorithm and audience engagement patterns.\n2. **SEO & Hashtags**: Use a mix of general automation hashtags and trending platform-specific hashtags to maximize reach.\n3. **Engagement Focus**: Create content that sparks interaction through tutorials, comparisons, reviews, or thought-provoking discussions.\n4. **Consistency**: Maintain a professional yet approachable tone across all platforms while adapting to audience needs.\n5. **Data-Driven Strategy**: Analyze trends and performance data to refine content strategy and hashtag usage.\n\n### General Hashtags:\n#WomenInTech #ProductManagement\n\n---\nYou have to generate content both for Linkedin and Twitter as mentioned below\n\n### Platform-Specific Guidelines:\n\n#### 1. LinkedIn\n - **Style**: Professional and insightful.\n - **Tone**: Business-oriented; focus on automation use cases, industry insights, and community impact.\n - **Content Length**: 3-4 sentences; concise but detailed.\n - **Hashtags**: #ProductManagement #WomenInTech\n - **Call to Action (CTA)**: Follow Saloni Malhotra for everything Product.\n\n\n#### 2. Twitter (X)\n - **Style**: Concise and impactful.\n - **Tone**: Crisp and engaging\n - **Hashtags**: #ProductManagement #WomenInTech\n - **CTA**: Drive quick engagement through retweets or replies (e.g., \u201cWhat\u2019s your go-to n8n workflow?\u201d).\n\n\n---\n\n### Content Creation Workflow:\nFor every post:\n1. Use the following input fields:\n - Topic/About the Post: {{ $json.Topic }}\n - Keywords/Focus Areas: {{ $json.formMode }}\n - Link (optional): {{ $json['Link (optional)'] }}\n\t\n2. Adapt the tone/style given below for each post and Ensure every post reflects this tone\nThoughtful, yet Playful\nYou dive deep into product management, tech, and career stuff, but you make it digestible. Even heavy topics like supply chain systems or Gini coefficients come with a wink. You never talk down to the reader, but you don\u2019t dumb things down either.\n\nHonest and Self-aware\nYou don\u2019t pretend to have it all figured out. You\u2019re open about things like burnout, privilege, career plateaus, or learning curves. That makes your content feel real, not performative.\n\nConfident without being boastful\nYou showcase your wins\u2014leading a GenAI solution, shipping customer portals, launching Dot\u2014but your tone says \u201cHere\u2019s what I learned\u201d, not \u201cLook how amazing I am.\u201d\n\nConversational but Structured\nYour posts often follow a structure\u2014hook, insight, story, takeaway\u2014but you write like you talk: sharp, witty, humane. Even when you rant, it feels like a smart friend venting over chai, not noise for engagement.\n\n\nLinkedin post should be about 500 words and twitter post under 150 characters\n\nFollow the provided JSON schema for your reponse.\n",
"options": {
"systemMessage": "=Use the provided tools to research the topic based on latest information. Todays date is {{ $now }}"
},
"promptType": "define",
"hasOutputParser": true
},
"retryOnFail": true,
"typeVersion": 1.7
},
{
"id": "88c548bf-40e5-4b89-aef0-9233c3f5bc9c",
"name": "Prepare Content Review Email",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1216,
336
],
"parameters": {
"text": "=Generate clean, modern HTML email content from the provided JSON data with these requirements:\n- Use table-based layout with inline CSS for email compatibility\n- Create card sections for each platform containing:\n \u2022 Title header (20px) \n \u2022 Post content (16px) \n \u2022 Video/image suggestions (italic 14px)\n \u2022 Hashtag list (inline-block with # prefix)\n \u2022 Emoji preservation where present\n \u2022 Call-to-action (bold 14px)\n- Structure using:\n \u2022 600px max-width container\n \u2022 20px padding between cards\n \u2022 Left-aligned text hierarchy\n \u2022 Arial/sans-serif font stack\n \u2022 Email-safe colors (#333 text, #555 secondary)\n- Include all platform-specific elements:\n \u25b6 Video/image suggestions in italic\n \u25b6 Hashtags as linked search terms\n \u25b6 Emojis in original positions\n \u25b6 Character limits for Twitter\n \u25b6 Platform-specific CTAs\n \u25b6 Visual quality reminders\n- Format hashtags as:\n <span style=\"display: inline-block; background: #f0f0f0; padding: 2px 6px; margin: 2px; border-radius: 4px;\">#tag</span>\n\nInput data: {{ $json.output.toJsonString() }}\n\nRemove ALL code blocks and comments. Output ONLY the raw HTML with:\n- Platform cards in JSON order\n- All data elements represented\n- Mobile-responsive tables\n- W3C-valid markup\n\n## Example HTML:\n<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#fbfcfe;border:1px solid #dbdfe7;border-radius:8px\">\n <tr>\n <td align=\"center\" style=\"padding:24px 0\">\n <table width=\"448\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" style=\"width:100%;max-width:448px;background-color:#ffffff;border:1px solid #dbdfe7;border-radius:8px;padding:24px\">\n <tr>\n <td style=\"text-align:center;padding-top:8px;font-family:Arial,sans-serif;font-size:14px;color:#7e8186\">\n <p style=\"white-space:pre-line\"></p>\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"max-width:600px;font-family:Arial,sans-serif;color:#333\">\n <tr>\n <td style=\"padding:20px\">\n \n <!-- LinkedIn Card -->\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#f9f9f9;margin-bottom:20px;padding:20px;border-radius:8px\">\n <tr>\n <td style=\"font-size:20px;font-weight:bold;padding-bottom:10px\">LinkedIn</td>\n </tr>\n <tr>\n <td style=\"font-size:16px;padding-bottom:10px\">Follow Saloni Malhotra on Linkedin for everything Product.</td>\n </tr>\n <tr>\n <td style=\"font-size:14px;font-style:italic;padding-bottom:10px\">Video/Image suggestion pending</td>\n </tr>\n <tr>\n <td style=\"padding-bottom:10px\">\n <span style=\"display:inline-block;background:#f0f0f0;padding:2px 6px;margin:2px;border-radius:4px\">#ProductManagement</span>\n <span style=\"display:inline-block;background:#f0f0f0;padding:2px 6px;margin:2px;border-radius:4px\">#WomenInTech</span>\n </td>\n </tr>\n <tr>\n <td style=\"font-size:14px;font-weight:bold\">Checkout my Linkedin profile https://www.linkedin.com/in/saloni-malhotra/ and follow my Instagram page at that_product_girl!</td>\n </tr>\n </table>\n\n <!-- Twitter Card -->\n <table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" style=\"background-color:#f9f9f9;margin-bottom:20px;padding:20px;border-radius:8px\">\n <tr>\n <td style=\"font-size:20px;font-weight:bold;padding-bottom:10px\">Twitter</td>\n </tr>\n <tr>\n <td style=\"font-size:16px;padding-bottom:10px\">Checkout my Linkedin profile https://www.linkedin.com/in/saloni-malhotra/ and follow my Instagram page at that_product_girl!</td>\n </tr>\n <tr>\n <td style=\"padding-bottom:10px\">\n <span style=\"display:inline-block;background:#f0f0f0;padding:2px 6px;margin:2px;border-radius:4px\">#WomenInTech</span>\n <span style=\"display:inline-block;background:#f0f0f0;padding:2px 6px;margin:2px;border-radius:4px\">#ProductManagement</span>\n <span style=\"display:inline-block;background:#f0f0f0;padding:2px 6px;margin:2px;border-radius:4px\">#VibeCoding</span>\n \n </td>\n </tr>\n </table>\n\n </td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n</table>\n",
"agent": "conversationalAgent",
"options": {},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "643b94c6-4535-4876-9660-d82ff69cbcf6",
"name": "Is Content Approved?",
"type": "n8n-nodes-base.if",
"position": [
1888,
336
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "e32d270f-f258-4522-94e1-2cb7ee4e8d2a",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.data.approved }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "7c0bd340-d442-405a-9da2-c8b67a57b423",
"name": "Create Tweet",
"type": "n8n-nodes-base.twitter",
"position": [
2704,
144
],
"parameters": {
"text": "={{ $('Social Media Content Factory').item.json.output.platform_posts['X-Twitter'].post }}\n{{ $('Social Media Content Factory').item.json.output.platform_posts['X-Twitter'].hashtags}}",
"additionalFields": {}
},
"credentials": {
"twitterOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "8ab03d75-b4c5-4271-8fa9-830f449a3a3c",
"name": "Generate an image",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
2304,
192
],
"parameters": {
"prompt": "=Create a American modern style image for {{ $('Submit Social Post Details').item.json.Topic }} and {{ $('Social Media Content Factory').item.json.output.description }}",
"options": {},
"resource": "image"
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.8,
"alwaysOutputData": true
},
{
"id": "38915626-8b61-43d0-ab8f-cda80a26004a",
"name": "Send a message",
"type": "n8n-nodes-base.slack",
"position": [
3104,
480
],
"parameters": {
"text": "=Linkedin post is live! {{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.post }}",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "name",
"value": "#social"
},
"otherOptions": {}
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "e973f366-6fc8-4fcc-82f8-b9dada073ce5",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
2960,
16
],
"parameters": {
"color": 7,
"width": 400,
"height": 684,
"content": "## STEP 5 : Update status via messaging app / sheets/ docs"
},
"typeVersion": 1
},
{
"id": "684fc8dd-131e-4d8c-91db-05edae735ee7",
"name": "Append or update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
3104,
240
],
"parameters": {
"columns": {
"value": {
"Post": "={{ $json.text }}"
},
"schema": [
{
"id": "Post",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Post",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Post"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1904412624,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1r1ltAbepwXWED84buQKNgRL3xxv-CZRUNCJPVw_BU9Q/edit#gid=1904412624",
"cachedResultName": "Twitter posts"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1r1ltAbepwXWED84buQKNgRL3xxv-CZRUNCJPVw_BU9Q",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1r1ltAbepwXWED84buQKNgRL3xxv-CZRUNCJPVw_BU9Q/edit?usp=drivesdk",
"cachedResultName": "Saloni Linkedin Posts"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "29211c5a-c037-44ee-8993-70771c004313",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
2304,
480
],
"parameters": {
"url": "imgUrl",
"options": {
"response": {
"response": {}
}
}
},
"typeVersion": 4.2
},
{
"id": "99df0968-5340-4ebc-ba00-d363f9b62b84",
"name": "Create a post",
"type": "n8n-nodes-base.linkedIn",
"position": [
2704,
528
],
"parameters": {
"text": "=This is a default post {{ $('Social Media Content Factory').item.json.output.platform_posts.LinkedIn.post }}",
"person": "VoJamciSbX",
"additionalFields": {},
"shareMediaCategory": "IMAGE"
},
"credentials": {
"linkedInOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "99731b72-6328-4a6d-947b-2ebe57b65cc4",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
2112,
320
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d3af4b0c-9d5b-4c40-ba07-f23cae560155",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('Submit Social Post Details').item.json.Image }}",
"rightValue": "AI generated"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "486537a0-4c8f-4aba-925c-c4ec86bdaabc",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
416,
-384
],
"parameters": {
"color": 6,
"width": 2944,
"height": 352,
"content": "\n## From Idea to Post: Social Media Automation in Action\n\n\nInstead of manually writing content, emailing for approval, designing creatives, and posting\u2014this workflow does it all for you. It\u2019s perfect for:\n\nFounders or marketers who want to save time\n\nTeams that need content approval before publishing\n\nEnsuring consistent quality and branding across posts"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "d36334e2-617d-440f-b570-2f71102268ac",
"connections": {
"If": {
"main": [
[
{
"node": "Generate an image",
"type": "main",
"index": 0
}
],
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"gpt-4o LLM": {
"ai_languageModel": [
[
{
"node": "Social Media Content Factory",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"gpt-4o-mini": {
"ai_languageModel": [
[
{
"node": "Prepare Content Review Email",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Create Tweet": {
"main": [
[
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Create a post",
"type": "main",
"index": 0
}
]
]
},
"Create a post": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"LinkedIn Post": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
],
[]
]
},
"Send a message": {
"main": [
[]
]
},
"Generate an image": {
"main": [
[
{
"node": "LinkedIn Post",
"type": "main",
"index": 0
},
{
"node": "Create Tweet",
"type": "main",
"index": 0
}
]
]
},
"Is Content Approved?": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
],
[]
]
},
"Social Media Content": {
"ai_outputParser": [
[
{
"node": "Social Media Content Factory",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Gmail User for Approval": {
"main": [
[
{
"node": "Is Content Approved?",
"type": "main",
"index": 0
}
]
]
},
"Submit Social Post Details": {
"main": [
[
{
"node": "Social Media Content Factory",
"type": "main",
"index": 0
}
]
]
},
"Prepare Content Review Email": {
"main": [
[
{
"node": "Gmail User for Approval",
"type": "main",
"index": 0
}
]
]
},
"Social Media Content Factory": {
"main": [
[
{
"node": "Prepare Content Review Email",
"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.
gmailOAuth2googleSheetsOAuth2ApilinkedInOAuth2ApiopenAiApislackApitwitterOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Whether you’re a product manager, developer, or simply curious about workflow automation, you’re in the right place. This n8n workflow is designed to help you streamline and automate your social media content creation, approval, and publishing process—all with minimal manual…
Source: https://n8n.io/workflows/6486/ — 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.
🎯 Create viral TikToks, Shorts, Reels, podcasts, and ASMR videos in minutes — all on autopilot.
Generate AI viral videos with NanoBanana & VEO3, shared on socials via Blotato 2. Uses @blotato/n8n-nodes-blotato, googleSheets, lmChatOpenAi, toolThink. Event-driven trigger; 94 nodes.
This template is designed for marketers, content creators, and e-commerce brands who want to automate the creation of professional ad videos at scale. It’s ideal for teams looking to generate consiste
This automation is designed to help you generate AI-powered music tracks, cover art, and fully rendered music videos — all triggered from a simple Telegram chat and managed via Google Sheets.
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.