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 →
{
"name": "LinkedIn Content Generation",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 9
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.3,
"position": [
-1136,
272
],
"id": "ea0d6c27-a9f5-4115-8d58-d596e0650e85",
"name": "Schedule Trigger"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "YOUR_GOOGLE_SHEET_ID",
"mode": "list",
"cachedResultName": "LinkedIn Content Topics"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1"
},
"filtersUI": {
"values": [
{
"lookupColumn": "Status",
"lookupValue": "To-do"
}
]
},
"options": {
"returnFirstMatch": true
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
-176,
-16
],
"id": "4d1c7d13-dd0f-471a-9172-43d4ed99b3e7",
"name": "Grab The Topic"
},
{
"parameters": {
"method": "POST",
"url": "https://api.tavily.com/search",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_TAVILY_API_KEY"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"query\": \"Search the web on {{ $json.Topic }}\",\n \"auto_parameters\": false,\n \"topic\": \"general\",\n \"search_depth\": \"basic\",\n \"chunks_per_source\": 3,\n \"max_results\": 3,\n \"include_answer\": true\n} ",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.4,
"position": [
32,
-16
],
"id": "6539f224-2d2c-4f87-b6a4-da17eedf31d6",
"name": "Search the WEB"
},
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-368,
-16
],
"id": "860499be-23bd-40e8-bc5b-c1ed6be8d40a",
"name": "When clicking \u2018Execute workflow\u2019"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.3,
"position": [
112,
192
],
"id": "0f2f9d17-6365-4f2d-b43c-811207732c91",
"name": "OpenAI Chat Model"
},
{
"parameters": {
"promptType": "define",
"text": "=Article 1: {{ $json.results[0].content }}\nArticle 2: {{ $json.results[1].content }}\nArticle 3: {{ $json.results[2].content }}",
"options": {
"systemMessage": "You are an expert LinkedIn content strategist and professional copywriter.\n\nYour task is to read the three provided articles, identify the most valuable insights, and create ONE original LinkedIn post. Do not copy or paraphrase large sections from the articles. Instead, synthesize the information into a unique, engaging post.\n\nGuidelines:\n- Write in a professional, inspiring, and insightful tone.\n- Keep the post concise (150\u2013250 words).\n- Start with a compelling hook that grabs attention in the first sentence.\n- Focus on practical value and actionable insights rather than summarizing the articles.\n- Use short paragraphs for better readability.\n- End with a thought-provoking question or a call to action that encourages engagement.\n- Include 5\u20138 highly relevant hashtags.\n- Use 3\u20136 appropriate emojis to improve readability and engagement without overusing them.\n- Do not use clickbait or exaggerated claims.\n- Do not mention that the content was generated from articles.\n- Do not include markdown formatting, headings, or bullet points unless they naturally fit the post.\n- Ensure the writing feels natural, authentic, and suitable for a LinkedIn audience.\n\nOutput only the final LinkedIn post, followed by the hashtags. Do not include any explanations or additional text."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3.1,
"position": [
240,
-16
],
"id": "8ef8fe01-e9c4-4691-a0eb-33a7752519d0",
"name": "AI Content Writer"
},
{
"parameters": {
"promptType": "define",
"text": "=Content: {{ $json.output }}",
"options": {
"systemMessage": "You are an expert AI Prompt Engineer specializing in creating high-quality image generation prompts.\n\nYour role is to analyze the LinkedIn post provided by the user and transform its message into a detailed, visually compelling prompt that can be used with modern AI image generation models such as GPT Image, Gemini, Flux, Ideogram, or Midjourney.\n\nThe image should complement the LinkedIn post by reinforcing its central idea, making the post more engaging and professional.\n\nGuidelines:\n1. Read the entire LinkedIn post carefully and identify topic, main message, audience, and emotion.\n2. Create an image concept that visually communicates the core message.\n3. Prefer modern flat vector illustration or isometric corporate design.\n4. Always enforce 1:1 square ratio, clean layout, no text, no captions, no logos, no watermarks.\n5. Output ONLY the final image generation prompt."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3.1,
"position": [
592,
-16
],
"id": "80f34d80-851f-4f84-9b67-c9bd557b75e8",
"name": "AI Image Prompt Generator"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"builtInTools": {},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.3,
"position": [
464,
192
],
"id": "ebb19481-5476-4189-8aae-61864ff488cc",
"name": "OpenAI Chat Model1"
},
{
"parameters": {
"resource": "image",
"modelId": {
"__rl": true,
"mode": "list",
"value": "dall-e-3"
},
"prompt": "={{ $json.output }}",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 2.3,
"position": [
944,
-16
],
"id": "516a2719-ccf1-4957-97c7-6dcfba4d4ef4",
"name": "Generate an image"
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "YOUR_GOOGLE_SHEET_ID",
"mode": "list",
"cachedResultName": "LinkedIn Content Topics"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "Sheet1"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Content": "={{ $('AI Content Writer').item.json.output }}",
"Status": "Done",
"Topic": "={{ $('Grab The Topic').item.json.Topic }}"
},
"matchingColumns": [
"Topic"
]
}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [
1264,
176
],
"id": "f9c42999-e8c5-4b28-aab3-6dd170a3d98c",
"name": "Add Content to sheets"
},
{
"parameters": {
"additionalFields": {}
},
"type": "n8n-nodes-base.linkedIn",
"typeVersion": 1,
"position": [
1216,
-96
],
"id": "db3dce3d-9c38-423e-a5b0-c092a503f7fe",
"name": "Create a post"
}
],
"connections": {
"Grab The Topic": {
"main": [
[
{
"node": "Search the WEB",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Grab The Topic",
"type": "main",
"index": 0
}
]
]
},
"Search the WEB": {
"main": [
[
{
"node": "AI Content Writer",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Content Writer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Content Writer": {
"main": [
[
{
"node": "AI Image Prompt Generator",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Image Prompt Generator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Image Prompt Generator": {
"main": [
[
{
"node": "Generate an image",
"type": "main",
"index": 0
}
]
]
},
"Generate an image": {
"main": [
[
{
"node": "Add Content to sheets",
"type": "main",
"index": 0
},
{
"node": "Create a post",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
LinkedIn Content Generation. Uses googleSheets, httpRequest, lmChatOpenAi, agent. Scheduled trigger; 11 nodes.
Source: https://github.com/Maryam-Codes/Automated-AI-LinkedIn-Content-Graphic-Generator/blob/main/workflow.json — 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 automates the process of generating, reviewing, and publishing blog posts across multiple platforms, now enhanced with support for RSS Feeds as a content source. It streamlines the manag
This workflow is designed for: Content creators and marketers E-commerce and product-based businesses Agencies producing social media visuals and videos Automation builders looking for AI-powered crea
Generate product images with NanoBanana Pro to Veo videos and Blotato - vide 2 ok. Uses httpRequest, editImage, googleDrive, googleSheets. Scheduled trigger; 76 nodes.
This workflow is for beauty salons who want consistent, high‑quality social media content without writing every post manually. It also suits agencies and automation builders who manage multiple beauty
This workflow automates the creation, rendering, approval, and posting of TikTok-style POV (Point of View) videos to Instagram, with cross-posting to Facebook and YouTube. It eliminates manual video p