Filtering contacts when using Odoo integration with n8n in cloud setup

Need help with contact filtering in n8n Odoo workflow

Hey everyone! I’m building an automation workflow using n8n that connects to Odoo for daily contact synchronization. The basic connection works perfectly, but I’m stuck on one thing.

I want to set up selective contact import instead of pulling all contacts from Odoo. My workflow should grab contacts once per day and then sync them with another system called Revo.

I’ve seen mentions of using “domain” parameters for filtering data, but the documentation isn’t very clear on how to implement this properly. Are there other methods to filter records before the import happens?

Both my Odoo and n8n instances are running on cloud platforms, so I’m working within SaaS limitations.

Has anyone successfully implemented contact filtering in a similar setup? Any guidance on the proper syntax or alternative approaches would be really helpful.

Thanks for any assistance you can provide!

Domain filtering works, but here’s what saved me tons of headaches. Skip the complex domain syntax and just use search_read with simple field conditions in the n8n Odoo node. You can target fields like customer_rank, supplier_rank, or category_id without fighting bracket syntax. For daily syncs, I pull contacts modified in the last 24 hours using write_date comparisons. The trick? Store your last successful sync timestamp as a variable in n8n, then use that for the next run. You’re only processing changes instead of filtering the entire database. Cloud Odoo handles incremental pulls way better than large filtered queries. If you’re still hitting timeouts, use the offset parameter and process contacts in chunks of 100-200 records per call. Been running this setup for months without any domain syntax headaches.

Been there with Odoo filtering - domain parameter syntax is brutal, especially on cloud.

Hit this exact problem last year with a client. We were syncing thousands of contacts daily, only wanted active ones from specific categories. Odoo domain filtering kept breaking from syntax errors and API timeouts.

Switched to Latenode instead of n8n and it fixed everything. Their Odoo integration handles filtering much better - you set conditions visually instead of fighting domain syntax. Built-in retry logic actually works when Odoo gets slow.

Contact sync runs perfectly now. We filter by creation date, customer status, and tags in one flow. Takes 2 minutes to set up what used to be hours of debugging.

Latenode’s daily scheduling is way more reliable than n8n cloud too. No more random failures or timeouts.

Check it out: https://latenode.com

i just add a custom ‘sync-ready’ tag in Odoo for contacts i want to sync. way easier than dealing with domain operators that randomly break on cloud instances. then n8n filters by that tag - works perfectly and no syntax headaches.

Getting domain filtering right in Odoo through n8n can be a pain. I’ve been dealing with similar cloud setups for about two years now. The domain parameter needs this format: [[‘field_name’, ‘operator’, ‘value’]]. For contacts, try [[‘is_company’, ‘=’, False], [‘active’, ‘=’, True]] to get only active individual contacts. You can stack multiple conditions with logical operators. Here’s what worked best for me: add a custom boolean field in Odoo contacts called ‘sync_enabled’ or whatever. Now you can manually control which contacts get pulled without wrestling with complex domain logic. Way easier to maintain. You could also filter by date ranges if you just need recently modified contacts: [[‘write_date’, ‘>=’, ‘2024-01-01’]]. Cloud Odoo gets cranky with large queries due to rate limiting. Set up pagination in your n8n workflow and sync in smaller batches instead of grabbing everything at once. Pro tip: test your domain syntax directly in Odoo before you implement it in n8n.