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.

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

Create Bosta shipping orders from Odoo invoices using OpenAI GPT models

What Problem Does It Solve? Manual Data Entry Bottlenecks:** Moving shipping data from Odoo to Bosta manually is slow and prone to errors, especially during high-volume periods. Address Mismatches:** Odoo stores addresses as unstructured text, while Bosta requires strict Zone/District IDs. Mismatches lead to failed deliveries and returns. Messy Labels:** Long ERP product names look unprofessional on shipping labels. This workflow solves these by:** Instantly creating the shipping order in Bosta when an Odoo invoice is confirmed. Using an AI Agent to intelligently parse raw addresses and map them to the exact Bosta ID. Ensuring the high operational standards required by automating data cleaning and COD rounding. How to Configure It Odoo Setup Create an Automation Rule in Odoo that sends a POST request to this workflow's Webhook URL when an invoice state changes to "Confirmed". Credentials Connect your Odoo, OpenAI, and Telegram accounts in the respective n8n nodes. Add your Bosta API Key in the Header parameters of the Create Bosta Order node. Product Mapping Open the Summarize Items code node and update the NAME_MAP object to link your Odoo product names to short shipping labels. Data Table Ensure the Fetch Zones node is connected to your Bosta Zones/Districts data table in n8n. How It Works Trigger:** The workflow starts automatically when an invoice is confirmed in Odoo. Fetch & Process:** It pulls customer details and invoice items, then aggregates quantities (e.g., turning 3 lines of "Shampoo" into "Shampoo (3)"). AI Analysis:** The AI Agent cross-references the raw address with the official Bosta zones list to strictly select the correct IDs. Execution:** The order is created in Bosta. If successful, the process is complete. Error Handling:* If any step fails, a Telegram message is sent immediately with the invoice number to alert the operations team*. Customization Ideas Write Back:** Add a node to update the Odoo invoice with the generated Bosta tracking number. Multi-Courier:** Add a switch node to route orders to different couriers (e.g., Aramex, Mylerz) based on the city. Campaign Logging:** Log successful shipments to a spreadsheet to track fulfillment metrics. Notification Channels:** Change the error alert from Telegram to Slack or Email. If you need any help Get in Touch

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