AutomationFlowsE-commerce › Complete Shopify to Odoo Integration: Sync Orders, Products & Customers

Complete Shopify to Odoo Integration: Sync Orders, Products & Customers

ByEvozard @evozardconsulting on n8n.io

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. Trigger (Shopify – Order Created & Paid): The workflow starts when a new order…

Event trigger★★★★☆ complexity25 nodesShopify TriggerOdoo
E-commerce Trigger: Event Nodes: 25 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #4069 — 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": "58SwDGkKWvymNKBw",
  "name": "Shopify To Odoo With Contact,Product & Order",
  "tags": [],
  "nodes": [
    {
      "id": "060517b2-43e3-4775-84f5-2fe660b8c621",
      "name": "Shopify Trigger",
      "type": "n8n-nodes-base.shopifyTrigger",
      "position": [
        -1240,
        100
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "247c471a-0aca-4ea4-9fca-1f6938381d12",
      "name": "Sale Order1",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -680,
        380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "95b90184-694c-455d-9f1f-46386294d825",
      "name": "Code3",
      "type": "n8n-nodes-base.code",
      "position": [
        -480,
        380
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "714a4825-f547-48dc-a214-72cf2896beba",
      "name": "Split Out3",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -300,
        380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5f22d282-8348-45cd-8b2c-3d8082a2ba7e",
      "name": "Odoo4",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -120,
        380
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "14d21739-e440-4596-9467-5230b7ad7723",
      "name": "Sale Order Line1",
      "type": "n8n-nodes-base.odoo",
      "position": [
        340,
        380
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3442d2af-371a-4fe6-9637-d8abaab8d8ee",
      "name": "Code4",
      "type": "n8n-nodes-base.code",
      "position": [
        -760,
        -120
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "5aac59d6-4e17-4348-bfcb-86fedb86c4c1",
      "name": "Odoo",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -960,
        380
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "bd26ec00-eb43-490f-9890-aa43713abdc3",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        -580,
        -120
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "01e97eb2-40b9-4996-87d0-f5f956dbe6e8",
      "name": "Odoo5",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -400,
        -120
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "6484999a-fe5e-4e61-a159-e77ea75cc4f6",
      "name": "Odoo6",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -580,
        100
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "5458ed41-c617-44bc-9777-50e183767852",
      "name": "Filter2",
      "type": "n8n-nodes-base.filter",
      "position": [
        -220,
        100
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "97d5f9d1-3e3e-4fb8-8003-3a01ce4ab55d",
      "name": "Code6",
      "type": "n8n-nodes-base.code",
      "position": [
        -960,
        100
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "243d2118-60d8-4fff-84b7-010312724277",
      "name": "Split Out4",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -760,
        100
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "3b49fb58-59f8-411e-9df5-dba7fea38908",
      "name": "Code5",
      "type": "n8n-nodes-base.code",
      "position": [
        -400,
        100
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "8ed8d2bf-18c3-4fa6-9655-56ecd3eef138",
      "name": "Odoo7",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -40,
        100
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "fa37a8f2-820b-4250-b138-21918d087aa0",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1020,
        -160
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0dda3a43-02a3-41ca-a20a-6dfde7063406",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        40
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "81b9a469-63ef-4854-b7f7-2e78994bb9de",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        340
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8e17a1d4-580a-4625-a6e4-ed64912d2d93",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1000,
        340
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "7e239bd8-2c3f-4138-86c3-9bed19466553",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -460,
        -200
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "5650361b-f983-406c-a583-8b39ee77137b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -60,
        0
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "73faf3e4-910a-4bef-bf97-41392f69c3fd",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        220,
        300
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "2e2fe776-0f64-421a-8e57-d08615ecfe74",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -740,
        300
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0aa3bfc7-b509-47c8-a876-d3a13a9ffa03",
      "name": "Search Odoo Contact",
      "type": "n8n-nodes-base.odoo",
      "position": [
        -960,
        -120
      ],
      "parameters": {},
      "typeVersion": 1,
      "alwaysOutputData": true
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "28cc7b2b-9690-43fd-945e-b7f10c781c1c",
  "connections": {
    "Odoo": {
      "main": [
        [
          {
            "node": "Sale Order1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code3": {
      "main": [
        [
          {
            "node": "Split Out3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code4": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code5": {
      "main": [
        [
          {
            "node": "Filter2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code6": {
      "main": [
        [
          {
            "node": "Split Out4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Odoo4": {
      "main": [
        [
          {
            "node": "Sale Order Line1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Odoo6": {
      "main": [
        [
          {
            "node": "Code5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Odoo5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter2": {
      "main": [
        [
          {
            "node": "Odoo7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out3": {
      "main": [
        [
          {
            "node": "Odoo4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out4": {
      "main": [
        [
          {
            "node": "Odoo6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sale Order1": {
      "main": [
        [
          {
            "node": "Code3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Shopify Trigger": {
      "main": [
        [
          {
            "node": "Odoo",
            "type": "main",
            "index": 0
          },
          {
            "node": "Search Odoo Contact",
            "type": "main",
            "index": 0
          },
          {
            "node": "Code6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Search Odoo Contact": {
      "main": [
        [
          {
            "node": "Code4",
            "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 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. Trigger (Shopify – Order Created & Paid): The workflow starts when a new order…

Source: https://n8n.io/workflows/4069/ — 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 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

Odoo, Shopify Trigger
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