Claude Code · Odoo v19

I don't click through Odoo.
Claude Code runs it for me.

My ERP has four standing agents, not one login. Each owns a domain, talks to Odoo directly through its JSON-RPC API, and hands its output to the next one. No exporting to a spreadsheet, no re-typing numbers into a deck — the agents read the ledger themselves.

See how I set this up for others
Odoo v19 · JSON-RPC API · 4 Claude Code agents, 1 database
The setup

Why one agent per domain, not one agent for everything.

A single generalist agent that "does Odoo" ends up shallow at all three jobs. Instead, each agent gets a narrow mandate, its own reasoning style, and read/write access scoped to the models it actually needs (account.move, stock.picking, product.product — whichever it owns). They compare notes, they don't step on each other.

The four agents

Warren, Nick, Fabian, and Zig.

Finance

Warren

Reads the P&L, balance sheet, and cash position straight out of account.move — no waiting for a monthly export. Runs valuations, margin analysis, and capital allocation calls with Buffett's margin-of-safety discipline and Munger's inversion. When a number looks off, Warren flags it before it becomes a board slide.

Owns: P&L, balance sheet, valuation, cash flow
Supply chain

Nick

Lives inside stock.picking and product.product. Runs demand forecasting, reorder points, safety stock, and ABC classification directly against live inventory — the same discipline I use running supply chain for Teatower. No stockouts discovered a week late because someone forgot to check a report.

Owns: inventory, reorder points, demand planning, MRP
ERP core

Fabian

The one who actually built the instance: chart of accounts mapped to Belgian PCMN, opening balances reconciled to the penny against the official bilan, users and access rights, module configuration. Fabian is the bridge — he's the reason Warren and Nick get clean data instead of having to clean it themselves.

Owns: chart of accounts, opening balances, config, JSON-RPC automation
Sales

Zig

Works crm.lead the way a Ziglar-school closer works a pipeline — every lead, stage, and objection logged in Odoo, not a side spreadsheet a rep forgets to update. Scores leads, flags stalled deals, and drafts the next follow-up in a consultative, serve-first voice instead of a generic template.

Owns: CRM pipeline, lead scoring, follow-up drafting
How it actually runs

From a question to an answer, no spreadsheet in between.

I ask one agent a question in plain language.
"Warren, what's our 2025 margin?" "Nick, what's stockout risk on the top 20 SKUs?" "Zig, which deals stalled this week?"
The agent queries Odoo directly.
Via execute_kw over JSON-RPC — search_read on the model it owns, no manual export/import step.
It hands off when the question crosses domains.
Warren needs clean COGS data from a model Fabian maintains; Nick's reorder recommendations feed Warren's cash flow projection; Zig's closed-won deals become Warren's next revenue line.
I get one answer, not four logins to check.
The agent that owns the question answers it, sourced from the actual ledger, not a stale export.
Why this beats a human clicking through Odoo

The ERP stops being a UI you visit.

No re-typing

Numbers move between finance, supply chain, and configuration without ever leaving the database.

Always current

Every answer is read live from Odoo — not from last week's exported CSV.

Domain discipline

Each agent reasons the way a specialist would, not a generalist skimming a dashboard.

Scales to any Odoo instance

Same pattern works whether it's a €150K trading company or a multi-warehouse operation.

More in this series

The QBR angle, and the JD Edwards side.

Want this on your own Odoo

I set this up for other companies too.

If your Odoo (or JD Edwards) is a UI you dread opening, I can wire Claude Code agents into it the same way — scoped to what you actually need answered.

Hire me on Fiverr