- Home
- Apps
- SaaS Tools
- Scheduled Report Email Subscriptions
Illustrative previewAutomatically email any Odoo report or dashboard as a PDF or XLSX attachment to defined recipients on a daily,
weekly, or monthly cadence — with per-recipient data scoping, dynamic filters, and full delivery logging. Built, installed, and supported by ECOSIRE.
What is Scheduled Report Email Subscriptions?
Automatically email any Odoo report or dashboard as a PDF or XLSX attachment to defined recipients on a daily, weekly, or monthly cadence — with per-recipient data scoping, dynamic filters, and full delivery logging. Built, installed, and supported by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- Odoo Compatibility
- Odoo 17, Odoo 18, Odoo 19
- Editions
- Enterprise & Community
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- PostgreSQL 12+
About this Product
Managers keep asking for the same numbers, so someone on the team spends the first hour of every Monday exporting the sales pivot, the aged-receivables report, and the inventory valuation to PDF, then forwarding them around. Odoo can generate every one of those reports on demand, but out of the box it has no concept of a recurring subscription: there is no built-in way to say "email the Q-to-date sales analysis as XLSX to the regional managers every Monday at 7am, each one filtered to only their own team." You can bolt something together with ir.cron and a hand-written server action, but that is brittle, invisible to non-developers, and impossible for a manager to self-manage. That gap is exactly what this module fills.
We build a first-class report.subscription model (with models.Model, typed fields, and @api.depends computes for next-run previews) that lets an admin or manager define a subscription against any QWeb report or list/pivot view in the system. Each subscription carries its cadence (daily/weekly/monthly with time-of-day and timezone), its output format (qweb-pdf for pixel-perfect PDFs, XLSX via the report engine or an xlsxwriter writer for spreadsheets), a recipient list built from res.partner/res.users and free-form addresses, and a domain-based filter so the attachment reflects live data at send time. A scheduled ir.cron job wakes on your interval, resolves each due subscription, renders the report through Odoo's own report registry, and dispatches it via mail.mail / ir.mail_server so it respects your existing outgoing-mail configuration.
Two capabilities are where the engineering earns its keep. First, per-recipient data scoping: rather than blasting one identical PDF to everyone, the module can re-render the report in each recipient's security context, so ir.rule record rules and multi-company boundaries are honored — a branch manager only ever receives rows they are entitled to see, enforced by the same ORM access layer as the live UI, not a bolt-on filter. Second, delivery reliability: every send writes a report.subscription.log row (rendered-at, recipient, attachment size, SMTP result), failed sends are automatically retried with backoff on the next cron pass, and admins get a delivery dashboard plus optional failure alerts. Security is wired properly via ir.model.access.csv and record rules so managers can manage their own subscriptions without touching anyone else's.
Because this is a build-to-order module, you are not downloading a generic binary and hoping it fits. After a short scoping call we confirm exactly which reports, cadences, formats, and scoping rules you need, we build and test the module against your Odoo edition (Community or Enterprise) and version (17.0, 18.0, or 19.0), and we run it on a staging copy of your database for UAT before anything touches production. Typical delivery is one working week from confirmed scope. You receive the full installable source, a git repository handover, technical and user documentation, a training session, and a post-go-live support window — so the subscriptions keep landing in the right inboxes long after launch.
What you get
- Installable module source code targeting your exact Odoo edition and version (17.0 / 18.0 / 19.0)
- Installation and configuration on your environment, including `ir.cron` cadence and outgoing-mail server wiring
- Technical documentation: data model, security rules, cron design, and extension points
- End-user guide plus a live training session for the managers who will own subscriptions
- UAT on a staging copy of your database with a documented rollback plan before production
- Git repository handover with full commit history and tagged release
- Post-go-live support window for defect fixes and configuration adjustments
- Configured seed subscriptions for the initial set of reports agreed during scoping
Who this is for
Operations / Regional Manager
Wants the KPIs they check daily — sales analysis, order backlog, aged receivables — to arrive in their inbox automatically each morning, already filtered to their region, without logging in or asking anyone to export them.
Finance Controller
Needs recurring, auditable delivery of financial reports (P&L snapshots, receivables, cash position) as PDF and XLSX to the leadership team on a fixed calendar, with a delivery log proving each report actually went out.
Odoo Administrator / IT Lead
Owns the Odoo instance and wants scheduled reporting handled by a properly secured, record-rule-aware module instead of one-off server actions and hand-written crons that no one else can maintain.
COO / Business Owner
Wants a single weekly executive digest of the numbers that matter emailed every Monday, and wants confidence that each recipient only sees data they are cleared to see.
How Scheduled Report Email Subscriptions Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Recurring scheduled delivery | Purpose-built cron engine with daily/weekly/monthly cadence and timezone control | Possible, but you build and maintain the cron and scheduling logic yourself | Usually included, though cadence options vary by module | No subscription concept — reports are on-demand only |
| Per-recipient data scoping | Report re-rendered per recipient, honoring `ir.rule` and multi-company | Achievable but easy to get wrong; a security-sensitive build | Rare — most send one identical attachment to everyone | Not applicable — no scheduled sending exists |
| Output formats | QWeb PDF plus XLSX, chosen per subscription | Whatever you take the time to implement | Often PDF only, or a fixed format | Manual export of PDF/XLSX by hand, one report at a time |
| Delivery logging & retries | Full delivery ledger with automatic backoff retries and alerts | Extra work most DIY builds skip | Basic logging at best; retries uncommon | None |
| Fit to your reports | Scoped to your exact reports, filters, and recipients | Fully bespoke, at full development cost | Generic — you adapt to its assumptions | Manual process, no automation |
| Version & edition support | Built and tested for your Odoo 17/18/19, Community or Enterprise | Depends on your team's version expertise | Listed versions only; may lag your edition | Ships with core, but without this feature |
| Maintenance & support | Post-go-live support window plus source and git handover | Entirely your team's responsibility | Vendor support varies; often ticket-only | Covered by core, but feature must be built anyway |
| Setup effort for you | We install, configure, and train — you approve on staging | Your developers' time end to end | Self-install and self-configure | Manual export and forward, every single time |
Frequently Asked Questions about Scheduled Report Email Subscriptions
How long does delivery take?
This is a build-to-order module, not an instant apps.odoo.com download. After we lock the scope on a short call, typical delivery is one working week depending on how many reports, cadences, and scoping rules are involved. You get a firm timeline in writing once the scope is confirmed.
Which Odoo versions and editions do you support?
We build against Odoo 17.0, 18.0, or 19.0, on either Community or Enterprise. We confirm your exact version and edition during scoping and build/test specifically against it. Enterprise-only report types (like the spreadsheet/Documents apps) are supported when you run Enterprise; Community deployments use QWeb PDF and `xlsxwriter`-based XLSX.
Can each recipient get data filtered to only what they're allowed to see?
Yes — that is a core capability. We can render the report in each recipient's security context (`with_user()`), so Odoo's own `ir.rule` record rules and multi-company boundaries decide which rows appear. A branch manager receives only their branch's data, enforced by the same access layer as the live UI.
Will it work with our custom or third-party reports?
In most cases yes. Any report exposed as a QWeb report action, or any list/pivot view, can be subscribed. During scoping we inventory the specific reports you want and confirm each one renders cleanly to PDF/XLSX in a headless (cron) context — a handful of reports that depend on interactive UI state may need a small adaptation, which we call out up front.
What happens if an email fails to send?
Every send is recorded in a delivery log with its SMTP result. Failed sends are automatically retried with backoff on the next cron pass up to a configurable limit, and you can optionally alert an admin when a subscription exhausts its retries. Nothing fails silently.
How are updates and support handled after go-live?
Every build includes a post-go-live support window for defect fixes and configuration tweaks. Because you receive the full source and git repository, your team can maintain it too. When you upgrade Odoo to a new major version, we offer a paid migration to keep the module compatible — quoted separately from the initial build.
Can subscriptions be created or paused programmatically?
Yes. The `report.subscription` model is exposed over Odoo's standard XML-RPC / JSON-RPC API, so external systems can create, update, pause, or trigger subscriptions without touching the UI — useful when subscription setup is driven by another system.
Related Modules

