Agents

What is an agent?

A virtual employee that works without you: mission, trigger, rules and reporting. How to talk to one, and how to install it inside your Odoo.

13 min readUpdated October 1, 2026

With Aidoo AI, you ask a question and the assistant answers. An agent works without you: it wakes on a schedule, reacts to an event in Odoo, or simply waits for someone to talk to it. It carries out its mission, then reports back.

That is the difference between a tool you open and a colleague you hand a recurring task to.

Building an agent from scratch: mission, trigger, permissions and reporting.

Where to find agents

Agents live in the Agents space of the dashboard: switch with the selector at the top of the sidebar. In the AI space, the menu entry is not shown.

The five parts of an agent

A mission

What the agent must do, written in plain language. "Every morning, list validated customer invoices that are unpaid and past due. For each one, add a chatter note summarising the delay and schedule a follow-up activity for the salesperson in charge."

An AI model

Auto by default: Aidoo picks an economical model for you and keeps it up to date. You can also choose it from a short list, selected on a single criterion: reliably chaining tool calls over several turns. An economical model is enough for a simple task; careful analysis deserves a more capable one.

A trigger

A schedule ("every Monday at 8 a.m.", up to 5 slots) or an Odoo event ("as soon as a quotation becomes an order"). That is what separates an agent from a workflow you launch by hand. A conversational agent has no trigger at all: it answers when someone addresses it.

Rules

The precise list of what the agent may touch: which models, which operations, under which value conditions. These rules are checked by the server on every call, not by the AI.

You do not have to write them up front: a new agent starts in learning mode. For 48 hours it reads what its Odoo account can see, any write it has never made waits for your approval, and every access it actually made becomes a rule when the window closes. An owner or admin can restart learning later. Details in Rules and permissions.

A reporting channel

Where the result lands: the activity feed in Aidoo, an email, the Odoo chatter, a Discuss channel. On a long series, the agent delivers each item as soon as it is ready rather than keeping everything for the end: nothing is lost if the run is interrupted along the way. An agent that works without reporting back is useless.

What an agent cannot do

Three hard limits, not configurable

Whatever its settings, an agent can never delete a record, edit a model's hints, or request a file upload. These are not options turned off by default: the operations do not exist in its rule engine.

Deletion is excluded because it is irreversible and no human reviews the agent before it acts. Hints are excluded because they serve all your assistants: an autonomous agent rewriting them without review would eventually make them drift. File upload links assume someone to receive the link and drop a file: with nobody there, the tool makes no sense.

Its own mission, however, can evolve: in its discussion, explicitly ask it to remember an instruction and it rewrites its mission, previous versions being kept. Never on its own initiative, never in autonomous runs. See Hints and learning.

An agent can search, read, create, update, trigger a business action, produce aggregates and generate PDFs, within the limits you set. Depending on the options you tick, it can also:

  • propose Odoo e-mails, which you review before sending, or send them itself in automatic sending mode, one by one or in a batch, with attachments;
  • read documents attached to records (PDFs, images, scans included);
  • read and write files in the Aidoo Drive, and keep a memory file there that it rereads on every run and every conversation;
  • search the web and use external apps (Slack, Gmail…);
  • ask or delegate a task to other agents of the workspace (up to 5 Collaborating agents), each working under its own identity and its own rules;
  • ask a human a question when it cannot move forward alone.

When the agent waits for a human

Some operations wait for a decision: a write subject to approval (Human approval for writes, or a new write during learning), a proposed e-mail. The agent submits everything it has prepared, then pauses instead of carrying on as if it were done. Once everything is decided, rejections included, it resumes once with all the decisions. A scheduled agent skips its slots while an operation submitted by one of its runs is awaiting your decision.

With the Can ask a human a question option, an agent in an autonomous run can also stop on a question (with up to 4 choices) and resume as soon as it is answered, from the dashboard, the Odoo widget or a link received by e-mail. Without an answer within 7 days, it carries on cautiously.

The agent acts under a real Odoo identity

An agent has no account of its own. It borrows the Odoo identity of a team member, designated at creation.

In practice: in the Odoo history, its actions appear under that account. Any existing Odoo licence will do, a salesperson's, an accountant's, a manager's: there is no user to create for the agent, and no extra licence to budget for. The account you designate does set its scope, though: it is the first setting to choose carefully.

Odoo rights always win

An agent can never exceed the rights of the Odoo account it borrows. That is your last safety net: even an over-broad Aidoo rule stays bounded by Odoo.

The agent stores no token. It references the member, and that member's Odoo key is resolved at execution time. Change it and the agent follows; remove it and the agent pauses instead of failing in a loop.

Schedule, event, or conversation

A schedule suits periodic tasks: a morning briefing, a weekly recap, a monthly check. The agent wakes, does its work, goes back to sleep.

An event suits reactions: a new lead to qualify, a ticket to triage, an order to check. Aidoo watches an Odoo model and fires the agent when a record is created or updated according to your conditions.

A deadline is a variant of the event: the agent fires at a date carried by the record, shifted by the number of minutes you choose, before or after. Example: a meeting assistant that prepares a briefing 30 minutes before each calendar appointment, then comes back 30 minutes after it ends for the debrief (up to 3 firing points per agent). Firing is accurate to the minute: Aidoo spots upcoming deadlines ahead of time and schedules the run for the right moment, without spending credits in between. If the appointment moves, the trigger follows; if it is cancelled, nothing fires.

A conversation suits what has no timetable. A conversational agent has no trigger: it waits to be addressed. This is the mode to pick for a business assistant your team queries when they need it, rather than an automation running on its own.

