Dynamic Reports Pro
Schedule, build, and project your financial reports without writing a line of Python or XML.
Why this module
Dynamic Reports Pro
One bad schedule never freezes the queue
The hourly cron wraps each schedule on its own. If a delivery throws, the error is recorded on that schedule and its next run is still advanced, so the rest of the run keeps moving and the broken one is not retried until you fix it.
Email and chat, independently
A single schedule can deliver to an email list and a Slack, Microsoft Teams, or generic HTTP webhook in one run. Each channel is tracked separately and the schedule counts as successful if any one channel lands, so an email failure never silences the webhook.
Build reports without code
Section headers, account roll-up lines, and arithmetic formulas are defined in a form and publish straight into the standard viewer, PDF, and XLSX pipeline. No Python, no XML, no developer ticket to add a subtotal line.
Day in the life
A controller automates the Monday morning pack.
She opens the report builder and composes a one-page operating summary: a section header, a handful of account roll-up lines keyed by code prefix, and two formula lines for margin and a cost ratio. A division by zero in the ratio resolves to zero rather than crashing the render. She saves the filter set as a shared view so her two analysts load the same baseline, then wires a schedule: every Monday at 7am, PDF and XLSX to the finance distribution list plus the leadership Teams channel. The attachments link by URL in the webhook payload to stay under the chat size limit. When the demo mailbox bounces one week, the Teams card still posts, the schedule logs the email error, advances its next run, and the rest of the morning queue delivers untouched. She also points a forecast at the published P and L and projects it twelve months out at compound-linear growth before her budget meeting.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
When a single schedule's delivery throws, the cron records the error on that schedule and still advances its next run, so a broken schedule never freezes the queue and is not retried each pass until fixed.
Email and webhook run independently. The schedule is marked successful if at least one channel succeeds, so an email failure does not block the webhook and vice versa.
An empty recipient list errors loudly with a clear message instead of silently sending the report to nobody.
In both mode, a PDF render failure degrades gracefully and the XLSX still ships. In PDF-only mode the same failure raises rather than delivering an empty pack.
Webhook payloads link attachments by web URL instead of embedding bytes, keeping under Slack and Teams size limits. A non-2xx response surfaces the gateway's own rejection body so you can see why it was refused.
The builder formula evaluator treats division by zero as zero and resolves a missing identifier to zero, so a mistyped subtotal or ratio line never crashes a render.
Forecasting guards an inverted base date range (from later than to) before it projects anything, rather than producing nonsense periods.
What is inside
Built to do the job, end to end.
- Scheduled multi-channel delivery. Bind any published report to options, recipients, and a daily, weekly, or monthly cadence. An hourly cron delivers PDF, XLSX, or both, to email plus a Slack, Microsoft Teams, or generic HTTP webhook, with per-schedule failure isolation and channel-independent success tracking.
- Form-driven report builder. Compose new reports without Python or XML: section headers, account roll-up lines by code prefix or account type (with sign), and arithmetic formulas, with drag-to-reorder ordering. Each builder publishes into the standard OWL viewer, PDF, and XLSX pipeline and renders a single Amount column.
- Per-user saved views. Capture a complete filter set under a name, pin frequently used views for quick access, optionally share a view company-wide so a team loads the same baseline, and track use count and last-used telemetry to find dead weight.
- Multi-period forecasting. Project any published report (P and L, Cash Flow, or a custom build) forward N months using flat or compound-linear monthly growth, scaling every numeric cell across the horizon.
- Auditable schedule history. Each delivery records its run time, status, error, and attachment count on the schedule, and the underlying compute is captured as a reproducible execution row with the exact options preserved in the report engine's log.
Honest about the edges
What this does not do, so nothing surprises you.
- The custom report builder is form-driven, not a WYSIWYG canvas. The drag gesture reorders lines in an editable list; it does not place blocks on a free-form layout.
- Each builder renders a single Amount column. Multi-column, multi-period, and comparative output from the builder is on the roadmap, not in this release.
- Forecasting offers two growth methods, flat and compound-linear monthly growth. There is no seasonality fitting, no statistical model selection, and no baseline-versus-scenario side-by-side rendering. The projection scales the base report's own numbers forward.
- Forecast output is a projected data structure, not a delta column rendered alongside actuals in the viewer. Side-by-side scenario comparison is future work.
- There is no budget-versus-actual computation in this module. The forecast scales a report's own numbers; it does not read budget data.
- Scheduled attachments carry a 30-day retention hint but are not auto-deleted. Cleanup of old ir.attachment rows is left to the user.
Odoo 19 custom financial report builder, scheduled accounting report email Odoo, automated report delivery PDF XLSX cron, Slack Teams accounting report webhook, saved report filter views Odoo, multi-period financial forecast Odoo Community, P&L cash flow projection Odoo, drag to reorder report lines builder, custom P&L balance sheet builder no code, multi-company report scheduling
Languages
Available in 19 languages
The interface ships translated out of the box. Switch language in Odoo and the fields, menus, and messages follow.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
A dependency free asynchronous job queue that runs long running and fan out work out of band of the request that...
Post Irish payslips to the general ledger on the Irish chart of accounts
Interactive drag and drop Gantt planner for Odoo 19 Community project tasks with a deterministic server side sche...
Employment Hero Connector is the integration core of the ERP Heritage Employment Hero suite, providing per compan...
The United Kingdom country pack for the ERP Heritage Employment Hero integration
Please log in to comment on this module
Brilliant
You did amazing work with this one. My first ever comment on this site has to go to you.
Brilliant
Thanks, mate.
There are no comments yet!