AutomationFlowsE-commerce › Sync Paid Shopify Order Contacts with Odoo and Remove Duplicates

Sync Paid Shopify Order Contacts with Odoo and Remove Duplicates

BySpaGreen Creative @spagreen on n8n.io

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. Triggers…

Event trigger★★★★☆ complexity17 nodesOdooShopify Trigger
E-commerce Trigger: Event Nodes: 17 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #16353 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "C5GiokodVlu0nDdJ",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Automated Shopify to Odoo Contact Synchronization with Duplicate Removal",
  "tags": [],
  "nodes": [
    {
      "id": "41c8ff9f-0b2e-4e5a-88f8-f63e401ba376",
      "name": "Split Out4",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -304,
        304
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "35b75a24-8adf-4195-889d-fb0ddcce4e51",
      "name": "Code6",
      "type": "n8n-nodes-base.code",
      "position": [
        -496,
        304
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "42e219f7-c4c1-4b1b-b369-d39909b46cce",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        -304,
        32
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "e21dc260-52d5-4a80-bbe3-ad94cae6a5c3",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        -128,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "344f4bf6-a390-48e4-80d6-2edc76c13eec",
      "name": "Code1",
      "type": "n8n-nodes-base.code",
      "position": [
        96,
        304
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "7256a739-96c0-4378-bebe-f012b45cf1cc",
      "name": "Filter1",
      "type": "n8n-nodes-base.filter",
      "position": [
        272,
        304
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "18532f37-5ce8-4e10-9e32-1e4f579fb269",
      "name": "Odoo  (Search Contact)",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -496,
        32
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "9963cbb2-13a3-45a7-8215-3cc988dbdd2a",
      "name": "Odoo  (Create Contact)",
      "type": "n8n-nodes-base.odoo",
      "position": [
        64,
        32
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "c7997e72-5fe7-449c-9d9a-c3f528b119ff",
      "name": "Odoo  (Delete a contact)",
      "type": "n8n-nodes-base.odoo",
      "position": [
        304,
        32
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8a2a4dd0-9a44-450c-a42e-924fb992862f",
      "name": "Odoo  (Search Contact)1",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -96,
        304
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "54c611b1-c634-42a3-8850-ff336b92a8d3",
      "name": "Odoo  (Create Contact)1",
      "type": "n8n-nodes-base.odoo",
      "position": [
        512,
        304
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "a052cd93-4cb4-4d91-8315-11981c8a90cb",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1248,
        32
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8571f773-b8a1-4019-baa5-5d56d751a423",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1712,
        32
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "7f737df4-9a59-4cee-8d5c-1f150d977c43",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -48
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "a455d838-a5ac-4d88-9fce-2f516e9a7f35",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -544,
        -32
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "59c1c8cd-48a5-4a6b-adb6-01f7a58ee4cc",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        240
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "4a5df0eb-f00c-44b0-9db2-eee43b09b7a5",
      "name": "Shopify (Trigger Paid Order & Get Data)",
      "type": "n8n-nodes-base.shopifyTrigger",
      "position": [
        -768,
        176
      ],
      "parameters": {},
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "52f60065-58be-4d4e-8ea2-72fe0579d722",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code1": {
      "main": [
        [
          {
            "node": "Filter1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code6": {
      "main": [
        [
          {
            "node": "Split Out4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Odoo  (Create Contact)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter1": {
      "main": [
        [
          {
            "node": "Odoo  (Create Contact)1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out4": {
      "main": [
        [
          {
            "node": "Odoo  (Search Contact)1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Odoo  (Create Contact)": {
      "main": [
        []
      ]
    },
    "Odoo  (Search Contact)": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Odoo  (Create Contact)1": {
      "main": [
        []
      ]
    },
    "Odoo  (Search Contact)1": {
      "main": [
        [
          {
            "node": "Code1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Odoo  (Delete a contact)": {
      "main": [
        []
      ]
    },
    "Shopify (Trigger Paid Order & Get Data)": {
      "main": [
        [
          {
            "node": "Odoo  (Search Contact)",
            "type": "main",
            "index": 0
          },
          {
            "node": "Code6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

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. Triggers…

Source: https://n8n.io/workflows/16353/ — original creator credit. Request a take-down →

More E-commerce workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

E-commerce

This workflow triggers when a Shopify order is marked paid, then finds or creates matching products and the customer in Odoo and creates an Odoo sales order, with success notifications to Slack and Gm

Shopify Trigger, Odoo, Slack +1
E-commerce

This workflow functions like the integration of Shopify products with Odoo products, Shopify customers with Odoo customers, and paid Shopify orders with Odoo sales orders containing multiple products.

Shopify Trigger, Odoo
E-commerce

Sync New Shopify Products to Odoo Product. Uses odoo, shopifyTrigger, stopAndError. Event-driven trigger; 6 nodes.

Odoo, Shopify Trigger, Stop And Error
E-commerce

Sync New Shopify Customers to Odoo Contacts. Uses odoo, shopifyTrigger, stopAndError. Event-driven trigger; 6 nodes.

Odoo, Shopify Trigger, Stop And Error
E-commerce

Sync New Shopify Products to Odoo Product. Uses odoo, shopifyTrigger. Event-driven trigger; 5 nodes.

Odoo, Shopify Trigger