This workflow corresponds to n8n.io template #8655 — 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 →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "4e4e1e95-613b-4f13-a44d-ffde7edce8ff",
"name": "Image Gen (Nano Banana)",
"type": "n8n-nodes-base.httpRequest",
"position": [
608,
704
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "38ea4e52-c5dc-4ffe-8880-5dbd5a82e239",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
64,
800
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "2773185b-19d7-4c6b-95f3-3b225f02ee02",
"name": "Wait1",
"type": "n8n-nodes-base.wait",
"position": [
832,
704
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "76cf0327-0251-434f-a0f2-c8253eafacd5",
"name": "Get Image",
"type": "n8n-nodes-base.httpRequest",
"position": [
1056,
624
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "4288bcf7-b30d-4055-9f39-1e87558ff93a",
"name": "Image created",
"type": "n8n-nodes-base.if",
"position": [
1280,
704
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "97cb9e63-1eb5-43e0-93a4-e438d1bba382",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
400
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "c5548a43-8e9a-4bb9-9d28-06a855e22033",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
384
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "48e99baf-a6a1-4ba2-a765-8703e0f5d7d7",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
416
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "da849ea0-2e81-4daf-853e-f5907dfea6e2",
"name": "Google Sheets Trigger",
"type": "n8n-nodes-base.googleSheetsTrigger",
"position": [
-368,
704
],
"parameters": {},
"typeVersion": 1
},
{
"id": "1c8c8e1d-4fc7-4fe7-824a-78e29e08207a",
"name": "post media",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
2064,
1280
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "facaea24-1375-4e65-ab62-8ed01fad19b1",
"name": "Add Image URL",
"type": "n8n-nodes-base.googleSheets",
"position": [
1472,
448
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "21e17eff-1ee9-4c5b-9b96-d60bc1573abe",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1920,
944
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "d901aea2-cd2f-47b4-a97b-bc0c198db4db",
"name": "Send Tweet text for approval",
"type": "n8n-nodes-base.telegram",
"position": [
976,
1296
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "e91f14a0-161a-4806-995e-d5a6236cd3fb",
"name": "Send Tweet image for approval",
"type": "n8n-nodes-base.telegram",
"position": [
752,
1296
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "184a3c5b-2655-4f35-a1c0-4ada4df4195c",
"name": "Approved",
"type": "n8n-nodes-base.if",
"position": [
1280,
1392
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "cfb48a9e-f290-43eb-a2b3-3ba0f16752c7",
"name": "Tweet not approved",
"type": "n8n-nodes-base.googleSheets",
"position": [
1472,
1552
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "f7038b75-7d6b-40fe-b6aa-32ddc4e6569f",
"name": "Download Image",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
304,
1376
],
"parameters": {},
"retryOnFail": false,
"typeVersion": 4.2
},
{
"id": "49b19210-9915-4ae9-a5da-a3097e529111",
"name": "Downlaod Image again",
"type": "n8n-nodes-base.httpRequest",
"onError": "continueRegularOutput",
"position": [
1888,
1280
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "a64dd96f-24a0-472a-9455-e6fae5369810",
"name": "Create Tweet",
"type": "n8n-nodes-base.twitter",
"position": [
2240,
1296
],
"parameters": {},
"typeVersion": 2
},
{
"id": "20bb76b6-6476-4fc5-b565-1820279675e1",
"name": "Tweet Generator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1920,
736
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "fecae118-9e21-485f-a19c-c7220fa771a7",
"name": "Prompt Generator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
48,
544
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "6144f543-5b3f-4991-831c-7b6d36a6e123",
"name": "Tweet posted",
"type": "n8n-nodes-base.googleSheets",
"position": [
2432,
1296
],
"parameters": {},
"typeVersion": 4.7
},
{
"id": "8d711b2d-ede5-46e2-92c0-ebc228bb3458",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
256,
1088
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "5f26e665-302e-4525-b7ec-704eb5d492dc",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1840,
480
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "25cf6979-8f83-4c73-a2dd-345444b71efa",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1792,
1104
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"connections": {
"Wait1": {
"main": [
[
{
"node": "Get Image",
"type": "main",
"index": 0
}
]
]
},
"Approved": {
"main": [
[
{
"node": "Downlaod Image again",
"type": "main",
"index": 0
}
],
[
{
"node": "Tweet not approved",
"type": "main",
"index": 0
}
]
]
},
"Get Image": {
"main": [
[
{
"node": "Image created",
"type": "main",
"index": 0
}
]
]
},
"post media": {
"main": [
[
{
"node": "Create Tweet",
"type": "main",
"index": 0
}
],
[]
]
},
"Create Tweet": {
"main": [
[
{
"node": "Tweet posted",
"type": "main",
"index": 0
}
]
]
},
"Image created": {
"main": [
[
{
"node": "Add Image URL",
"type": "main",
"index": 0
},
{
"node": "Tweet Generator",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"Download Image": {
"main": [
[
{
"node": "Send Tweet image for approval",
"type": "main",
"index": 0
}
],
[]
]
},
"Tweet Generator": {
"main": [
[
{
"node": "Download Image",
"type": "main",
"index": 0
}
]
]
},
"Prompt Generator": {
"main": [
[
{
"node": "Image Gen (Nano Banana)",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Prompt Generator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Tweet Generator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Downlaod Image again": {
"main": [
[
{
"node": "post media",
"type": "main",
"index": 0
}
],
[]
]
},
"Google Sheets Trigger": {
"main": [
[
{
"node": "Prompt Generator",
"type": "main",
"index": 0
}
]
]
},
"Image Gen (Nano Banana)": {
"main": [
[
{
"node": "Wait1",
"type": "main",
"index": 0
}
]
]
},
"Send Tweet text for approval": {
"main": [
[
{
"node": "Approved",
"type": "main",
"index": 0
}
]
]
},
"Send Tweet image for approval": {
"main": [
[
{
"node": "Send Tweet text for approval",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
A ready-to-use n8n workflow that turns new Google Sheets rows (title + summary) into brand-safe images using Nano Banana (via KIE.ai), writes the image URL back to your sheet, generates a tweet text, requests human approval in Telegram, and—on approval—posts to X (Twitter)…
Source: https://n8n.io/workflows/8655/ — 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 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.
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 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 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