Back to Integrations
integrationWebhook node
integrationOdoo node

Webhook and Odoo integration

Save yourself the work of writing custom integrations for Webhook and Odoo and use n8n instead. Build adaptable and scalable Development, Core Nodes, and Data & Storage workflows that work with your technology stack. All within a building experience you will love.

How to connect Webhook and Odoo

  • Step 1: Create a new workflow
  • Step 2: Add and configure nodes
  • Step 3: Connect
  • Step 4: Customize and extend your integration
  • Step 5: Test and activate your workflow

Step 1: Create a new workflow and add the first step

In n8n, click the "Add workflow" button in the Workflows tab to create a new workflow. Add the starting point – a trigger on when your workflow should run: an app event, a schedule, a webhook call, another workflow, an AI chat, or a manual trigger. Sometimes, the HTTP Request node might already serve as your starting point.

Webhook and Odoo integration: Create a new workflow and add the first step

Step 2: Add and configure Webhook and Odoo nodes

You can find Webhook and Odoo in the nodes panel. Drag them onto your workflow canvas, selecting their actions. Click each node, choose a credential, and authenticate to grant n8n access. Configure Webhook and Odoo nodes one by one: input data on the left, parameters in the middle, and output data on the right.

Webhook and Odoo integration: Add and configure Webhook and Odoo nodes

Step 3: Connect Webhook and Odoo

A connection establishes a link between Webhook and Odoo (or vice versa) to route data through the workflow. Data flows from the output of one node to the input of another. You can have single or multiple connections for each node.

Webhook and Odoo integration: Connect Webhook and Odoo

Step 4: Customize and extend your Webhook and Odoo integration

Use n8n's core nodes such as If, Split Out, Merge, and others to transform and manipulate data. Write custom JavaScript or Python in the Code node and run it as a step in your workflow. Connect Webhook and Odoo with any of n8n’s 1000+ integrations, and incorporate advanced AI logic into your workflows.

Webhook and Odoo integration: Customize and extend your Webhook and Odoo integration

Step 5: Test and activate your Webhook and Odoo workflow

Save and run the workflow to see if everything works as expected. Based on your configuration, data should flow from Webhook to Odoo or vice versa. Easily debug your workflow: you can check past executions to isolate and fix the mistake. Once you've tested everything, make sure to save your workflow and activate it.

Webhook and Odoo integration: Test and activate your Webhook and Odoo workflow

Fetch Odoo customer data and export to JSON or Excel

Odoo Customers API – Export to JSON or Excel

Odoo Customers API – Export to JSON or Excel provides a simple way to fetch customer records from your Odoo database and get them back either as a structured JSON response or a downloadable Excel (.xlsx) file.

⚙️ What it does
Listens for HTTP GET requests on the endpoint /api/v1/get-customers.
Checks for the required name parameter and builds a search filter automatically.
Queries the res.partner model to return only customer contacts (is_company = false).
Delivers results in JSON by default, or as an Excel (.xlsx) export when response_format=excel is included.

📥 Parameters

name — Required. Used for partial matching on customer names (via Odoo’s Like filter).
response_format — Optional. Accepts json (default) or excel.

🔗 Examples
Excel Example
GET /api/v1/get-customers?name=Demo&response_format=excel
JSON Example
GET /api/v1/get-customers?name=Demo&response_format=json

🧩 Default fields
display_name, name, email, phone, mobile, parent_id, company_id, country_code, country_id

🛠️ Setup
Open the Odoo node and connect your Odoo API credentials.
Adjust the fieldsList in the node if you want to include more data fields (e.g., address, city, or VAT).
Trigger the flow from its webhook URL or run it manually inside n8n to test the output.

💡 Notes
Built and tested for n8n v1.108.2+

Nodes used in this workflow

Popular Webhook and Odoo workflows

Secure Web Form to Odoo CRM Lead Creation with UTM Tracking

