Odoo is an all-in-one business suite: CRM, quotes, invoicing, inventory, website, each one an app you switch on or off. Many small companies run part of their business in it and keep a website form, a Gmail inbox, a spreadsheet or a team chat on the side. That is where an automation tool like n8n helps: it moves information between Odoo and everything else, with no copy and paste. If n8n is new to you, start with what n8n is, whether it's free, and examples.

Here is what I checked in the official n8n and Odoo documentation, and how I would approach a first connection. The most common blocker is not technical: it is the Odoo subscription plan.

What can n8n do with Odoo?

n8n ships with a built-in Odoo node. A node, in n8n, is a building block that performs an action in a specific piece of software: here, reading or writing data in your Odoo database. According to the n8n documentation, it covers four kinds of data, with the same five operations for each.

Node resourceWhat it is in OdooOperations
ContactCustomer, supplier and people recordsCreate, delete, get, get all, update
OpportunitySales leads in the CRMCreate, delete, get, get all, update
NoteInternal notesCreate, delete, get, get all, update
Custom resourceAnother Odoo model of your choice (quotes, products…)Create, delete, get, get all, update

A "model", in Odoo, is a type of record with a technical name: res.partner for contacts, crm.lead for opportunities, sale.order for quotes and orders. The custom resource lets you reach the ones the node doesn't list directly.

The documentation also says this node can be used as a tool by an AI agent in n8n. In practice, an agent that reads an incoming email can look up the customer's record in Odoo before drafting a reply. I keep this kind of agent read-only: a person approves anything written to Odoo.

Which Odoo plan do you need to connect n8n?

Ask this before anything else. n8n talks to Odoo through its external API, the entry point that lets outside software read and write in your database. According to Odoo's pricing page and documentation, accessed on October 17, 2026, this access is limited to the Custom plan.

Odoo planExternal API (n8n possible)Note
One App FreeNoInstalling Studio moves you to the Custom plan
StandardNoHosted on Odoo Online
CustomYesOdoo Online, Odoo.sh or on-premise

Odoo states that connections started from Odoo itself (payment providers, shipping carriers, bank sync) don't count as external API use: they stay available on Standard. What matters is the direction of the connection. n8n comes in to fetch the data, so you need the Custom plan.

I don't quote prices here: they depend on the number of users and change regularly. Check Odoo's pricing page and weigh the extra cost of the Custom plan against the time the automation would save you. The automation ROI calculator helps with that math.

How do you connect n8n to Odoo, step by step?

1. Check your plan and database address

