{ "id": "4aKofiCShqdDSsIS", "meta": { "instanceId": "workflow-d8863382", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:51.180026", "updatedAt": "2025-09-29T07:07:51.180037", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Import Odoo Product Images from Google Drive", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "690beab3-2e3a-4426-9e90-fde834cb2c72", "name": "Filter Images", "type": "n8n-nodes-base.filter", "position": [ 820, 340 ], "parameters": { "options": {}, "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "or", "conditions": [ { "id": "bb0df6d8-525b-4054-9340-4400ddd40c81", "operator": { "type": "string", "operation": "endsWith" }, "leftValue": "={{ $json.name }}", "rightValue": ".png" }, { "id": "8ebcb3fb-dd64-40f6-94c9-5b13021847d9", "operator": { "type": "string", "operation": "endsWith" }, "leftValue": "={{ $json.name }}", "rightValue": ".jpg" } ] } }, "typeVersion": 2.2, "notes": "This filter node performs automated tasks as part of the workflow." }, { "id": "6fec7062-3f85-4ce0-86cd-6ac4f1169192", "name": "Find Files", "type": "n8n-nodes-base.googleDrive", "position": [ 600, 340 ], "parameters": { "filter": { "driveId": { "__rl": true, "mode": "list", "value": "0AGL-iqy2wxM8Uk9PVA", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Middleware" }, "folderId": { "__rl": true, "mode": "list", "value": "1VG-7mRW8tsmJelW5FTeoj2jXeObMvan6", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "input" } }, "options": {}, "resource": "fileFolder", "returnAll": true }, "credentials": { "googleDriveOAuth2Api": { "id": "HTm4uAxSPW7DoxGv", "name": "Google Drive Administrator" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "10eb5837-9808-4e71-9bfd-82eb788e036b", "name": "Decorate Images", "type": "n8n-nodes-base.code", "position": [ 1040, 340 ], "parameters": { "jsCode": "for (const item of $input.all()) {\n let parts = item.json.name.split('.').slice(0, -1).join('.').split('_');\n item.json.model = parts[0];\n item.json.sku = parts.slice(1).join('_');\n}\n\nreturn $input.all();\n" }, "typeVersion": 2, "notes": "This code node performs automated tasks as part of the workflow." }, { "id": "dc2d4e62-2b34-4f07-8ae9-aa2d7b169085", "name": "Switch", "type": "n8n-nodes-base.switch", "position": [ 1260, 40 ], "parameters": { "rules": { "values": [ { "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "e1d26dbe-1855-4d62-8061-43a7d56c2705", "operator": { "type": "string", "operation": "equals" }, "leftValue": "={{ $json.model }}", "rightValue": "template" } ] } }, { "conditions": { "options": { "version": 2, "leftValue": "", "caseSensitive": true, "typeValidation": "strict" }, "combinator": "and", "conditions": [ { "id": "b7c889f6-d84a-4573-b7ba-35e51405bf94", "operator": { "name": "filter.operator.equals", "type": "string", "operation": "equals" }, "leftValue": "={{ $json.model }}", "rightValue": "product" } ] } } ] }, "options": {} }, "typeVersion": 3.2, "notes": "This switch node performs automated tasks as part of the workflow." }, { "id": "1c7d98b0-ea85-4841-8764-e3d3b8369a11", "name": "Move Images", "type": "n8n-nodes-base.googleDrive", "position": [ 1260, 540 ], "parameters": { "fileId": { "__rl": true, "mode": "id", "value": "={{ $json.id }}" }, "driveId": { "__rl": true, "mode": "list", "value": "0AAaxIiOTPGeCUk9PVA", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Middleware" }, "folderId": { "__rl": true, "mode": "list", "value": "1NqxzbwarAZ1BtkoyM-T8NNcO5m_cmO1V", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "done" }, "operation": "move" }, "credentials": { "googleDriveOAuth2Api": { "id": "HTm4uAxSPW7DoxGv", "name": "Google Drive Administrator" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "29444363-00f7-427c-b377-e3c453e80e8f", "name": "Schedule Trigger", "type": "n8n-nodes-base.scheduleTrigger", "position": [ 380, 440 ], "parameters": { "rule": { "interval": [ { "field": "minutes", "minutesInterval": 10 } ] } }, "typeVersion": 1.2, "notes": "This scheduleTrigger node performs automated tasks as part of the workflow." }, { "id": "fc675661-ee5c-47d6-abe5-40c15f92bcda", "name": "Sum Images", "type": "n8n-nodes-base.summarize", "position": [ 1480, 540 ], "parameters": { "options": {}, "fieldsToSummarize": { "values": [ { "field": "id" } ] } }, "typeVersion": 1.1, "notes": "This summarize node performs automated tasks as part of the workflow." }, { "id": "287704cf-b3bb-4ac7-9e37-5577eb33df8f", "name": "Announce", "type": "n8n-nodes-base.googleChat", "position": [ 1700, 540 ], "webhookId": "a1b21478-fbd9-49e7-9e0c-cdf86048d038", "parameters": { "spaceId": "spaces/AAAAt6xI1aY", "messageUi": { "text": "=Product images done onto Google Drive (total : {{ $json.count_id }})." }, "authentication": "{{ $credentials.oAuth2 }}", "additionalFields": {} }, "credentials": { "googleChatOAuth2Api": { "id": "Gv5dSRXyRjQcwRph", "name": "Google Chat Administrator" } }, "typeVersion": 1, "notes": "This googleChat node performs automated tasks as part of the workflow." }, { "id": "e41ebdd1-3841-482b-864d-6534db92ba74", "name": "Find Templates", "type": "n8n-nodes-base.odoo", "position": [ 1480, -60 ], "parameters": { "limit": 1, "options": { "fieldsList": [ "id" ] }, "resource": "custom", "operation": "getAll", "filterRequest": { "filter": [ { "value": "={{ $json.sku }}", "fieldName": "default_code" } ] }, "customResource": "product.template" }, "credentials": { "odooApi": { "id": "eTbK0f2MmAZsrOtT", "name": "Odoo AArtIntelligent" } }, "typeVersion": 1, "alwaysOutputData": false, "notes": "This odoo node performs automated tasks as part of the workflow." }, { "id": "86e0145e-9701-4af4-a5a6-d9f4f77d6115", "name": "Download Images Templates", "type": "n8n-nodes-base.googleDrive", "position": [ 1700, -60 ], "parameters": { "fileId": { "__rl": true, "mode": "id", "value": "={{ $('Filter Images').item.json.id }}" }, "options": { "binaryPropertyName": "data" }, "operation": "download" }, "credentials": { "googleDriveOAuth2Api": { "id": "HTm4uAxSPW7DoxGv", "name": "Google Drive Administrator" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "6132ae9b-d82d-4aa5-9f42-8a0e975b5485", "name": "Update Images Templates", "type": "n8n-nodes-base.odoo", "position": [ 2140, -60 ], "parameters": { "resource": "custom", "operation": "update", "customResource": "product.template", "customResourceId": "={{ $('Find Templates').item.json.id }}", "fieldsToCreateOrUpdate": { "fields": [ { "fieldName": "image_1920", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_1024", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_512", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_256", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_128", "fieldValue": "={{ $json.data }}" } ] } }, "credentials": { "odooApi": { "id": "eTbK0f2MmAZsrOtT", "name": "Odoo AArtIntelligent" } }, "typeVersion": 1, "notes": "This odoo node performs automated tasks as part of the workflow." }, { "id": "1dbfc15a-fec4-416f-8286-e16672a78e1f", "name": "Find Products", "type": "n8n-nodes-base.odoo", "position": [ 1480, 140 ], "parameters": { "limit": 1, "options": { "fieldsList": [ "id" ] }, "resource": "custom", "operation": "getAll", "filterRequest": { "filter": [ { "value": "={{ $json.sku }}", "fieldName": "default_code" } ] }, "customResource": "product.product" }, "credentials": { "odooApi": { "id": "eTbK0f2MmAZsrOtT", "name": "Odoo AArtIntelligent" } }, "typeVersion": 1, "notes": "This odoo node performs automated tasks as part of the workflow." }, { "id": "8963a175-6bf7-4101-8748-cd11e1a77e0a", "name": "Download Images Products", "type": "n8n-nodes-base.googleDrive", "position": [ 1700, 140 ], "parameters": { "fileId": { "__rl": true, "mode": "id", "value": "={{ $('Filter Images').item.json.id }}" }, "options": { "binaryPropertyName": "data" }, "operation": "download" }, "credentials": { "googleDriveOAuth2Api": { "id": "HTm4uAxSPW7DoxGv", "name": "Google Drive Administrator" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "8ee836a9-f962-426e-9fe2-c989b3da8a3b", "name": "Update Images Products", "type": "n8n-nodes-base.odoo", "position": [ 2140, 140 ], "parameters": { "resource": "custom", "operation": "update", "customResource": "product.product", "customResourceId": "={{ $('Find Products').item.json.id }}", "fieldsToCreateOrUpdate": { "fields": [ { "fieldName": "image_1920", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_1024", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_512", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_256", "fieldValue": "={{ $json.data }}" }, { "fieldName": "image_128", "fieldValue": "={{ $json.data }}" } ] } }, "credentials": { "odooApi": { "id": "eTbK0f2MmAZsrOtT", "name": "Odoo AArtIntelligent" } }, "typeVersion": 1, "notes": "This odoo node performs automated tasks as part of the workflow." }, { "id": "4c2d03c6-896a-4f5f-ae23-68717aa50697", "name": "Convert Base64 Images Templates", "type": "n8n-nodes-base.extractFromFile", "position": [ 1920, -60 ], "parameters": { "options": {}, "operation": "binaryToPropery" }, "typeVersion": 1, "notes": "This extractFromFile node performs automated tasks as part of the workflow." }, { "id": "0a894d9e-8021-46c9-a9c1-399d7a56546d", "name": "Convert Base64 Images Products", "type": "n8n-nodes-base.extractFromFile", "position": [ 1920, 140 ], "parameters": { "options": {}, "operation": "binaryToPropery" }, "typeVersion": 1, "notes": "This extractFromFile node performs automated tasks as part of the workflow." }, { "id": "a618d02d-fe52-42ab-9d62-1c263992ac24", "name": "Search Old Images", "type": "n8n-nodes-base.googleDrive", "position": [ 1260, 340 ], "parameters": { "filter": { "driveId": { "__rl": true, "mode": "list", "value": "0AAaxIiOTPGeCUk9PVA", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "Middleware" }, "folderId": { "__rl": true, "mode": "list", "value": "1NqxzbwarAZ1BtkoyM-T8NNcO5m_cmO1V", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "done" } }, "options": {}, "resource": "fileFolder", "queryString": "={{ $('Filter Images').item.json.name }}" }, "credentials": { "googleDriveOAuth2Api": { "id": "HTm4uAxSPW7DoxGv", "name": "Google Drive Administrator" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "cd82a937-7129-4baf-9515-41ab5aef497d", "name": "Drop Old Images", "type": "n8n-nodes-base.googleDrive", "position": [ 1480, 340 ], "parameters": { "fileId": { "__rl": true, "mode": "id", "value": "={{ $json.id }}" }, "options": {}, "operation": "deleteFile" }, "credentials": { "googleDriveOAuth2Api": { "id": "HTm4uAxSPW7DoxGv", "name": "Google Drive Administrator" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "b134c298-989c-460e-8caf-497ccbea53cd", "name": "Click Manual", "type": "n8n-nodes-base.manualTrigger", "position": [ 380, 240 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "error-6ae88efb", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "active": false, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "b98c3b1d-52f1-4dd2-b204-892bb96b1b8a", "connections": { "6fec7062-3f85-4ce0-86cd-6ac4f1169192": { "main": [ [ { "node": "error-handler-6fec7062-3f85-4ce0-86cd-6ac4f1169192-fe953999", "type": "main", "index": 0 } ] ] }, "1c7d98b0-ea85-4841-8764-e3d3b8369a11": { "main": [ [ { "node": "error-handler-1c7d98b0-ea85-4841-8764-e3d3b8369a11-ab1caff9", "type": "main", "index": 0 } ] ] }, "287704cf-b3bb-4ac7-9e37-5577eb33df8f": { "main": [ [ { "node": "error-handler-287704cf-b3bb-4ac7-9e37-5577eb33df8f-6392a365", "type": "main", "index": 0 } ] ] }, "86e0145e-9701-4af4-a5a6-d9f4f77d6115": { "main": [ [ { "node": "error-handler-86e0145e-9701-4af4-a5a6-d9f4f77d6115-f2b73f3d", "type": "main", "index": 0 } ] ] }, "8963a175-6bf7-4101-8748-cd11e1a77e0a": { "main": [ [ { "node": "error-handler-8963a175-6bf7-4101-8748-cd11e1a77e0a-5f888061", "type": "main", "index": 0 } ] ] }, "4c2d03c6-896a-4f5f-ae23-68717aa50697": { "main": [ [ { "node": "error-handler-4c2d03c6-896a-4f5f-ae23-68717aa50697-52338cd5", "type": "main", "index": 0 } ] ] }, "0a894d9e-8021-46c9-a9c1-399d7a56546d": { "main": [ [ { "node": "error-handler-0a894d9e-8021-46c9-a9c1-399d7a56546d-0cf93a3c", "type": "main", "index": 0 } ] ] }, "a618d02d-fe52-42ab-9d62-1c263992ac24": { "main": [ [ { "node": "error-handler-a618d02d-fe52-42ab-9d62-1c263992ac24-4c897493", "type": "main", "index": 0 } ] ] }, "cd82a937-7129-4baf-9515-41ab5aef497d": { "main": [ [ { "node": "error-handler-cd82a937-7129-4baf-9515-41ab5aef497d-a612339e", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Import Odoo Product Images from Google Drive. This workflow processes data and performs automated tasks.", "notes": "Excellent quality workflow: Import Odoo Product Images from Google Drive. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }