Periodic Reporting and Reminders v.15

The tool to design, generate, and periodically send reports and reminders. Report designer. List generator. Auto reminders


The tool does not require extra dependencies beside standard Odoo apps.
Current version:


Often it is truly comfortable to open a set of documents and process them one by one without extra clicks. It is even better if the system prepares such a list regularly. For such situations this tool serves. It lets configure automatic report for any Odoo document type in a form of lists, where each record will satisfy criteria you have chosen, will suit pre-defined time frames, and will contain only the data you would like to share.

Reports by any Odoo object

Configure the tool to send periodic reports and reminders for any Odoo documents including custom ones: sale orders, opportunities, warehouse transfers, request for quotations, tasks, MRP operations, etc.

Configurable statistics

Choose data columns to include. Attach the report as an electronic table (xlsx), or/and as a PDF file, or/and as table right in email body. Apply aggregation (average, sum) for numeric columns. Introduce email greetings. Show or hide links

Up-to-date data under analysis

Include into reporting only those objects which suit your period requirements. It is possible to filter by any date and datetime fields of a target Odoo model

Suitable information

Apply any kind of filters by stored fields to include only documents which are of interest. Filter by a chosen partner or responsible user. Sort table lines by any searchable model field

Flexible recurrence

Send lists with any periodicity: everyday, each last Friday of a month, on a definite date of the year, and so on. Make reports reflect company calendars

Periodic reports for external and internal use

Any partner might be one of reminder recipients: internal or portal users, customers, suppliers, and even Odoo mail channels

Assigned statistics managers

The groups Lists Reminder 'Manager' and 'Only Own' (according to 'Responsible') allow to manage reports. Make sure you trust such users: they may send certain documents without a permission for those

Reports without restrictions

Have as many periodic reports as you wish. In any system language. For any interested internal group of third party contacts.

Odoo lists reminder relative periods
Odoo report notification
Xlsx table attached to a reminder

Great and very useful app

First of all, the team behind this app is great, support is immediate, and response is fast. The application is very useful in managing any type of notification to keep you updated with all what's happening within your company.

Amro Khamis in the Odoo Apps Store

Topical and up-to-date reports

Filtering by relative periods

  • Restrict report time frames by any kept date or datetime fields of a target document type: deadline, create or close date, next activity day, etc. As intervals select days, weeks, months, or years
  • Apply a few periods based on different dates: e.g. select this month closed leads which have been opened the last year. Records should satisfy each criteria, but if you selected the same date twice, records should be within any of those periods. For example, a deadline should be within the last 2 months OR the next month AND a close date should be within the last year
  • Intervals may both define previous time frames ('the last') and forthcoming periods ('the next'). Periods are relative, so they are compared to today. E.g., 'this month', 'the last year', 'the next 5 weeks'
  • Exclude or include a current period. For example, you might send a reminder on the first day of a month for a previous one. Vice versa, forward a list on the last day of this month for a current one
  • Test your settings according to a real-time-shown result below the table
  • Take into account that if a related date is not set for a document, such a document is considered as always outside periods

Filtering by any document detail

  • Filters are organized as a domain constructor: you may use the most of storable fields with any level of precision. The latter means, for example, you can filter sales orders by a related partner country or even by a state of a company of a related partner
  • Use both 'AND' ('all') and 'OR' ('any') operators to achieve a desired result
  • Check yourself by pressing the button 'Records': it would show all documents which at the moment satisfy your search criteria (and you have an access to)
  • If you feel confident to prepare Reverse Polish Notation domains: turn on the developer mode, and apply more complex expressions such as, for instance, 'category is child_of all'
  • Introduce the special filters by a chosen partner or a responsible user. In this way, the app lets quickly limit analysis for documents' owners. For example, to find all quotations of a particular customer or a salesperson
  • Apply filters thoroughly: make sure you are not forwarding confidential data to wrong partners. Be especially cautious in case of reminders for external contacts: make sure you filter documents by a related customer / vendor.
Dynamic lists filter

Configurable report appearance

  • Choose an unlimited number of columns for this document. It might be any field of the following types: char, text, html, integer, float, selection, boolean, date, datetime and relations to other documents (many2one, one2many, many2many). The set includes even computed fields
  • For relational fields you might choose the second level precision. For example, you might show a phone of a customer for a sales orders' reminder or tags' colors for tasks
  • By default a field description is used as a column name, but you can introduce any other
  • Set up table sorting for any document storable field. For instance, send a sales list ordered by a sales team, a country, a salesperson, etc.
  • Apply aggregation operators for columns: the app lets calculate sum or average per records' column (applicable for integer, float, and monetary fields)
  • Optionally attach an Excel table for reports. It would have the same columns as a reminder itself. It is also possible to exclude a list from email and leave only an xlsx table
  • Optionally attach a PDF version of the reminder table. Thus, send just an email, a PDF file, an electronic table, or all together
  • Include or exclude links to Odoo objects. References are great in case of internal reminders, but they might be harmful in case of external ones
  • Introduce any greeting text for reminders. Such introduction is edited in a standard Odoo HTML editor
  • Define report language to make sure correct translation is applied
  • Enter the email address which would be shown for reminder recipients. Otherwise, it would be the user who sends the report.