Web-to-Odoo Lead Funnel (UTM-ready) Create crm.lead records in Odoo from any webform via a secure webhook. The workflow validates required fields, resolves UTMs by name (source, medium, campaign) and writes standard lead fields in Odoo. Clean, portable, and production-ready. Key features ✅ Secure Webhook with Header Auth (x-webhook-token) ✅ Required fields validation (firstname, lastname, email) ✅ UTM lookup by name (utm.source, utm.medium, utm.campaign) ✅ Clean consolidation before create (name, contact_name, email_from, phone, description, type, UTM IDs) ✅ Clear HTTP responses: 200 success / 400 bad request Prerequisites Odoo with Leads enabled (CRM → Settings → Leads) Odoo API Key** for your user (use it as the password) n8n Odoo credentials: URL, DB name, Login, API Key Public URL** for the webhook (ngrok/Cloudflare/reverse proxy). Ensure WEBHOOK_URL / N8N_HOST / N8N_PROTOCOL / N8N_PORT are consistent Header Auth secret** (e.g., x-webhook-token: <your-secret>) How it works Ingest – The Webhook receives a POST at /webhook(-test)/lead-webform with Header Auth. Validate – An IF node checks required fields; if missing → respond with 400 Bad Request. UTM lookup – Three Odoo getAll queries fetch IDs by name: utm.source → source_id utm.medium → medium_id utm.campaign → campaign_id If a record is not found, the corresponding ID remains null. Consolidate – Merge + Code nodes produce a single clean object: { name, contact_name, email_from, phone, description, type: "lead", campaign_id, source_id, medium_id } Create in Odoo – Odoo node (crm.lead → create) writes the lead with standard fields + UTM Many2one IDs. Respond – Success node returns 200 with { status: "ok", lead_id }. Payload (JSON) Required: firstname, lastname, email Optional: phone, notes, source, medium, campaign { "firstname": "John", "lastname": "Doe", "email": "[email protected]", "phone": "+393331234567", "notes": "Wants a demo", "source": "Ads", "medium": "Website", "campaign": "Spring 2025" } Quick test curl -X POST "https://<host>/webhook-test/lead-webform" \ -H "Content-Type: application/json" \ -H "x-webhook-token: <secret>" \ -d '{"firstname":"John","lastname":"Doe","email":"[email protected]", "phone":"+39333...", "notes":"Demo", "source":"Ads","medium":"Website","campaign":"Spring 2025"}' Notes Recent Odoo versions do not use the mobile field on leads/partners: use phone instead. Keep secrets and credentials out of the template; the user will set their own after import. If you want to auto-create missing UTM records, add an IF after each getAll and a create on utm.*.

Export Odoo Company Data via API Endpoint with JSON/Excel Output Options

How it works This workflow provides an API endpoint /api/v1/get-companies that retrieves company records directly from your Odoo database. It’s built for teams who need to query or export company data — either as structured JSON for integrations or as Excel (.xlsx) for reporting. When a request is made, the workflow: Accepts query parameters (name, response_format). Validates the name input (required for company search). Fetches all matching companies from Odoo using a like filter for partial name matches. Returns results as a JSON response or Excel file depending on the response_format parameter. This makes it ideal for quickly exporting or syncing company information with other tools. Setup steps Open the Webhook node and note the endpoint /api/v1/get-companies. Connect your Odoo API credentials in the Odoo node. Optionally update the fieldsList in the Odoo node to include more company details (VAT, address, etc.). Test using a browser or Postman: /api/v1/get-companies?name=Tech&response_format=json /api/v1/get-companies?name=Tech&response_format=excel

Fetch Odoo Customer Data and Export to JSON or Excel

Odoo Customers API – Export to JSON or Excel Odoo Customers API – Export to JSON or Excel provides a simple way to fetch customer records from your Odoo database and get them back either as a structured JSON response or a downloadable Excel (.xlsx) file. ⚙️ What it does Listens for HTTP GET requests on the endpoint /api/v1/get-customers. Checks for the required name parameter and builds a search filter automatically. Queries the res.partner model to return only customer contacts (is_company = false). Delivers results in JSON by default, or as an Excel (.xlsx) export when response_format=excel is included. 📥 Parameters name — Required. Used for partial matching on customer names (via Odoo’s Like filter). response_format — Optional. Accepts json (default) or excel. 🔗 Examples Excel Example GET /api/v1/get-customers?name=Demo&response_format=excel JSON Example GET /api/v1/get-customers?name=Demo&response_format=json 🧩 Default fields display_name, name, email, phone, mobile, parent_id, company_id, country_code, country_id 🛠️ Setup Open the Odoo node and connect your Odoo API credentials. Adjust the fieldsList in the node if you want to include more data fields (e.g., address, city, or VAT). Trigger the flow from its webhook URL or run it manually inside n8n to test the output. 💡 Notes Built and tested for n8n v1.108.2+

