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
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
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.