Skip to main content

Bulk sync products from Google Sheets to Odoo with auto image upload

Workflow preview

Workflow preview
100%
Bulk sync products from Google Sheets to Odoo with auto image upload preview
Open on n8n.io

1. Workflow Overview

What Problem Does It Solve? Manually entering hundreds of products from a spreadsheet into Odoo is slow, repetitive, and prone to human error. Ensuring that barcodes are unique and products aren't ...

Best for

  • CRM automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.googlesheetstrigger, n8n-nodes-base.splitinbatches, n8n-nodes-base.odoo, n8n-nodes-base.if, n8n-nodes-base.httprequest, n8n-nodes-base.extractfromfile, n8n-nodes-base.googlesheets

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by khaled yasser.

Original n8n.io source

1.1 Workflow description

Title
Bulk sync products from Google Sheets to Odoo with auto image upload
Workflow name
Bulk sync products from Google Sheets to Odoo with auto image upload

What Problem Does It Solve?

  • Manually entering hundreds of products from a spreadsheet into Odoo is slow, repetitive, and prone to human error.
  • Ensuring that barcodes are unique and products aren't duplicated during manual entry is a constant challenge.
  • Uploading product images one by one into Odoo's interface is a major bottleneck for inventory management.
  • This workflow solves these issues by:
  • Automatically importing new products from a Google Sheet to Odoo the moment they are added.
  • Performing a real-time duplicate check via Barcode to prevent redundant records.
  • Automatically fetching and attaching product images from URLs directly into the Odoo product template.
  • Updating the status in your spreadsheet to "Done" once the sync is successful.

How to Configure It

  • Google Sheets Setup
  • Connect your Google account and select your inventory spreadsheet.
  • Your sheet should have columns for: Name, Barcode, category, Sales Price, Cost, and Image URL (الصوره).
  • Odoo Setup
  • Connect your Odoo API credentials in n8n.
  • Ensure the category names in your sheet exactly match the existing "Product Categories" in Odoo for accurate mapping.
  • Image Processing
  • The "Download Image" node is configured to fetch the image file from the URL provided in your sheet. Ensure these are direct, publicly accessible image links.

How It Works

  • The workflow triggers automatically whenever a new row is added to your Google Sheet.
  • It loops over the items and first searches Odoo by Barcode to verify if the product already exists.
  • If it’s a new product, it searches Odoo to find the correct internal Category ID based on the sheet data.
  • It checks if an image URL is available. If so, it downloads the file, converts it to binary, and creates the product in Odoo with the image attached.
  • If no image is provided, it seamlessly creates the product template with basic details (Price, Cost, Barcode, Category).
  • Finally, it updates the status column in the spreadsheet to "Done" and includes a brief "Wait" to stay within Odoo and Google API rate limits.

Customization Ideas

  • Add a logic branch to update existing products (e.g., sync new prices) if the Barcode already exists in Odoo instead of just skipping them.
  • Integrate with a Telegram bot to send a confirmation photo and summary of the new product once it’s live in the ERP.
  • Add currency conversion nodes if your sheet prices are in a different currency than your Odoo default.

For more info Contact Me

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Sticky Note - Overview

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Sticky Note - Phase 1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Sticky Note - Phase 2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Sticky Note - Phase 3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - On New Row in Sheets

Type / Role
n8n-nodes-base.googleSheetsTrigger - googleSheetsTrigger
Config choices
Version 1

Block 6 - Process Row Batch

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 7 - Check Odoo for Barcode

Type / Role
n8n-nodes-base.odoo - odoo
Config choices
Version 1

Block 8 - If Product Missing

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 9 - Get Odoo Category

Type / Role
n8n-nodes-base.odoo - odoo
Config choices
Version 1

Block 10 - Has Image URL?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 11 - Download Image

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.3

Block 12 - Convert Image to Base64

Type / Role
n8n-nodes-base.extractFromFile - extractFromFile
Config choices
Version 1.1

Block 13 - Create Product (With Image)

Type / Role
n8n-nodes-base.odoo - odoo
Config choices
Version 1

Block 14 - Create Product (No Image)

Type / Role
n8n-nodes-base.odoo - odoo
Config choices
Version 1

Block 15 - Mark as Done in Sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 16 - Wait on Error

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

3. Summary Table

Workflow Bulk sync products from Google Sheets to Odoo with auto image upload
Complexity advanced
Nodes 16
Categories CRM
Author khaled yasser
Published 08 Apr 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/14928/14928.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Bulk sync products from Google Sheets to Odoo with auto image upload do?

What Problem Does It Solve? Manually entering hundreds of products from a spreadsheet into Odoo is slow, repetitive, and prone to human error. Ensuring that barcodes are unique and products aren't ...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your CRM use case.