Capture and Structure Web Form Leads for Odoo CRM (v15-v18 Compatible)

This workflow captures raw lead data from a Webhook and formats it into a clean, structured object — perfectly tailored for Odoo CRM and create lead. It supports Odoo versions 15, 16, 17, and 18, both Community and Enterprise editions. 🔧 How It Works: Captures POST data from any web form or lead tool using Webhook. Extracts fields like: email phone name company company_name contact_name description 🔐 Credentials Required: Odoo credentials https://docs.n8n.io/integrations/builtin/credentials/odoo/ Optionally, connect to Odoo's /crm.lead endpoint via an HTTP Request node. 🎯 Use Cases: Standardize messy input from lead forms Prepare API-ready data for direct CRM insert Connect web campaigns to Odoo CRM Automate follow-up, lead scoring, or notifications 🧰 Compatibility: ✅ Odoo v15, v16, v17, v18 ✅ Odoo Community & Enterprise ✅ API or custom model compatible ✅ All n8n versions 1.0+ 🚀 Setup Instructions: Open n8n and import the workflow file. Configure the Webhook URL in your form or tool. Test the Webhook with sample data. Review the structured JSON output. (Optional) Add an HTTP node to push to Odoo CRM API.

Sync Shopify orders to Odoo sales orders with customer and product mapping

What Problem Does It Solve? Keeping product data consistent between Shopify and Odoo is a major operational challenge. Manually creating new products in Odoo every time they are added to Shopify is slow and leads to Barcode errors. Prices and titles change frequently; failing to sync these updates results in pricing discrepancies and customer confusion. This workflow solves these issues by: Automatically creating a new product in Odoo as soon as it's added to Shopify. Ensuring Barcode uniqueness by checking for existing products before creation. Syncing product images directly from Shopify to Odoo. Real-time updating of product names and prices in Odoo whenever they change in Shopify. How to Configure It Shopify Setup Connect your Shopify account using OAuth2. The workflow uses two triggers: "products/create" and "products/update". Odoo Setup Connect your Odoo API credentials in n8n. Ensure your Shopify "Vendors" match the "Product Categories" names in Odoo for accurate automated mapping. Image Handling The workflow automatically downloads the first image from Shopify and converts it to the format required by Odoo's "image_1920" field. How It Works Product Creation Path: Shopify triggers the "Product Created" node. The workflow checks Odoo for an existing product with the same Barcode. If not found, it retrieves the Odoo Category ID based on the Shopify Vendor name. It downloads the product image, extracts the file content, and creates the item in Odoo. Product Update Path: Shopify triggers the "Product Updated" node. The workflow finds the corresponding product in Odoo by Barcode. It instantly updates the Odoo record with the new Title and List Price from Shopify. Customization Ideas Add logic to sync "Inventory Levels" so Shopify and Odoo share the same stock count. Map multiple variants (Sizes/Colors) from Shopify to Odoo Product Variants. Integrate with a notification system to alert you if a Shopify Vendor doesn't have a matching Category in Odoo. For more info Contact Me

Record Odoo accounting entries from Telegram using ChatGPT (GPT-4o-mini)

