This workflow corresponds to n8n.io template #9312 — we link there as the canonical source.
This workflow follows the Agent → Google Drive 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": "9XevkVCNXgZ53qKq",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Upload Dress Images to Cloudinary & Log to Sheet with Azure OpenAI (GPT-4o)",
"tags": [
{
"id": "cshJUy1dOLdeUENB",
"name": "Fairy Frills",
"createdAt": "2025-09-12T00:04:07.350Z",
"updatedAt": "2025-09-12T00:04:07.350Z"
}
],
"nodes": [
{
"id": "2a16a7a4-2385-4186-95a6-93273953fd87",
"name": "Search files and folders",
"type": "n8n-nodes-base.googleDrive",
"position": [
-2128,
112
],
"parameters": {},
"typeVersion": 3
},
{
"id": "2ef1614c-3c49-43f2-bb69-6abd748dec96",
"name": "Search files and folders1",
"type": "n8n-nodes-base.googleDrive",
"position": [
-1680,
112
],
"parameters": {},
"executeOnce": false,
"typeVersion": 3
},
{
"id": "567bda21-bec7-4372-9b1d-15877fc7b24a",
"name": "Loop Over Items",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1904,
112
],
"parameters": {},
"typeVersion": 3
},
{
"id": "725719e1-f2d5-4dca-894e-57c2bb39081d",
"name": "upload frames to cloudinary",
"type": "n8n-nodes-base.httpRequest",
"maxTries": 5,
"position": [
-1248,
112
],
"parameters": {},
"retryOnFail": true,
"typeVersion": 4.2
},
{
"id": "5c44d9bf-6ac8-4f30-814b-d5f7e202d13f",
"name": "Download file",
"type": "n8n-nodes-base.googleDrive",
"position": [
-1456,
112
],
"parameters": {},
"typeVersion": 3
},
{
"id": "525721b3-5a59-4e9e-8305-454f20b5df29",
"name": "Append row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
0,
0
],
"parameters": {},
"typeVersion": 4.6
},
{
"id": "835afee7-3c0a-41ef-8df3-5c2122d272b8",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-368,
112
],
"parameters": {},
"typeVersion": 2
},
{
"id": "19958aaa-ece9-44e9-9fe9-34df96af6f64",
"name": "Azure OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
-336,
320
],
"parameters": {},
"typeVersion": 1
},
{
"id": "280df4b6-001f-4d78-ade9-eb1b00bcb616",
"name": "azure openai",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1024,
112
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "f57a8ef1-9e65-47ed-a709-20f8350aeee9",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-224,
320
],
"parameters": {},
"typeVersion": 1.3
},
{
"id": "a0f3edb5-277d-4045-8a52-190a232288fe",
"name": "Append row in sheet2",
"type": "n8n-nodes-base.googleSheets",
"position": [
0,
208
],
"parameters": {},
"typeVersion": 4.6
},
{
"id": "6b28ca78-d7b3-4595-9457-c704c28b412b",
"name": "When clicking \u2018Execute workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-2336,
112
],
"parameters": {},
"typeVersion": 1
},
{
"id": "9c136050-cef3-4636-99ac-ecefbf991763",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2192,
288
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "1a685527-23dd-4b04-ba8a-0bc661dfe400",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1984,
-96
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "308bff41-a761-4237-b887-d2f2591aea28",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1744,
304
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b935e853-e308-4336-b896-e2b13e9677f6",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
-96
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "203f0cd4-93c9-4ea1-8239-0014fd4687d7",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1328,
320
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "5048f09a-e3ba-4eb4-8771-fa99fbed2cb4",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1120,
-112
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4392c8a1-600e-4f8d-9a23-f7571fff99b4",
"name": "Setting description",
"type": "n8n-nodes-base.set",
"position": [
-800,
112
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "4e022dae-8b75-46ca-a48a-2a8cd64ea787",
"name": "flattening descriptions",
"type": "n8n-nodes-base.code",
"position": [
-576,
112
],
"parameters": {},
"typeVersion": 2
},
{
"id": "e7763711-8ee1-4f77-b03c-4111f219fc2b",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-352,
480
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "d8cda113-6bf5-4a89-bbc8-cdf79f2fad28",
"name": "Sticky Note10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
-224
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "80856104-e323-4963-9ffd-b6a5a23e2595",
"name": "Sticky Note11",
"type": "n8n-nodes-base.stickyNote",
"position": [
464,
48
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "4bdc8120-b3a7-4865-b3a6-02f29193ffc9",
"name": "Merge outputs for Logic",
"type": "n8n-nodes-base.merge",
"position": [
272,
80
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "7f4e1076-0f21-47c5-b9a6-f89906427cb2",
"name": "Sticky Note12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
-128
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "72b7ca2a-42ef-4f94-af46-4fbd6542ae61",
"name": "Sticky Note13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-880,
304
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "88e71406-014f-419b-9a27-f52c553050d5",
"connections": {
"AI Agent": {
"main": [
[
{
"node": "Append row in sheet",
"type": "main",
"index": 0
},
{
"node": "Append row in sheet2",
"type": "main",
"index": 0
}
]
]
},
"azure openai": {
"main": [
[
{
"node": "Setting description",
"type": "main",
"index": 0
}
]
]
},
"Download file": {
"main": [
[
{
"node": "upload frames to cloudinary",
"type": "main",
"index": 0
}
]
]
},
"Loop Over Items": {
"main": [
[],
[
{
"node": "Search files and folders1",
"type": "main",
"index": 0
}
]
]
},
"Append row in sheet": {
"main": [
[
{
"node": "Merge outputs for Logic",
"type": "main",
"index": 0
}
]
]
},
"Setting description": {
"main": [
[
{
"node": "flattening descriptions",
"type": "main",
"index": 0
}
]
]
},
"Append row in sheet2": {
"main": [
[
{
"node": "Merge outputs for Logic",
"type": "main",
"index": 1
}
]
]
},
"Azure OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Merge outputs for Logic": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"flattening descriptions": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Search files and folders": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Search files and folders1": {
"main": [
[
{
"node": "Download file",
"type": "main",
"index": 0
}
]
]
},
"upload frames to cloudinary": {
"main": [
[
{
"node": "azure openai",
"type": "main",
"index": 0
}
]
]
},
"When clicking \u2018Execute workflow\u2019": {
"main": [
[
{
"node": "Search files and folders",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automate dress image handling end-to-end: search files, download them, upload to Cloudinary, invoke Azure OpenAI (GPT-4o), parse structured output, and append rows to a sheet. Gain a repeatable, low-touch process for product media and metadata logging. ✨ Searches files and…
Source: https://n8n.io/workflows/9312/ — 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
💥 Automate video ads with NanoBanana, Seedream 4, ChatGPT Image and Veo 3 - VIDE. Uses telegram, telegramTrigger, googleDrive, agent. Event-driven trigger; 63 nodes.
This comprehensive n8n workflow automates the entire Meta (Facebook/Instagram) advertising process, from asset analysis to ad creation. It combines AI-powered content analysis with automated ad deploy