Lists columns and view

Flexible periodicity of reports

  • Configure frequency of sending reports to fully reflect business calendars: by days, by weeks, by months, by years
  • By days: prepare a reminder every day, each 5 days, each 181 days
  • By weeks: send statistics on definite week days (e.g. on Mondays and Thursdays) each week or each 2,3,7,... weeks
  • By months: for the first or the last month day, for the exact date (e.g. the 16th), for a definite weekday (for instance, the first Monday, the last Friday, or the third Tuesday)
  • By years: on an exact year day, e.g. on the first of September each year
  • Be cautious with a month / year exact date: if it didn't exist, a last month day would be applied: 31/09 -- 30/09
Monthly reminder by weekdays
Monthly reminder by weekdays

List reminders for any business purpose

The app is used to aggregate information by any Odoo document type: sale or purchase orders, leads or tasks, activities or meetings, deliveries or manufacturing operations, thus, generally all models which exist in the system. Typical goals of such reminders are:

  • To send periodical statistics for managers
  • To forward to-do lists for certain actions
  • To plan forthcoming events and actions
  • To notify customers or suppliers of done jobs

Typical use case: pipeline results

  • The goal: to get leads closed the previous month for a team manager
  • Choose Lead/Opportunity as a model
  • Define a period as Closed Date in the last month
  • Make a filter by Sales Team (e.g. to contain 'Europe')
  • As columns define Display Name, Salesperson - name, Salesperson - phone, Tags, Expected Revenue (as total operator - use average, for example)
  • Subscribe a sales team manager for this reminder
  • Send a list each month, on the first Monday.
  • Similar lists might be configured for sale orders, deliveries, purchase orders, manufacturing operations, etc.

Typical use case: daily to-do list

  • The goal: to get activities which should be done today or previously
  • Choose Activity as a document type
  • Define a period as Due Date in the last 10000 days including this (to get even the eldest activities)
  • Make a filter Assigned to - Name contains 'John Brown', where 'John Brown' is a user to notify
  • As columns apply Display name, Category, Due Date, Note
  • Subscribe a John Brown for this reminder
  • Send a list everyday
  • Similar reminders are usually prepared for project tasks, opportunities, planned deliveries or incoming shipments, etc.
  • To prepare the same reminder for another user: duplicate this one, update the filter to a new employee and subscribe him/her

Typical use case: planned events

  • The goal: to get events which will happen in forthcoming periods
  • Choose Event as an object for this reminder
  • Define a period as Start Date the last week, including this (it would be 'this week'), or the next 3 weeks
  • As columns apply Event name, Location, Start Date, End Date
  • Subscribe a John Brown for this reminder, where John Brown is an event department head
  • Send a list on Mondays
  • Similar reminders are Okay for activities, tasks, leads, deliveries, incoming shipments, etc.

Typical use case: customer project statistics

  • The goal: to notify customers about their project tasks
  • Define a period as Create Date in the last year
  • Make 2 filters: Customer - Parent name is 'Agrolait' or Customer name is 'Agrolait', where 'Agrolait' is an Odoo project customer
  • As columns apply Display name, Deadline, Description, Last Stage Update, Stage - display name
  • Subscribe a John Brown for this reminder, where John Brown is a managing partner of Agrolait
  • Send a list on the 10th of January each year
  • Similar statistics is frequently forwarded by support tickets, paid invoices, done sale orders, etc.

Configuration and Installation Tips for Periodic Reporting and Reminders Odoo v.15

Python dependency

To provide the feature of dynamic Excel table generation, install the Python library xlsxwriter:

pip3 install xlsxwriter

Email template

The basic reminder appearance should not be updated through Odoo email templates. In the debug mode go to:

  • Settings > Users Interface > Views > 'total_notify_template'

Do not change this template! Otherwise, its styles would be broken, and you would receive blank emails.

Have you broken everything? Not a problem, remove this template and update the module. The email appearance would be recovered.

Scheduled job (cron)

By default Odoo checks whether any reminder should be sent on a daily basis. You can change a frequency or time of check. In the debug mode go to:

  • Settings > Technical > Automation > Scheduled Actions > Lists Reminders

The situation for a higher frequency is when you have many reminders with a lot records to search. In that case the cron job might be not ready with all actions in time, and it is better to repeat the check. However, be cautious: do not make it too frequent. Otherwise, one job would not be fulfilled until another one, and Odoo would collapse until a reminder is sent.

The cron job interval should be bigger than your Odoo configured timeout. Sometimes it is required to increase a timeout, if a number of documents in a list accounts for a few thousands records.