Watching does not replay the past

On first start, an event-driven agent anchors itself to the present moment. It will not process records created before it was activated. To catch up on history, run it manually with the matching instruction.

Talking to an agent

Every agent has a discussion thread, not just the conversational ones. Open an agent in Aidoo: the same thread mixes your exchanges with it and the reports of its autonomous runs. You see what it did overnight, you ask why, it answers.

A conversation borrows exactly the same Odoo identity, the same rules and the same permissions as a scheduled run. An agent barred from writing on account.move gains nothing by being asked out loud. Exchanges consume credits, just like runs.

A few tools make the discussion more efficient, in Aidoo as well as in the Odoo bubble:

  • Quick commands: up to 6 buttons above the input box, set on the agent's page. A click sends a ready-made instruction; up to 3 variables ("Lead name"…) are asked on click.
  • Attachments: the paperclip attaches files (PDF, images, Word, Excel, CSV) to the message, with a model able to read images. See Attachments and OCR.
  • Stop: during a reply, the send button turns into a stop button. The tool in progress finishes, the partial reply is kept.
  • Clear conversation empties your thread with the agent. Autonomous runs stay in its activity.

One exchange at a time per conversation: wait for the reply, or stop it, before sending the next message.

The agent right inside your Odoo

Your teams do not need to open Aidoo to talk to an agent. Aidoo installs into your Odoo as a bubble, in the bottom-right corner of every screen.

Everything is set from the API keys page of the dashboard, Aidoo inside Odoo tab, with two independent switches.

Aidoo API keys page: one card to install the bubble in Odoo, another to enable the Aidoo AI chat with its Odoo account, model and permissions.
The two switches: install the bubble, and enable the chat it carries.

Installing the bubble adds Aidoo to your production Odoo. Each Odoo user sees the agents assigned to them, and nothing else: assignment is set agent by agent, by designating Odoo accounts. An agent with no assigned account shows up in no bubble at all.

Enabling the "Aidoo AI" chat adds, inside the same bubble, a conversational assistant that queries your database. You tick the authorised users: each one chats with their own Odoo account, their rights and their traceability. It is the third way to connect Aidoo's AI, alongside the Claude and ChatGPT connectors: nothing to install on the user's side, no subscription to an external assistant, exchanges are drawn from your Aidoo credits.

That chat obeys the same permissions as an MCP key, enforced server-side on every call, with a deliberately reduced set: no deletion, no file upload link, no PDF printing. On activation, only the read permissions and Feedback are ticked: the chat can therefore correct your models' hints, as described in Hints and learning. Writes, e-mail proposals and document reading remain yours to grant.

The Aidoo bubble open inside Odoo, with its Agents and Chat tabs, the current Odoo task attached to the conversation and the credit counter.
The bubble inside Odoo: two tabs, the open record attached to the conversation, the credits left.

The bubble shows two tabs: Agents for the agents assigned to you, Chat for the assistant. The credit counter stays visible, and "Open in Aidoo" switches to the dashboard. An agent's chat shows the steps of its work live, and the e-mails it proposes appear as editable cards, with Send or Don't send.

When an Odoo record is open, it shows up as a chip above the input box and goes with each of your messages, for an agent as well as for the Aidoo AI chat: no need to describe the context. The chip is ticked by default; a click unticks it ("Stop attaching this record") and that choice is remembered in your browser.

Several agents at once

On a computer, an agent's pin (Pin in a window, when hovering its row or in its header) opens it in its own window, docked at the bottom of the Odoo page, like Discuss windows. Several agents can thus work in parallel: three windows at most, the oldest closes when a fourth opens. Each window folds down to its header, and open windows are restored when Odoo reloads. A plain click on an agent still opens it in the panel. On a phone, everything stays in the panel.

Speaking instead of typing

The chat input carries a mic button: click, speak, and the text writes itself live, in your language. Nothing leaves until you send it: you proofread, fix with the keyboard if needed, then send. Dictation is free, up to 60 minutes per user per month.

The Aidoo bubble in Odoo during a dictation: the mic is red and the sentence transcribes live into the input field.
Live dictation: the text writes itself while you speak, sending stays manual.

Your voice never goes through Aidoo

Audio flows straight from your browser to the transcription service (OpenAI), in real time; Aidoo neither receives nor keeps any copy of it. On first click, the browser asks for microphone permission.

In everyone's language

The bubble displays in the connected Odoo user's language, the assistant answers in that language, and dictation transcribes in that same language. A multilingual team each sees their own interface, with nothing to configure.

One thread, two places

A conversation with an agent is the same in the Odoo bubble and in the Aidoo dashboard: it is tied to your Odoo account. Start in Odoo, carry on in Aidoo.

The eight ready-made templates

The gallery covers the most frequent uses, with permissions already trimmed to the minimum:

AreaAgent
FinanceOverdue invoice follow-up
FinanceWeekly cash summary
CRMInbound lead qualification
CRMDormant quotation alert
InventoryLow stock alert
InventoryLate receipts tracking
SupportTicket triage and prioritization
SupportDaily support summary

Starting from a template is the shortest path: you adjust the mission and the schedule, the rules are already framed.

What agents change in practice

An agent does not replace an Odoo automation. A rule like "if the amount exceeds X then alert" is best coded in Odoo, with no AI and no per-run cost.

Agents become interesting when the task requires judgement: writing a follow-up adapted to the customer's context, deciding whether a lead is worth qualifying, spotting what looks out of place in a list. These are tasks nobody knows how to express as a rule, but a human handles in seconds.

Next step