This workflow corresponds to n8n.io template #3181 — we link there as the canonical source.
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": "4aKofiCShqdDSsIS",
"meta": {
"templateId": "3181"
},
"name": "Import Odoo Product Images from Google Drive",
"tags": [],
"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
},
{
"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": "https://drive.google.com/drive/folders/0AGL-iqy2wxM8Uk9PVA",
"cachedResultName": "Middleware"
},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1VG-7mRW8tsmJelW5FTeoj2jXeObMvan6",
"cachedResultUrl": "https://drive.google.com/drive/folders/1VG-7mRW8tsmJelW5FTeoj2jXeObMvan6",
"cachedResultName": "input"
}
},
"options": {},
"resource": "fileFolder",
"returnAll": true
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"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
},
{
"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
},
{
"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": "https://drive.google.com/drive/folders/0AAaxIiOTPGeCUk9PVA",
"cachedResultName": "Middleware"
},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1NqxzbwarAZ1BtkoyM-T8NNcO5m_cmO1V",
"cachedResultUrl": "https://drive.google.com/drive/folders/1NqxzbwarAZ1BtkoyM-T8NNcO5m_cmO1V",
"cachedResultName": "done"
},
"operation": "move"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"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
},
{
"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
},
{
"id": "287704cf-b3bb-4ac7-9e37-5577eb33df8f",
"name": "Announce",
"type": "n8n-nodes-base.googleChat",
"position": [
1700,
540
],
"parameters": {
"spaceId": "spaces/AAAAt6xI1aY",
"messageUi": {
"text": "=Product images done onto Google Drive (total : {{ $json.count_id }})."
},
"authentication": "oAuth2",
"additionalFields": {}
},
"credentials": {
"googleChatOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1,
"alwaysOutputData": false
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"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
},
{
"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
},
{
"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": "https://drive.google.com/drive/folders/0AAaxIiOTPGeCUk9PVA",
"cachedResultName": "Middleware"
},
"folderId": {
"__rl": true,
"mode": "list",
"value": "1NqxzbwarAZ1BtkoyM-T8NNcO5m_cmO1V",
"cachedResultUrl": "https://drive.google.com/drive/folders/1NqxzbwarAZ1BtkoyM-T8NNcO5m_cmO1V",
"cachedResultName": "done"
}
},
"options": {},
"resource": "fileFolder",
"queryString": "={{ $('Filter Images').item.json.name }}"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"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": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "b134c298-989c-460e-8caf-497ccbea53cd",
"name": "Click Manual",
"type": "n8n-nodes-base.manualTrigger",
"position": [
380,
240
],
"parameters": {},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"versionId": "b98c3b1d-52f1-4dd2-b204-892bb96b1b8a",
"connections": {
"Switch": {
"main": [
[
{
"node": "Find Templates",
"type": "main",
"index": 0
}
],
[
{
"node": "Find Products",
"type": "main",
"index": 0
}
]
]
},
"Find Files": {
"main": [
[
{
"node": "Filter Images",
"type": "main",
"index": 0
}
]
]
},
"Sum Images": {
"main": [
[
{
"node": "Announce",
"type": "main",
"index": 0
}
]
]
},
"Move Images": {
"main": [
[
{
"node": "Sum Images",
"type": "main",
"index": 0
}
]
]
},
"Click Manual": {
"main": [
[
{
"node": "Find Files",
"type": "main",
"index": 0
}
]
]
},
"Filter Images": {
"main": [
[
{
"node": "Decorate Images",
"type": "main",
"index": 0
}
]
]
},
"Find Products": {
"main": [
[
{
"node": "Download Images Products",
"type": "main",
"index": 0
}
]
]
},
"Find Templates": {
"main": [
[
{
"node": "Download Images Templates",
"type": "main",
"index": 0
}
]
]
},
"Decorate Images": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
},
{
"node": "Move Images",
"type": "main",
"index": 0
},
{
"node": "Search Old Images",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Find Files",
"type": "main",
"index": 0
}
]
]
},
"Search Old Images": {
"main": [
[
{
"node": "Drop Old Images",
"type": "main",
"index": 0
}
]
]
},
"Download Images Products": {
"main": [
[
{
"node": "Convert Base64 Images Products",
"type": "main",
"index": 0
}
]
]
},
"Download Images Templates": {
"main": [
[
{
"node": "Convert Base64 Images Templates",
"type": "main",
"index": 0
}
]
]
},
"Convert Base64 Images Products": {
"main": [
[
{
"node": "Update Images Products",
"type": "main",
"index": 0
}
]
]
},
"Convert Base64 Images Templates": {
"main": [
[
{
"node": "Update Images Templates",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleChatOAuth2ApigoogleDriveOAuth2ApiodooApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
Efficiently automate the import of product images from Google Drive into Odoo, saving hours of manual uploads and ensuring your inventory visuals stay current without disrupting your workflow. This suits e-commerce managers or Odoo administrators handling large product catalogues who need reliable image syncing. The key step involves the Google Drive node scanning for files, followed by a code node to decorate and prepare images before seamless integration into Odoo.
Use this workflow for routine, scheduled imports of product images when your team relies on Google Drive for storage and Odoo for ERP management, particularly for seasonal updates or bulk additions. Avoid it for one-off transfers or if images require complex AI processing, as it focuses on straightforward automation. Common variations include triggering imports on new Drive uploads instead of cron schedules, or notifying via Google Chat only on errors rather than every run.
About this workflow
Import Odoo Product Images from Google Drive. Uses googleDrive, scheduleTrigger, summarize, googleChat. Scheduled trigger; 19 nodes.
Source: https://github.com/Zie619/n8n-workflows — 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 template creates a nightly backup of all n8n workflows and saves them to a Google Drive folder. Each night, the previous night's backups are moved to an “n8n_old” folder and renamed with the corr
Code Itemlists. Uses stickyNote, moveBinaryData, googleDrive, itemLists. Scheduled trigger; 33 nodes.
This workflow is perfect for n8n users who want to automatically backup all their workflows 💾 to Google Drive with zero manual effort. Perfect for teams managing multiple workflows or anyone who value
This workflow automatically imports product images from Google Drive and associates them with templates and products in Odoo.
Imagine the sinking feeling: hours, weeks, or even months of meticulous work building your n8n workflows, suddenly gone. A server crash, an accidental deletion, data corruption, or an unexpected platf