Help with Contact Filtering in n8n Odoo Connector
Hi everyone! I’m trying to set up an automated workflow using n8n that connects to my Odoo instance. Both platforms are running as SaaS solutions. My goal is to create a daily automation that pulls customer data from Odoo and then pushes it to my Revo system for synchronization.
The basic connection between n8n and Odoo is working perfectly. However, I’m struggling with one specific requirement - I need to apply some kind of filtering logic to only fetch certain customer records instead of importing everything.
I’ve heard that there’s a way to use something called “domain” parameters for filtering, but I can’t find any documentation or examples that clearly explain how to implement this. Are there other methods to filter records before the import process starts?
Has anyone successfully implemented selective data import from Odoo using n8n? Any guidance on how to configure filtering parameters would be really helpful.
Thanks for any assistance you can provide!
Had the same issues building our daily Odoo sync. The domain approach works, but I’d add a few things that really helped me. Use limit and offset with your domains for better performance. With large datasets, pagination is your friend - I do 100-500 records per call with offset to process in batches. Stops timeouts and makes everything more reliable. Here’s the game changer: use write_date for incremental syncs. Instead of pulling all filtered records daily, just filter by [[‘write_date’, ‘>=’, last_sync_timestamp]]. Cuts processing time and API calls dramatically. Pro tip for testing domain syntax - use Odoo’s web interface first. Apply your filters through the UI, then check the browser’s network tab to see the actual domain parameters. Saved me tons of trial and error. One gotcha with SaaS - make sure your API user has read permissions for all fields you’re filtering on. Domains can fail silently without proper permissions.
Had this exact filtering problem last year building a customer sync pipeline. Domain parameters work but get messy fast with complex filters.
Switching to Latenode instead of n8n saved me tons of headaches. The filtering is way more intuitive - you can set up conditional logic without wrestling with domain syntax.
Latenode lets you pull Odoo records and apply multiple filter conditions through a simple visual interface. Plus better error handling when filters don’t match your data formats.
I built a similar daily sync filtering customers by status, creation date, and custom fields. Takes 10 minutes to set up what’d be hours of domain parameter debugging elsewhere.
The Odoo connector handles SaaS deployments perfectly and you can test filters in real time before scheduling.
Check it out: https://latenode.com
Domain filtering works great in n8n’s Odoo node, but the syntax might seem strange initially. You pass the domain as an array of tuples in additional fields. For instance, to fetch customers created in the last 30 days, you would use [[‘create_date’, ‘>=’, ‘2024-01-01’]]. If you only want active customers, it would be [[‘active’, ‘=’, true]]. When combining conditions, you need to use operators like ‘&’ for AND or ‘|’ for OR at the beginning. One challenge is with dates, as Odoo expects them in ISO format. I usually add a DateTime node before the Odoo node to format the date correctly. A helpful tip is to use search_count first to test your domain syntax before fetching actual data, as it prevents downloading unwanted records. Additionally, complex filtering with related models is doable too; for example, [[‘partner_id.category_id.name’, ‘=’, ‘Premium’]] filters by customer category. Checking Odoo’s API docs can provide more examples, but experimentation is key to getting them to work in n8n.
quick tip - domains overwhelming you? just use a Set node after your Odoo fetch to filter results. works great for simple stuff like customer status or region filtering. sure, it’s less efficient than domain params, but it’s way easier to debug and tweak later.