What Problem Does It Solve? Business owners, managers, and accountants waste valuable time manually entering daily expenses, supplier payments, and employee advances into Odoo. Getting quick balance reports usually requires logging into the ERP, navigating multiple menus, and generating complex reports. Managing post-dated checks often relies on manual tracking, leading to missed due dates. This workflow solves these by: -- Allowing users to record financial transactions simply by sending a natural language message (e.g., via Telegram or Botpress). -- Automatically fetching real-time account balances and supplier statements, returning them instantly in the chat. -- Setting up automated calendar reminders for post-dated check due dates. -- Handling the entire double-entry accounting process in the background without human intervention. How to Configure It Chat Platform Setup** -- Add the webhook URL from this workflow to your Telegram Bot, Botpress, or preferred chat interface. Odoo Setup** -- Connect your Odoo credentials in n8n. -- Open the "Build [X] Entry" code nodes and replace the placeholder journal_id and currency_id with your actual Odoo system IDs. AI Setup** -- Add your OpenAI API key (or swap the node for Google Gemini/Anthropic). -- Open the "AI Financial Agent" node and update the # ACCOUNT MAPPING section with your specific Odoo Chart of Accounts codes. Calendar Setup (Optional)** -- Connect your Google Calendar credentials if you want the workflow to automatically schedule reminders for check due dates. How It Works Webhook catches the new text message from your chat platform. An AI Agent analyzes the Arabic natural language and extracts the intent, amount, date, check details, and specific account categories. Routing: -- For Expenses, Payments, or Advances → The workflow searches Odoo for the correct IDs, builds a balanced double-entry journal record, creates it, and posts it. -- For Post-Dated Checks → Extracts the due date and creates a Google Calendar event before posting the entry to Odoo. -- For Balance Inquiries → Fetches the relevant ledger lines, calculates total debits/credits, and formats a clean Arabic text summary. A success confirmation or the requested financial report is instantly sent back to the user in the chat. Customization Ideas Expand the AI prompt and routing switch to handle Customer Invoices or internal Petty Cash transfers. Add an approval step (e.g., sending a Slack/Email button) before the workflow officially "posts" large transactions in Odoo. Change the AI prompt to support multiple languages or different regional dialects. Log a backup of all financial chat requests into Google Sheets or a Notion database for auditing. For more info Contact Me

Build your own Webhook and Odoo integration

Create custom Webhook and Odoo workflows by choosing triggers and actions. Nodes come with global operations and settings, as well as app-specific parameters that can be configured. You can also use the HTTP Request node to query data from any app or service with a REST API.

Odoo supported actions

Create
Create a new contact
Delete
Delete a contact
Get
Get a contact
Get Many
Get many contacts
Update
Update a contact
Create
Create a new item
Delete
Delete an item
Get
Get an item
Get Many
Get many items
Update
Update an item
Create
Create a new note
Delete
Delete a note
Get
Get a note
Get Many
Get many notes
Update
Update a note
Create
Create a new opportunity
Delete
Delete an opportunity
Get
Get an opportunity
Get Many
Get many opportunities
Update
Update an opportunity

Webhook and Odoo integration details

integrationWebhook node
Webhook

Webhooks are automatic notifications that apps send when something occurs. They are sent to a certain URL, which is effectively the app's phone number or address, and contain a message or payload. Polling is nearly never quicker than webhooks, and it takes less effort from you.

Use case

Save engineering resources

Reduce time spent on customer integrations, engineer faster POCs, keep your customer-specific functionality separate from product all without having to code.

Learn more

FAQs

  • Can Webhook connect with Odoo?

  • Can I use Webhook’s API with n8n?

  • Can I use Odoo’s API with n8n?

  • Is n8n secure for integrating Webhook and Odoo?

  • How to get started with Webhook and Odoo integration in n8n.io?

Need help setting up your Webhook and Odoo integration?

Discover our latest community's recommendations and join the discussions about Webhook and Odoo integration.
Benjamin Hatton
Albert Ashkhatoyan
Víctor González
Salomão
sg tech

Looking to integrate Webhook and Odoo in your company?

Over 3000 companies switch to n8n every single week

Why use n8n to integrate Webhook with Odoo

Build complex workflows, really fast

Build complex workflows, really fast

Handle branching, merging and iteration easily.
Pause your workflow to wait for external events.

Code when you need it, UI when you don't

Simple debugging

Your data is displayed alongside your settings, making edge cases easy to track down.

Use templates to get started fast

Use 1000+ workflow templates available from our core team and our community.

Reuse your work

Copy and paste, easily import and export workflows.

Implement complex processes faster with n8n

red iconyellow iconred iconyellow icon