explaingit

devagarwal2/mistral-workflow-proj

0MDXAudience · developerComplexity · 4/5ActiveSetup · hard

TLDR

Mistral Workflows demo that audits six Odoo modules in parallel and renders a styled A4 PDF health report with charts, KPIs, and recommendations.

Mindmap

mindmap
  root((mistral-workflow-proj))
    Inputs
      Odoo XML RPC
      Mistral API key
      Env config
    Outputs
      PDF health report
      JSON audit data
      Optional emailed report
    Use Cases
      Audit Odoo ERP health
      Generate executive summary
      Demo Mistral Workflows SDK
    Tech Stack
      Python
      Mistral
      Odoo
      matplotlib
      WeasyPrint

Things people build with this

USE CASE 1

Generate a PDF ERP health report from a live Odoo instance

USE CASE 2

Demo Mistral Workflows running parallel activities against an SDK

USE CASE 3

Email a styled monthly health report to stakeholders with Himalaya

USE CASE 4

Extend the workflow to audit additional Odoo modules

Tech stack

PythonMistralOdoomatplotlibWeasyPrintTemporal

Getting it running

Difficulty · hard Time to first run · 1h+

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.

In plain English

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.

Copy-paste prompts

Prompt 1
Walk me through how mistral-workflow-proj structures the six parallel module audits
Prompt 2
Help me connect to my Odoo instance via XML-RPC and fill in the .env file
Prompt 3
Show me how the Mistral model commentary is merged with the matplotlib charts in the PDF
Prompt 4
Add a seventh Odoo module audit to the workflow and wire it into the PDF report
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.