Saudi Arabia Payroll (GOSI, WPS/Mudad)
KSA-localized Odoo payroll: GOSI contributions, Mudad/WPS export, end-of-service, and expat vs. Saudi national salary structures.

Saved Cards & Tokenized 1-Click Checkout for Odoo
A build-to-order Odoo module that vaults customer cards via gateway-side tokenization so repeat and subscription buyers can reorder in one click. ECOSIRE designs, builds, installs, and supports it on Odoo 17, 18, or 19.

Send WhatsApp Message
A build-to-order Odoo integration that lets your team send WhatsApp messages to customers directly from Odoo records — quotations, invoices, deliveries, and support tickets — with approved templates, delivery tracking, and full chatter logging. ECOSIRE scopes, builds, installs, and supports it for you.

Shift Schedule Management
A build-to-order Odoo module for planning employee shifts, publishing rosters, and allocating workdays across teams and sites. ECOSIRE scopes, builds, installs, and supports it for your business — it is not an off-the-shelf download.
Scheduled Report Email Subscriptions
Automatically email any Odoo report or dashboard as a PDF or XLSX attachment to defined recipients on a daily, weekly, or monthly cadence — with per-recipient data scoping, dynamic filters, and full delivery logging. Built, installed, and supported by ECOSIRE.
- Dedicated `report.subscription` model with typed `fields` and `@api.depends` computes that preview the next run date and human-readable cadence
- Subscribe any QWeb report (`qweb-pdf`) or list/pivot view — bind by report `report_name` / action, not a hard-coded whitelist
- PDF output via Odoo's native `IrActionsReport._render_qweb_pdf` for pixel-perfect, letterhead-consistent documents
- XLSX output through the report engine or an `xlsxwriter`-backed writer for analysis-ready spreadsheets