Best practices and troubleshooting
Where results land, the in-Odoo widget, and the most common symptoms: agent paused or awaiting approval, run stopped early, abnormal consumption, inconsistent results.
8 min readUpdated October 1, 2026
An agent nobody reads is useless, and a misbehaving agent is almost always diagnosed in the same place: its run log.
Where results land
Four channels, which can be combined:
| Channel | Good for |
|---|---|
| Aidoo activity feed | Always on, the full history with step detail |
| A recap you read outside the tool | |
| Odoo chatter | A note on the record concerned, where your teams work |
| Discuss channel | A team following alerts continuously |
The Odoo chatter is the most underrated channel: the note lands on the invoice or quotation concerned, exactly where the person who must act will see it.
A daily digest also gathers all your agents' activity into a single morning message.
When an agent is waiting on you (an operation to approve, the answer to a question), it says so in Aidoo and, depending on its notification settings, in the Odoo bubble or by email.
The in-Odoo widget
Your teams can check their agents without leaving Odoo: a bubble appears at the bottom right of your production Odoo and shows each user the agents assigned to them, along with their history.
Assignment is done by Odoo login: right at creation, in the Notifications & access step, then at any time in the agent's configuration. A salesperson sees their agents, not accounting's.

Opening an agent shows its history, exactly as in the dashboard: the reports of its runs and your exchanges with it in a single thread. The back arrow returns to the list, and the credit counter stays in sight. Operations to approve, suggested emails and the agent's questions are handled there too, without going through Aidoo.
The open record follows your messages. When you write to an agent from an Odoo record (a quotation, a lead, an invoice), that record is attached to the message: a chip above the input field shows it. It is ticked by default; one click unticks it, and that choice is remembered in your browser. The agent only reads the record if your request concerns it, and always within its rules.
Several agents at once. On desktop, the pin next to an agent (Pin in a window) opens it in its own window at the bottom of the Odoo screen, up to three at the same time. A plain click still opens the agent in the panel.
The same bubble can also host an Aidoo AI chat, an alternative to Claude or ChatGPT for users who would rather not leave Odoo. The two functions are enabled independently from the API keys page.
Symptoms and causes
The agent paused on its own
That is intended behaviour, not a failure. The reason shows in the "Agent automatically paused" banner on its page. Four possible causes:
- Consecutive failures. The configured threshold (3 by default) was reached. Open the last run's log: the cause is there.
- Odoo unreachable. The pre-flight check failed several times in a row. Check your Odoo connection.
- Invalid Odoo identity. The member whose rights the agent borrows no longer has a valid Odoo key, or it expired.
- Write cap exceeded. If you filled in Max writes / run, a run that goes over it pauses the agent.
Fix the cause, then click Resume on its page.
It no longer runs at the scheduled time
Its status shows no pause, yet its scheduled runs no longer go out. Most frequent cause: an operation is awaiting your approval. The last report ends by stating that an operation is awaiting your approval and that the agent is paused. Until it is decided, scheduled runs are skipped, consuming nothing. Approve or reject it: the agent resumes straight away with your decision. See human approval.
Other causes to check: an active-hours window that excludes the scheduled time, the agent's monthly budget exhausted, an empty credit pool, or the global kill switch turned on.
The run stops before the end
The report always says why. The most common reasons:
| What stopped it | What to do |
|---|---|
| Credit limit per run reached | Raise Max credits / run (up to 1,000), or bound the volume in the mission |
| Maximum duration exceeded | Raise Max duration (up to 4,500 seconds), or split the mission |
| Tool call limit reached | Empty Max actions / run (unlimited) or raise it |
| Write safety threshold reached | Raise Max writes / run, or ask the agent to group its writes |
| Loop detected | Make the mission more precise: the agent repeats the same call without finding what it is looking for |
| Agent's monthly budget reached | Raise its monthly budget, or wait for the following month |
| Workspace credits running out mid-run | Take a top-up, or wait for the monthly renewal |
All these limits are set in Limits & safety, at creation or from the agent's page.
It consumes far more than expected
Look in this order:
- External tools. A connected application with no restriction reloads its whole catalogue every turn. This is the most frequent cause.
- The volume processed. If your database has grown, an uncapped mission now handles ten times more records.
- The number of round trips. The log shows every tool call. An agent reading the same record ten times has a poorly worded mission.
- The model. Check nobody moved it up a tier.
- The documents read. Every new document read costs 1 credit per 20 pages; an agent that opens every attachment of a large batch will feel it.
Results vary from one run to the next
The mission leaves too much latitude. An agent is not deterministic: vague instruction, variable result.
Rewrite the mission and pin down what must be fixed: the exact filter, the maximum number of items, the expected summary format. "Give me an update on unpaid invoices" and "list invoices overdue by more than 30 days, at most 20, sorted by age, and finish with the total" do not produce the same stability.
It finds nothing although the data exists
Almost always an Odoo rights issue, not an Aidoo rules issue. Sign in to Odoo as the account whose identity the agent borrows, and search for the same records. If they do not show up, that is your cause.
Then check multi-company rules: the record may belong to a company that account cannot see.
An event-driven agent never fires
Three checks:
- First start does not replay the past. The agent only handles records created or updated after it was activated.
- The conditions may be too strict. Test the same filter in Odoo to see whether it returns records.
- Watch frequency depends on your tier. On Starter, the check happens at most once an hour: an event is not handled within seconds.
For a date-based trigger, Aidoo spots upcoming due dates at least every 10 minutes: a record created or moved less than 10 minutes before its due date may fire late, or even be missed.
"Credits exhausted"
No run goes out while the pool is empty, and nothing is billed. Runs due in the meantime are skipped; the agent resumes its rhythm as soon as credits come back. Take a top-up, wait for the monthly renewal, or free up budget by spacing an agent out. See Credits and consumption.
If the message says your monthly AI credit limit has been reached, it is your personal ceiling that was hit, not the pool: only an owner or an admin can raise it, from the Team page.
An agent did something unexpected in Odoo
If the run is still in progress, click Stop in the "Run in progress" bubble of its thread: the current tool call finishes, then nothing else goes out.
Then open its run log: every call is there, with its parameters. You will know exactly what was changed and when.
Then tighten up: add a value condition to the rule concerned, set a write cap, tick Human approval for writes, or switch the agent to workflows-only mode while you rework its configuration.
Five habits that avoid trouble
One agent, one mission. An agent that chases unpaid invoices and qualifies leads and watches inventory is unmanageable. Three separate agents can be tuned, diagnosed and paused independently.
Dry-run after every mission change. The Test (dry run) button simulates writes: it costs a few credits and saves corrections in Odoo.
Set a tight write cap. The field is empty (unlimited) by default; five per run suits most missions that are starting out. An agent hitting the cap teaches you something about its mission.
Read the log during the first week. After that, the daily digest is enough.
Pick the Odoo licence that matches the scope. An agent borrows any existing Odoo account: the one you designate already bounds what it can see and change, before the Aidoo rules even apply.
Next step
- Rules and permissions: tightening the scope
- Credits and consumption: controlling cost