Write down your Odoo address (for example https://your-company.odoo.com) and the database name. On Odoo Online, it is usually the first part of the address. If in doubt, your Odoo partner can tell you in a minute.

2. Create a user just for n8n

I never plug an automation into the owner's account. I create an Odoo user reserved for n8n, with only the rights it needs: write access to the CRM and read access to invoicing, for example. If a workflow goes wrong, the damage stays contained, and Odoo's history clearly shows what came from the automation.

3. Generate an API key

Logged in as that user, open the preferences, then the account security tab, and create a new API key with a clear description ("n8n production"). The key is shown only once: copy it right away. The Odoo 19 documentation says you set a duration when you create it, three months at most, so add a calendar reminder to renew it before it expires.

4. Create the Odoo credentials in n8n

In n8n, add credentials of the Odoo type and fill in the four fields: the site URL, the username (as it appears in Odoo), the API key in place of the password, and the database name. The n8n documentation also accepts a password, but recommends the API key if some functions fail.

5. Test read-only

First workflow: one Odoo node, Contact resource, "get all" operation, limited to five results. If you see your first five contacts, the connection works. Don't create anything until this test passes.

6. Build on a copy of the database

For workflows that write to Odoo, I work on a test database or a copy first. You don't want to discover a duplicate bug on your real customer list.

Which n8n and Odoo workflows should you set up first?

The three workflows below are the ones I would suggest first, because they remove repetitive data entry without touching the accounting. Take a typical company: an eight-person joinery business that writes its quotes in Odoo and gets requests through its website form.

WorkflowTriggerWhat n8n doesOdoo data
Website request to CRMForm submittedLooks up the contact, creates it if missing, opens an opportunity, alerts the teamContact, Opportunity
Quotes to follow upEvery morningLists sent quotes with no reply and prepares the follow-up or the call taskCustom resource (quotes)
Monday summaryEvery MondaySummarizes open opportunities by stage and sends them by email or chatOpportunity

Website request to CRM pays off the most. Without automation, someone retypes the name, phone number and request into Odoo, often in the evening. With n8n, the opportunity exists a few seconds after the form is sent, and the team gets an alert like this one:

Fromn8n automation

ToSales team

SubjectNew request: custom kitchen, Ms. Leroy

On submit

Ms. Leroy sent a request from the website: custom kitchen, installation wanted in the spring. The contact already existed in Odoo, so a new opportunity was added to her record at the "New" stage. No one is assigned yet.

The tricky part is duplicates: before creating a contact, n8n first checks whether it exists (by email address, then by phone). It is one more step in the workflow, and it is what keeps your CRM clean.

Quotes to follow up reuses the logic from how to automate quote follow-up emails, with Odoo as the source: every morning, n8n reads quotes in the "sent" state, works out how old they are and decides whether to send a follow-up or create a call task.

The Monday summary is the easiest to build and a good first exercise: it only reads. An AI step can then write a three-sentence summary from the numbers pulled from Odoo.

Should you use n8n or Odoo's own automations?

Odoo has its own automation rules, built with Studio, its customization tool. They fire when a value changes, when an email arrives, after a delay, or on a call from an outside system. They can update a record, create an activity, send an email, a text message or a WhatsApp message, and notify other software by webhook (a message sent automatically to a web address). Studio is also part of the Custom plan.

SituationMy pickWhy
Everything happens in OdooOdoo automation ruleNo extra tool to maintain
Odoo plus two or three other toolsn8nOne place to see and fix the exchanges
An AI step (sorting, summary, draft)n8nMore freedom to choose and control the AI model
An instant reaction to a change in OdooBothOdoo sends a webhook, n8n handles the rest

Odoo itself warns in its documentation that a misconfigured webhook can disrupt the database and take time to revert, and recommends bringing in a technical person. This is the kind of setup I build in my automation projects for small businesses, always starting on a test database.

What are the limits, and when should you skip it?

  • You are on Standard and the extra cost isn't justified. If you only have one or two entries a week, a manual export or a CSV import is enough.
  • The API is changing. Odoo has announced the removal of its older XML-RPC and JSON-RPC endpoints in Odoo 22 (fall 2028) and Odoo Online 21.1 (winter 2027), in favor of a new API. Keep n8n up to date and check that your workflows still run after each Odoo upgrade.
  • Accounting. I advise against creating or editing invoices automatically without human approval. Reading invoices for a dashboard, yes. Writing them, only with a check.
  • A process that is still fuzzy. If your CRM stages change every month, the automation will break every month. Settle it by hand first.
  • Sensitive data. An Odoo database holds personal data. Choose where n8n runs and what goes through an AI model, in line with the GDPR if you work with EU customers.

If you are torn between the Custom plan, the built-in rules and n8n, book a 30-minute call: I'll look at your Odoo apps and your other tools, and tell you which workflow to start with, or whether it is better not to connect anything.

Sources accessed on October 17, 2026

Frequently asked questions

Can n8n connect to Odoo for free?

On the n8n side, the Odoo node is built in: nothing extra to buy. On the Odoo side, the external API is only available on the Custom plan; the One App Free and Standard plans don't include it. Check the terms on Odoo's pricing page.

Do you need a password or an API key to connect n8n to Odoo?

n8n accepts both. I recommend an API key tied to an Odoo user dedicated to the automation, with limited rights. The n8n documentation also recommends the API key when a function fails with the password.

Does the n8n Odoo node handle quotes and invoices?

Not directly: it offers contacts, opportunities and notes. For everything else, the custom resource lets you target another Odoo model, such as quotes (sale.order). For invoices, I suggest sticking to read-only.

Is it better to use n8n or Odoo's automations?

If everything happens in Odoo, the built-in automation rules are enough. As soon as several tools are involved, or an AI step is useful, n8n is easier to follow and fix. The two work well together: Odoo sends the signal, n8n handles the rest.

Does n8n work with Odoo Online, Odoo.sh and self-hosted Odoo?

Yes, as long as the external API is reachable. n8n only needs the database address, the database name and a user. According to Odoo's pricing page, all three hosting options fall under the Custom plan.