Odoo modules

Creating a module

From describing the need to a tested module: connecting the connector, describing, letting Claude write, deploying to a sandbox and fixing.

7 min readUpdated October 1, 2026

This guide starts from a need expressed in plain language and stops at a module genuinely running on a test Odoo instance.

Connecting the connector

Aidoo Modules has its own MCP connector, distinct from the one that reaches your Odoo data. Prerequisite: an active Odoo connection in Aidoo AI, from which Aidoo infers your modules' edition and version.

Add the connector in Claude

Same as for Aidoo AI: Settings → Connectors → Add custom connector, with the Modules connector URL. Authentication runs through OAuth, no key to copy.

Authorize the workspace

You are redirected to Aidoo, you pick the workspace, you authorize. The connector then receives a key from the module-specific family, with no access whatsoever to your Odoo data.

Aidoo's My modules page: the shared sandbox with its state, then a module card with its technical name, Odoo edition and file count.
The My modules page: the shared sandbox on top, your projects below with their status.

Each project shows its status, its technical name, the Odoo edition and version it targets, and its file count. At the top sits the environment's shared sandbox: a single trial Odoo where every enabled module lives together. The Sandbox page of the Modules menu sums up the state of each environment's sandbox (Production, Staging) and the modules installed in it.

Describing the need

This is the step that determines the quality of the result. Three things to spell out.

What it does, from the user's point of view. Not "add a many2one field", but "every order must be attached to a site, and we must be able to filter orders by site".

Where it shows up. In which view, at which point on the screen, with which columns in the list. Without that, the field will exist without being visible where you expect it.

The business rules. Mandatory or not, default value, who may change it, what happens when the record changes state.

Create a "Site management" module. It adds a Site model with a code, a name, a customer and a planned end date. Sales orders and invoices can be attached to a site; the field is visible in the list view and filterable. Add a tracking screen showing, per site, the total ordered and the total invoiced.

What Claude does

It reads your Odoo structure

The models involved, their real fields, their relations. That is why the generated module fits your existing customisations instead of starting from a stock Odoo. To see the stock starting point, browse for instance the res.partner page of our explorer.

It creates the skeleton

Manifest, directory tree, base files. The Odoo edition and version are inferred from your connection, you have nothing to specify.

It writes the files

Python models, XML views, access rights, demo data. Every file is checked against the syntax rules of your Odoo version, and a warning gets fixed before deployment. You see each file as it goes and can ask for a correction at any point.

It deploys to a sandbox

An ephemeral Odoo instance is provisioned, your module is installed on it, and you receive a login URL.

Following the deployment

Installation takes a few minutes. Claude reads the logs and tells you where the provisioning stands, then whether the installation succeeded. On a Python or XML error, it reads the trace and fixes it on its own.

Testing for real

This is the step not to rush

A module that installs without error is not a module that does what you want. Open the sandbox, create records, follow your real flow end to end.

A module screen in Aidoo: the Test sandbox card with its buttons, the Media card, the file tree and the editor showing the manifest.
The module screen: the test sandbox on top, the files and their content below.

A module page has three tabs: Overview (test sandbox, going live, media), Code (Odoo versions, files and editor) and Odoo Store (publishing listing).

Everything starts from the Test sandbox card, on the Overview tab. "Open sandbox" signs you into the trial Odoo automatically, with no credentials to type. "Logs" follows the installation live, and "Update this module" reinstalls this module alone, leaving the environment's other modules untouched.

The Code tab shows the file tree and its content: the manifest, the models, the views, the access rights. That is what Claude wrote, readable and editable by hand.

What to check:

  • the field appears where you need it, not only in the form
  • filters and grouping work in the list view
  • business rules fire at the right moment
  • nothing is broken in the neighbouring standard screens
  • access rights match your user profiles

When something is off, describe it plainly:

The site field does not appear in the invoice list view, and I would like to be able to group by site from the Group by menu.

Claude fixes and redeploys. Every change returns the project to draft: a fresh test is required before any production deployment.

Screenshots and video

Once the sandbox is ready, the Media card (beta) on the Overview tab produces screenshots and a video of the module's screens: "Generate", pick photos, video or both, and optionally say what to show. Allow about a minute. Claude can also start them:

Take screenshots of the per-site tracking, with the ordered and invoiced totals.

The screenshots join the module's gallery and can illustrate its Odoo Apps Store listing.

Porting the module to another Odoo version

On the Code tab, "Another version" copies the code of the version on screen to another Odoo version (16.0 to 19.0) and adjusts the version number in the manifest. Nothing is ported automatically: Aidoo flags the files whose syntax does not suit the target version, and Claude does the porting.

Port the Site management module to Odoo 18.

Each version has its own tab. Editing a variant does not return the base version to draft. The test sandbox installs the module's base version.

The module icon

An Odoo module has an icon in the Apps menu. You can ask for one, chosen from a library of business icons with a background colour, or change it by clicking the icon at the top of the module page. It is shared by all versions of the module.

Put an orange construction-site icon on the module.

What it costs

Each install or update of a module in the sandbox costs 25 credits, drawn from the pool shared with agents. Writing files, reading the schema and taking screenshots cost nothing beyond the conversation itself.

In practice, a simple module takes two to four deployments to get right: budget around a hundred credits.

One sandbox at a time during the trial

The free trial allows a single concurrent sandbox and three module projects, with no production deployment. The Standard plan raises that to three sandboxes and unlimited projects.

Next step