The module is not aimed to export data from Odoo. Do not try to send everyday your whole database.

Frequently Asked Questions about Periodic Reporting and Reminders Odoo v.15

According to the current Odoo Apps Store policies:

  • every module bought for version 12.0 and prior gives you access to all versions up to 12.0.
  • starting from version 13.0, every module version should be purchased separately.
  • disregarding the version, purchasing a tool grants you a right to all updates and bug fixes within a major version.

Take into account that the faOtools team does not control those policies. For all questions, please contact the Odoo Apps Store representatives directly.

The easiest approach is to use the Odoo store built-in workflow:

1. Open the module's page and click the button Deploy on

2. After that, you will be redirected to the GitHub page. Login to your account and click 'Create a new repo' or use the existing one. Please, make sure, that your repository is private. It is not permitted to publish the apps under the OPL-1 license. If necessary, create a new repo for your project

3. Then, go to and click on the deploy button, submit the decision in the pop-up window and click 'Continue'. The action will trigger the installation process.

These steps will install the app for your project production branch. If you want to deploy the apps for other branches or update the module, you should undertake the following actions:

1. Upload the source code for the app from the Odoo store

2. Commit the module to a required GitHub repository. Make sure that none of the app folders/files are ignored (included in the .gitignore of your repo). Repositories are automatically created by, which might add by default some crucial items there (e.g. /lib). You should upload all module directories, subdirectories, and files without exceptions

3. Deploy a target branch of the project or wait until it is automatically built if your settings assume that.

  1. Unzip the source code of the purchased tools in one of your Odoo add-ons' directories;

  2. Re-start the Odoo server;

  3. Turn on the developer mode (technical settings);

  4. Update the apps' list (the apps' menu);

  5. Find the app and push the button 'Install';

  6. Follow the guidelines on the app's page if those exist.

Yes, sure. Take into account that Odoo automatically adds all dependencies to a cart. You should exclude previously purchased tools.

A red/orange warning itself does not influence features of the app. Regretfully, sometimes our modules do not pass standard automatic tests, since the latter assumes behavior which is in conflict with our apps goals. For example, we change price calculation, while standard Odoo module tests compare final price to standard algorithm.

So, first of all, please check deployed database features. Does everything work correctly?

If you still assume that warning influences real features, please contact us and forward full installation logs and the full lists of deployed modules (including core and third party ones).

Regretfully, we do not have a technical possibility to provide individual prices.

No, third party apps can not be used on Odoo Online.

Yes, all modules marked in dependencies are absolutely required for a correct work of our tool. Take into account that price marked on the app page already includes all necessary dependencies.  

The price for our modules is set up in euros. The Odoo store converts prices in others currencies according to its internal exchange rate. Thus, the price in US Dollars may change, when exchange rate changes.

Odoo demonstration databases (live previews)

For this app, we might provide a free personalized demo database.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

By your request, we will prepare an individual live preview database, where you would be able to apply any tests and check assumptions for 14 days.

Bug reporting

In case you have faced any bugs or inconsistent behavior, do not hesitate to contact us. We guarantee to provide fixes within 60 days after the purchase, while even after this period we are strongly interested to improve our tools.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

Please include in your request as many details as possible: screenshots, Odoo server logs, a full description of how to reproduce your problem, and so on. Usually, it takes a few business days to prepare a working plan for an issue (if a bug is confirmed) or provide you with guidelines on what should be done (otherwise).

Public features requests and module ideas (free development)

We are strongly motivated to improve our tools and would be grateful for any sort of feedback. In case your requirements are of public use and might be efficiently implemented, the team would include those in our to-do list.

Such a to-do list is processed on a regular basis and does not assume extra fees. Although we cannot promise deadlines and final design, it might be a good way to get desired features without investments and risks.

No phone number or credit card is required to contact us: only a short email sign up which does not take more than 30 seconds.

You may also like the tools
Cloud Storage Solutions

The tool to flexibly structure Odoo attachments in folders and synchronize directories with cloud clients: Google Drive, OneDrive/SharePoint, Nextcloud/ownCloud, Dropbox. DMS. File Manager. Document management system.

KnowSystem: Knowledge Base System

The tool to build deep and structured knowledge base for internal and external use. Knowledge System. KMS. Wiki-like revisions

OneDrive / SharePoint Odoo Integration

The tool to automatically synchronize Odoo attachments with OneDrive files in both ways

Universal Appointments and Time Reservations

The tool for time-based service management from booking appointments to sales and reviews

Google Drive Odoo Integration

The tool to automatically synchronize Odoo attachments with Google Drive files in both ways

Lost Messages Routing

The tool to make sure you do not loose any incoming messages

Message/Note Editing

The tool to correct accidental mistakes in messages and notes

Private Thread

The tool for private communication without interrupting followers. Confidential messaging. Internal discussions

No Auto Subscription

The tool to exclude automatic following for message recipients. Disable subscription. Prevent following