{"product_id":"woocommerce-paid-order-odoo-crm-sync-no-duplicates-n8n","title":"WooCommerce Paid Order → Odoo CRM Sync (No Duplicates) | n8n","description":"\u003ch3\u003eSync WooCommerce paid orders to Odoo Contacts—without creating obvious duplicates (n8n)\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow listens for \u003cstrong\u003eWooCommerce order updates\u003c\/strong\u003e when an order is \u003cstrong\u003ecompleted\/paid\u003c\/strong\u003e and syncs the customer’s \u003cstrong\u003eshipping details\u003c\/strong\u003e into \u003cstrong\u003eOdoo CRM Contacts (res.partner)\u003c\/strong\u003e, including a practical two-step duplicate check to reduce redundant contacts.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eTriggers on WooCommerce\u003c\/strong\u003e \u003cem\u003eorder.updated\u003c\/em\u003e events, then continues \u003cem\u003eonly\u003c\/em\u003e when \u003cstrong\u003eorder status equals completed\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eSearches Odoo Contacts\u003c\/strong\u003e in \u003cstrong\u003eres.partner\u003c\/strong\u003e to determine whether a matching contact already exists.\u003c\/li\u003e\n  \u003cli\u003eIf an existing contact is detected (or specific matching rules indicate the first match path), it \u003cstrong\u003ecreates a new Odoo contact\u003c\/strong\u003e using the WooCommerce order’s \u003cstrong\u003eshipping address\u003c\/strong\u003e, \u003cstrong\u003eemail\u003c\/strong\u003e, and \u003cstrong\u003ephone\u003c\/strong\u003e fields.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRuns a secondary duplicate check\u003c\/strong\u003e by splitting the incoming contact id data and performing a second \u003cstrong\u003eOdoo contact search\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eIf the second check detects a duplicate, it \u003cstrong\u003ecreates another Odoo contact\u003c\/strong\u003e from the same WooCommerce shipping and customer details.\u003c\/li\u003e\n  \u003cli\u003eIf the order is \u003cstrong\u003enot completed\u003c\/strong\u003e, the workflow takes \u003cstrong\u003eno action\u003c\/strong\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eYou want \u003cstrong\u003eOdoo CRM lead\/contact records\u003c\/strong\u003e created from WooCommerce sales the moment orders are paid.\u003c\/li\u003e\n  \u003cli\u003eYour store customers use varying identifiers, so you need configurable \u003cstrong\u003eduplicate detection\u003c\/strong\u003e (e.g., email\/phone matching criteria) during the sync.\u003c\/li\u003e\n  \u003cli\u003eYou’re building an \u003cstrong\u003ee-commerce to CRM automation\u003c\/strong\u003e for SaaS operations and want consistent field mapping from WooCommerce shipping into Odoo.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWooCommerce\u003c\/strong\u003e: API credentials + webhook\/event setup for \u003cem\u003eorder.updated\u003c\/em\u003e when status changes to \u003cstrong\u003ecompleted\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eOdoo\u003c\/strong\u003e: API access to \u003cstrong\u003eres.partner\u003c\/strong\u003e for searching and creating contacts.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNodes\/logic used\u003c\/strong\u003e: \u003cem\u003eif\u003c\/em\u003e, \u003cem\u003efilter\u003c\/em\u003e, \u003cem\u003esplit out\u003c\/em\u003e, \u003cem\u003ecode\u003c\/em\u003e, \u003cem\u003eno op\u003c\/em\u003e, and \u003cem\u003eodoo\u003c\/em\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eField mapping\u003c\/strong\u003e: WooCommerce \u003cstrong\u003eshipping_address\u003c\/strong\u003e, \u003cstrong\u003eemail\u003c\/strong\u003e, and \u003cstrong\u003ephone\u003c\/strong\u003e into Odoo contact fields.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eConfigure the Odoo search nodes’ matching criteria to ensure the duplicate checks behave exactly as you need.\u003c\/p\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45916547907763,"sku":"N8N-18766","price":46.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/lS6q7FbA8hvS2HM0onViD_5zRiaB8T.png?v=1788035210","url":"https:\/\/buyflowscripts.com\/products\/woocommerce-paid-order-odoo-crm-sync-no-duplicates-n8n","provider":"N8N Commerce","version":"1.0","type":"link"}