Skip to main content

Odoo Grabber

What Is the Odoo Grabber?

The Odoo Grabber is a zSYNC worker type whose sole job is to retrieve/read data from an Odoo system and then pass that data into a zSYNC pipeline as a structured JSON-like payload. It's the first active step in any import or sync pipeline that starts with Odoo as the source.

  • Data Source: An Odoo instance (local or remote).

  • Output: Structured data ready for mapping + transformation steps.

  • It does not write data — that's for "dumpers."

🧰 How It Works — Step by Step

1️⃣ Pipeline Placement

In any zSYNC pipeline, the Grabber is typically placed after the automatic start worker and usually before mapping and dumping steps.

start → Odoo Grabber → Mapper → Dumper → end


2️⃣ Configure the Odoo Grabber

When you click on the Odoo Grabber in the pipeline UI, you'll configure:

AuthenticationLocal Odoo – uses the same Odoo where zSYNC is installed. • Remote Odoo – use credentials for another Odoo instance.

Data Model • Choose the Odoo model from which to fetch data (e.g., product.product, sale.order). • This tells zSYNC which datatype/records to retrieve.

Filters / Domain • Define a filter to limit records — for example, only records changed since the last run: [('write_date','>=', last_execution_date)].


3️⃣ Output Format

You choose how the Grabber structures the fetched data:

📌 Browsable Data — efficient, returning only a collection of browsable odoo records, referenced by ID. Avoids pre-loading record field data. 📌 Raw JSON — human-readable. Pre-loads record field data.


🧩 When You Use the Odoo Grabber

Typical Use Cases

📍 Regular sync of changed records Like pulling all products/orders changed since last run. 👉 Great for incremental updates.

📍 Full data load On the first run, you often fetch all records to seed a destination system. 👉 zSYNC handles large result sets via cron/queue.

📍 Filtered data pipelines You can apply domain filters to pull only specific subsets of records.


📊 Developer Notes

What the Grabber Produces

The Grabber's job is collections of Odoo records in structured data (JSON-like). This then feeds onward to:

🔹 The Mapper (field mapping + transformation) 🔹 The Dumper (pushing data to a destination system)

Inside zSYNC Architecture

In zSYNC, workers are discrete units of logic:

WorkerFunction
GrabberReads data (like from Odoo, SQL DB, Excel, API)
MapperRe-shapes and renames fields
DumperWrites to a target (Odoo, API, DB, file)

This means the *Odoo Grabber is purely a data reader. It does not alter the data — only captures it for use downstream.


Summary

✔️ The Odoo Grabber pulls data from your Odoo system into zSYNC. ✔️ It's like telling zSYNC what to read and when. ✔️ You specify what model and filters to apply so only relevant data comes through. ✔️ Works with both local and remote Odoo systems. ✔️ After grabbing, the data gets mapped and sent to its destination.

Examples: