| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Inventory (stock) • Invoicing (account) • Manufacturing (mrp) • Purchase (purchase) |
| Lines of code | 5534 |
| Technical Name |
xs_dependency_graph_engine |
| License | OPL-1 |
| Versions | 17.0 18.0 19.0 |
Stop guessing where your workflow is stuck — see it.
Dependency Graph Engine is an interactive, graph-based workflow visualizer for Odoo 19 that maps the real dependency chain between your business records — Sale Orders to Deliveries to Invoices, Purchase Orders to Receipts to Manufacturing Orders — as a live, clickable network graph. Every chain is rendered with critical-path detection, delay scoring, risk alerts, and a Risk Dashboard. Built entirely inside Odoo 19. No external services. No CDN at runtime. No black boxes.
Standard Odoo views show what records exist. They don't show how they're connected.
In any growing business, a single sale order can trigger a chain of 5–15 related documents — deliveries, backorders, purchase orders, manufacturing orders, invoices, and receipts. When something delays, there is no native view in Odoo that shows you the cascading impact. You open records one by one, jump between menus, and try to mentally reconstruct the chain. This module renders the entire chain as one interactive graph — with the delay-causing record highlighted in red — in 3 seconds.
Click any node to open the source record — drag, zoom, pan, fit-to-screen, and search built-in
Twelve capabilities to see the full picture
Three purpose-built views, a powerful backend engine, and zero external dependencies.
Interactive Dependency Graph
Critical Path Highlighting
Blocked & Overdue Detection
Risk Dashboard
Dependency Overview
Scheduled Risk Alerts
State-based Node Colors
In-graph Node Search
CSV & PNG Export
Configurable Graph Configs
Workflow Health Grade (A–F)
Snapshot Cache with TTL
Click-to-Open Records
Air-Gapped Deployment Safe
Daily Cron Scanner
Smart Buttons on Records
Screenshots that tell the story
Live views from the Dependency Graph Engine inside Odoo 19 — full-width for clarity.
Up and running in four steps
No external services. No agents. Just install and open the Dependency Graph menu.
Install Module
Add to addons path, update app list, install from Apps menu.
Configure Graph Configs
Configuration > Graph Configs — define links to traverse.
Scan Records
Open Risk Dashboard, click Scan — engine caches snapshots.
Explore & Act
Open Graph Explorer from any record or browse Dependency Overview.
Built on Odoo 19 natively
Zero external SaaS. Zero CDN at runtime. All computation inside your Odoo instance.
One-time purchase. Lifetime access.
One Odoo database | All updates included | OPL-1 License
- Interactive Dependency Graph (Cytoscape.js)
- DAG Critical Path Algorithm
- Risk Dashboard + Workflow Health Grade (A–F)
- Dependency Overview (all records at once)
- Scheduled Risk Alerts as Odoo Activities
- 5 Business Models (SO, PO, Picking, MRP, Invoice)
- In-graph Search, CSV & PNG Export, State Colors
- Snapshot Cache + Auto-vacuum Cron
- Air-Gapped / Private-Network Compatible
Why Dependency Graph Engine?
Standard Odoo views show what records exist. They never show how those records depend on each other — or which one is silently delaying the rest.
Without this module — the daily reality
With Dependency Graph Engine
Standard Odoo vs Dependency Graph Engine
A side-by-side look at what changes when you install this module.
| Capability | Standard Odoo 19 | With this module |
|---|---|---|
| See entire chain at a glance | Open 5–10 records manually | One interactive graph view |
| Know which record blocks the rest | Reconstruct mentally | DAG critical path in red |
| Spot overdue records | Filter views per model | Amber nodes with delay days |
| Workflow health metric | Build BI dashboards from scratch | Built-in A–F grade |
| Cross-record overview | No native view exists | Dependency Overview — merged graph |
| Proactive risk alerts | Manual review only | Daily cron + Odoo activities |
| Investigation time per stuck order | 15–30 minutes | < 30 seconds |
| External services / CDN | None | None — fully air-gapped safe |
Real-world scenarios
Four 30-second moments where this module changes the day.
Scenario 1 — The angry customer call
"Where is order SO-1042?" Open the SO, click the Dependency Graph smart button. The graph shows the picking is waiting on a backordered receipt from a delayed PO. Total time: 25 seconds. You give the customer a real ETA — not a guess.
Scenario 2 — Monday morning ops review
Instead of opening 8 reports, your team opens the Risk Dashboard. The 6 highest-risk workflows are sorted at the top with critical-path highlighting. The standup ends in 10 minutes — with a clear action list per owner.
Scenario 3 — The proactive activity
An alert rule fires overnight: a sale order's chain crossed the 3-day delay threshold. The responsible salesperson finds an Odoo activity in their inbox before the customer emails — with a one-click link to the dependency graph showing exactly which record is the blocker.
Scenario 4 — The MRP bottleneck
Three customer orders are ship-late this week. Open Dependency Overview, toggle Critical Path: all three chains converge on a single MO waiting for a delayed component PO. You expedite one purchase order and unblock all three deliveries.
Built for the people who keep operations moving
If your day involves chasing a delayed order, this module was built for you.
Operations Managers
See every active order, picking, and MO with their dependencies merged into one graph. Spot bottlenecks before they ship late.
Sales Teams
Customer asks "where's my order?" — get a definitive, traceable answer in 30 seconds without bouncing between Sales, Inventory, and Manufacturing.
Manufacturing Leads
Know which BOM component or upstream MO is delaying a downstream order. Critical-path highlighting reveals the single point of failure.
Finance Controllers
Trace unpaid invoices back through the chain — was it the picking, the order, or a credit hold? See it instantly.
Odoo Implementers
A no-code Graph Configs UI lets you map any custom model relationships — deliver workflow visibility to clients in hours, not weeks.
CXOs & Plant Managers
A single A–F Workflow Health Grade per business area replaces flipping through 8 reports in a Monday morning ops review.
Built the Odoo way
Six engineering principles we will not compromise on.
If your team spends even two hours a week manually tracing delayed orders across Sales, Inventory, Manufacturing, and Accounting, this module pays for itself in the first month.
Back to OverviewAll Features in Detail
Every capability explained — what it does and why it matters.
One Risk Dashboard — aggregate stats, sortable risk table, one-click drill-down to any record's graph.
Interactive Dependency Graph
Your workflow as a live, clickable network — not a flat list.
- Powered by Cytoscape.js bundled locally — zero CDN at runtime
- BFS traversal of real ORM relations; depth 1–6 levels
- Click any node to open the source record in a new tab
- Drag, zoom, pan, fit-to-screen, reset layout controls
Critical Path Detection
Know which records, if delayed, delay everything else.
- DAG topological sort + dynamic programming
- Critical nodes highlighted with red border & bold label
- Critical path edges rendered in red with flow indicator
- Toggle on/off in toolbar — dims non-critical nodes
Blocked & Overdue Detection
Surface stuck records before they become customer complaints.
- Detects records past scheduled date per model
- Blocked nodes amber; "Overdue — Xd behind schedule"
- "Show only blocked" toggle dims healthy nodes instantly
- Uses
date_order,date_planned,scheduled_date,invoice_date_due
Risk Dashboard
One page. Every at-risk workflow record. Prioritized.
- Aggregate stats: Scanned, Blocked, High Risk, Total Delay
- Sortable table with risk badges (Critical / High / Medium / Low / Safe)
- One-click "Graph" button per row jumps to record graph
- Snapshots stored in DB — historical trend analysis
Dependency Overview
Every active record and its dependencies, side by side.
- Merged graph of all open records across selected configs
- RECORDS slider (5–50) controls roots per model
- Stats bar: model pills, node count, edge count, max delay
- Truncation indicator when 500-node cap is hit
Scheduled Risk Alerts
Odoo activities created automatically when workflows breach thresholds.
- Configurable rules: trigger model, delay threshold, responsible user
- Daily cron evaluates active rules against latest snapshots
- Activities created on responsible user — appears in inbox
- Dedup: one activity per record per day — no spam
Workflow Health Grade (A–F)
A single score that tells you the state of your operations.
- Computed from blocked ratio, total delay, critical path length
- Shown in Graph Explorer's Analytics panel with colour bar
- Shows On-Track count, Efficiency %, Avg Delay per node
- Indegree / outdegree chips on node hover tooltip
Configurable Graph Configs
Define exactly which model relationships to traverse — no code.
- Source model, target model, relation field, direction — all UI
- Max related per link, node color, custom label per config
- Multiple configs active simultaneously for multi-hop chains
- 5 demo configs out of the box (SO, PO, Picking, MRP, Invoice)
State-based Node Color Toggle
Switch between config and state-driven colors in one click.
- Default: nodes colored by model/config
- State Colors: each node recolors per record state
- Human-readable labels: "Sales Order", "Ready", "Not Paid"
- Border color updated for full visual consistency
In-graph Node Search
Find any record in the graph by name or reference — instantly.
- Type in search bar — matching nodes highlight, others dim
- Match count shown in toolbar ("3 matches")
- Camera auto-fits to matching nodes — no scroll
- Debounced 300ms — smooth typing experience
CSV & PNG Export
Take graph data and visuals out of Odoo for reporting.
- CSV: ID, label, model, state, delay, blocked, is_critical
- PNG: high-res snapshot of current graph for slides
- One-click; download starts immediately
- Available in Explorer, Overview, and Risk Dashboard
Snapshot Cache + Auto-vacuum
Repeat graph loads are instant. Old snapshots clean themselves up.
- Cached in
xs.dependency.graph.snapshotwith TTL - Lookup by root model + record + config hash
- Daily vacuum cron deletes stale snapshots
- Cache miss falls back to live BFS transparently
Air-Gapped Deployment Safe
No external CDN. No telemetry. Fully self-hosted.
- Cytoscape.js bundled at
static/lib/cytoscape.min.js - All assets served from your Odoo server
- Compatible with private networks & air-gapped installs
- Zero outbound connections at runtime
Smart Buttons on Records
Open the dependency graph from any business record.
- Smart button on Sale Order, Purchase Order, Stock Picking
- Smart button on MRP Production and Account Move
- Opens Graph Explorer pre-loaded with that record
- No extra clicks — investigate in context
Every view you need
Graph Explorer, Dependency Overview, and Risk Dashboard — all native Odoo 19 OWL components.
Support & Custom Features
We're here to help — from installation questions to building tailored enhancements.
Xpath Solutions
Have a question about graph config setup, a bug to report, or want a custom traversal rule or additional model support? Reach out — we respond promptly and build on demand.
xpathsolution@gmail.comGraph Config Reference
Configuration > Graph Configs — all available fields per config record.
Define source model, relation field, target model, color, and label per config — all from the UI.
| Field | Description | Example |
|---|---|---|
| Name | Human label for this config (shown in dropdowns) | Sale Order → Deliveries |
| Source Model | The root model to traverse from | sale.order |
| Field Name | The ORM field linking source to target records | picking_ids |
| Target Model | The downstream model reached via the field | stock.picking |
| Max Related | Max records to expand per relation (prevents huge graphs) | 10 |
| Node Color | Hex color for target model nodes in default color mode | #e06f5d |
| Node Label | Display field used as node label in the graph | name |
| Active | Inactive configs are excluded from all views | True |
Alert Rule Reference
Configuration > Alert Rules — configure proactive risk notifications.
Define delay thresholds and responsible users — activities are auto-created on breach with exception handling.
| Field | Description | Default |
|---|---|---|
| Name | Name of the alert rule | — |
| Source Model | Which model's snapshots to evaluate | sale.order |
| Delay Threshold (days) | Alert fires when total_delay_days exceeds this value | 3 |
| Responsible | User who receives the Odoo activity | Current user |
| Active | Inactive rules are skipped by the cron | True |
Risk Level Thresholds
How records are automatically classified in the Risk Dashboard.
Release Notes
Full changelog for Dependency Graph Engine.
- Risk Overview Dashboard — cross-record delay radar with sortable risk table & aggregate stats
- Scheduled Alert Rules — daily cron creates Odoo activities when chains breach delay thresholds
- DB snapshot cache (multi-worker, 5-min TTL) — instant repeat graph loads
- Workflow Health Grade (A–F) with On-Track count, Efficiency %, Avg Delay metrics
- State-based node coloring with toggle — switch between config and record-state colors
- In-graph node search with match count and auto-fit camera
- CSV analytics export and high-resolution PNG graph snapshot export
- Indegree / outdegree chips in node hover tooltips
- Daily vacuum cron clears stale snapshots;
sudo()for cache writes - Truncation warning badge in Dependency Overview when 500-node cap is hit
- Dependency Overview view — merged multi-record graph with RECORDS & DEPTH sliders
- Critical Path / Blocked-only filter toggles in graph toolbar
- Blocked / overdue detection with delay days per model-specific date field
- Configurable depth (1–6) and node-count limits per session
- Smart buttons added on Stock Picking, MRP Production, Account Move
- Click-to-open record in new tab from any graph node
- Interactive Cytoscape.js dependency graph with BFS traversal — bundled locally
- DAG critical path algorithm (topological sort + dynamic programming)
- Graph Explorer single-record view with analytics panel
- Configurable Graph Configs (source, field, target, color, label, max related)
- 5 demo graph configs and demo records installed on module setup
- Smart button on Sale Order and Purchase Order forms
Frequently Asked Questions
Everything you need to know before installing.
static/lib/cytoscape.min.js. Served from your own Odoo server as a standard web asset. No external CDN calls at runtime — fully compatible with air-gapped or private-network Odoo deployments.is_critical=True in their data, which the frontend uses to apply the red highlight. Cycle-tolerant._DATE_FIELDS and _STATE_FIELDS mappings in xs_dependency_graph_builder.py would need to be extended. Contact us for custom model integration support.url field set to /web#model={model}&id={record_id}&view_type=form. Clicking opens that specific record's form view in a new browser tab, so you don't lose your current graph context.
Built for Odoo 19.0 | OPL-1 License | xpathsolution@gmail.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module