Aidoo AI

Reports and PDFs

aidoo_report to aggregate without pulling data, aidoo_print to generate Odoo documents: invoices, quotations, delivery notes.

4 min de leituraAtualizado a 7 de agosto de 2026

Esta página ainda não está traduzida para o seu idioma: é apresentada em inglês.

Two very different tools, joined by one thing: they produce a usable result without going through a list of records.

aidoo_report

Makes Odoo do the maths instead of pulling data back to add it up. This is the tool for consolidated figures.

ParameterRole
modelThe model to aggregate over
group_byThe grouping field or fields
measureThe field to sum
domainThe filter applied before grouping

What is my invoiced revenue per month since January?

The assistant groups account.move by date month, sums amount_total, and filters on validated customer invoices. Only the twelve results travel: not the thousands of invoices.

Why it matters

On a database of 50,000 invoices, asking for "total invoiced this year" the wrong way means pulling 50,000 records back in pages of 80. Slow, expensive in context, and the assistant risks concluding from a partial page.

With aidoo_report, Odoo returns a number.

Phrase it in terms of the result

"How much", "what total", "breakdown by", "average of" steer the assistant towards aidoo_report. "List me", "show me the" steer it towards aidoo_query. On large databases, the phrasing changes everything.

Crossing several dimensions

Break down this year's revenue by salesperson and by month.

Several fields in group_by produce a cross-tab. That is the basis of any dashboard: salesperson × month, category × warehouse, status × company.

The limits of aggregation

aidoo_report sums the requested field, on the requested model. It does not join models or compute derived values: a margin that does not exist as an Odoo field cannot be aggregated. In that case the assistant will read the data and compute it itself, or you will build the field in Odoo.

aidoo_print

Generates a PDF through Odoo's QWeb report engine and returns a download link. The document is your Odoo's own, with your layout, your logo and your terms.

Parameters: model, ids, and report_name for a custom report.

Generate the PDF for invoice INV/2026/00042.

Reports recognised out of the box

ModelDocument produced
sale.orderQuotation or sales order
account.moveInvoice or credit note
purchase.orderPurchase order
stock.pickingDelivery or receipt note
stock.picking.batchBatch transfer
mrp.productionManufacturing order
account.paymentPayment receipt

For any other document, one added by a module, or one of your custom reports, give its Odoo XML identifier in report_name.

Generate the report "my_module.report_datasheet" for product reference PRD-100.

You must be signed in to Odoo

The link points straight at your Odoo, which checks your rights. Open it in a browser where your Odoo session is active, otherwise you will land on the login screen.

The link is not a file hosted by Aidoo: the PDF is produced by Odoo on demand, at the moment you click. It therefore always reflects the current state of the record.

Several documents at once

Generate the PDFs of every June invoice still unpaid.

The assistant first finds the invoices concerned, then requests printing across all the identifiers. Odoo produces a single PDF containing every document.

Combining the two

The pair answers a large share of reporting requests:

Give me the five customers with the highest outstanding balance, and generate each one's account statement.

aidoo_report identifies the five customers, aidoo_query finds their open invoices, aidoo_print produces the documents. Three calls, one usable answer.

If you run this sequence every month, save it as a workflow: you will replay it with a sentence.

Diagnostics

"Report not found"

The XML identifier is wrong, or the report belongs to a module that is not installed. In Odoo, the identifier is visible in developer mode, under Settings → Technical → Reports.

The PDF is empty or incomplete

The Odoo report is at fault, not Aidoo. Run the same print from the Odoo interface: if the result is identical, the problem lies in the report template.

Totals do not match my Odoo dashboard

Compare the scopes: currency, company, statuses included, cancelled lines. Ask the assistant for the domain and the measure field it used, then check them against your Odoo screen's filters. The gap almost always comes from there.

Next step