Generate a PDF ERP health report from a live Odoo instance
Demo Mistral Workflows running parallel activities against an SDK
Email a styled monthly health report to stakeholders with Himalaya
Extend the workflow to audit additional Odoo modules
Needs Python 3.12, a Mistral API key, an Odoo instance with XML-RPC enabled, and a worker that connects to Mistral's hosted Temporal scheduler.
This project takes data from Odoo, an open source business management system that small companies use for sales, inventory, accounting, and HR, and turns it into a polished PDF health report. It is built on top of Mistral Workflows, a public preview product from the French AI company Mistral that lets you describe a sequence of background tasks in Python and run them on Mistral's servers. The workflow audits six Odoo modules at the same time, sends the results through a Mistral language model for analysis, draws charts with matplotlib, builds a styled A4 PDF, and optionally emails it. To run it, you need Python 3.12 or higher, a Mistral API key, an Odoo instance with its XML-RPC interface enabled, and optionally a small command line email tool called Himalaya if you want the report emailed. After cloning, you copy a .env file with your API key, Odoo connection details, company name, output directory, and recipient email. You then start a worker process in one terminal with make start-worker, and trigger the report from a second terminal with make execute-erp-health. The output is a folder under reports containing a PDF and a JSON file with the raw audit data. The six modules it audits are CRM, Sales, Inventory, Accounting, HR, and Manufacturing. For each, it queries a specific Odoo data model and computes a small set of figures such as pipeline value, year to date revenue, stock levels, days sales outstanding, headcount, and production volume. The Mistral language model is then asked to enrich the raw numbers with commentary, trends, and KPIs. The PDF starts with a cover page that shows a health score from 0 to 100 and a colour coded badge, followed by an executive summary, one page per module, a charts section, and a final list of prioritised recommendations. The README explains that the worker runs on your own machine but connects to Mistral's hosted Temporal scheduler at wf-scheduler.mistral.ai on port 443. Temporal is the engine that keeps track of which step of the workflow is running and retries failed activities. The project was built for the Mistral Workflows public preview contest and shows off SDK features like running activities in parallel and calling the Mistral chat API as a plugin. Dependencies listed include mistralai-workflows, matplotlib, and WeasyPrint for HTML to PDF rendering.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.