Skip to main content

Sync paid Shopify order contacts with Odoo and remove duplicates

Workflow preview

Workflow preview
100%
Sync paid Shopify order contacts with Odoo and remove duplicates preview
Open on n8n.io

1. Workflow Overview

Quick overview This workflow triggers on paid Shopify orders and syncs the order’s shipping contact details into Odoo Contacts (res.partner) by searching for existing contacts and creating new ones...

Best for

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

Tools used

n8n-nodes-base.splitout, n8n-nodes-base.code, n8n-nodes-base.filter, n8n-nodes-base.odoo, n8n-nodes-base.stickynote, n8n-nodes-base.shopifytrigger

Source and attribution

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

Original n8n.io source

1.1 Workflow description

Title
Sync paid Shopify order contacts with Odoo and remove duplicates
Workflow name
Sync paid Shopify order contacts with Odoo and remove duplicates

Quick overview

This workflow triggers on paid Shopify orders and syncs the order’s shipping contact details into Odoo Contacts (res.partner) by searching for existing contacts and creating new ones, with a secondary duplicate-check branch that splits out IDs for additional matching.

How it works

  1. Triggers when a Shopify order is marked as paid and retrieves the order payload.
  2. Searches Odoo Contacts (res.partner) for an existing matching contact and flags whether a record is found.
  3. If a matching Odoo contact exists, creates a new Odoo contact using the Shopify shipping address, email, and phone.
  4. In parallel, splits out the incoming order’s id field and uses it to run an additional Odoo contact search for potential duplicates.
  5. If a contact is found in the duplicate-check path, creates another Odoo contact from the same Shopify shipping and customer fields.

Setup

  1. Add Shopify Access Token credentials and enable the Shopify orders/paid trigger for your store.
  2. Add Odoo API credentials with access to read and create records in Contacts (res.partner).
  3. Review the Odoo search criteria in both contact search steps and adjust them to match your intended duplicate-detection key (for example, email or phone rather than the order id).
  4. Confirm the field mappings from Shopify shipping_address and order email/phone to Odoo res.partner fields match your Odoo data model and required fields.

Requirements

  • Shopify Store: A live Shopify store with webhook access for orders/paid.
  • Odoo Instance: An Odoo instance with API access enabled to manage res.partner (Contacts).
  • n8n Instance: A self-hosted or cloud n8n workflow automation tool.
  • Access Credentials: Valid API credentials for both Shopify (Access Token) and Odoo.

Customization

  • Update vs. Delete: To update existing contacts instead of replacing them, remove the delete node and use the Odoo update operation with the contact ID.
  • Address Source: Switch from shipping_address to billing_address in the Create Contact nodes if billing details should be synced.
  • Duplicate Rules: Adjust the "Split Out" node to check email or phone instead of ID, depending on your Odoo duplicate-matching criteria.

Additional info

Resources

Support & Help

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 - Split Out4

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

Block 2 - Code6

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 3 - Code

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 4 - Filter

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

Block 5 - Code1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 6 - Filter1

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

Block 7 - Odoo (Search Contact)

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

Block 8 - Odoo (Create Contact)

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

Block 9 - Odoo (Delete a contact)

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

Block 10 - Odoo (Search Contact)1

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

Block 11 - Odoo (Create Contact)1

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

Block 12 - Sticky Note

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

Block 13 - Sticky Note1

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

Block 14 - Sticky Note2

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

Block 15 - Sticky Note3

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

Block 16 - Sticky Note4

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

Block 17 - Shopify (Trigger Paid Order & Get Data)

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

3. Summary Table

Workflow Sync paid Shopify order contacts with Odoo and remove duplicates
Complexity advanced
Nodes 17
Categories CRM
Author SpaGreen Creative
Published 15 Jun 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/16353/16353.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 Sync paid Shopify order contacts with Odoo and remove duplicates do?

Quick overview This workflow triggers on paid Shopify orders and syncs the order’s shipping contact details into Odoo Contacts (res.partner) by searching for existing contacts and creating new ones...

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.