FAQ
The questions asked most often about Approval Matrix Pro, answered.
Does it intercept Confirm and Post automatically?
No. A record that matches a matrix shows a Request Approval button and somebody presses it. Nothing is silently blocked.
A module that took over Confirm the moment it was installed would surprise people badly, and a control people cannot see the edge of is a control they route around. What approval drives is the other end: the last approval confirms a sales order, and deliberately does not post an invoice.
Can I write a Python expression for a condition?
No, and that is the single most deliberate omission in the module. A condition is a field, an operator and a value. An expression box would let anyone with access to the configuration screen run arbitrary code as the server user — a remote-code-execution hole wearing a business-rules costume.
Dotted paths cover the cases that actually come up: partner_id.country_id.code is one of EG,SA,AE.
Two matrices match the same order. Which wins?
The one with the lower Priority number. It is explicit rather than "whichever was created first", because otherwise adding a stricter rule later would quietly not apply and nobody would find out until something expensive went through.
Can somebody approve their own request?
Not by default. It is a per-matrix switch, so a small team where the alternative is nobody being able to work can turn it on — but it removes the control the matrix exists to provide, which is why it is off until you say otherwise.
What happens when a deadline passes?
The escalation contact is notified and the level is flagged overdue. Nothing is approved. A deadline that auto-approves teaches people that ignoring approvals works.
An approver is on holiday. Can they delegate?
There is no delegation feature. Name a group at that level rather than an individual — the group covers itself, and it is the reason the group field exists alongside the user field.
Failing that, an Approval Administrator can override, which is recorded.
Can a decision be edited or deleted afterwards?
No. The history is append-only. Even an override is a new entry with its own reason rather than an amendment to an earlier one.
Can I approve purchase orders, expenses or stock transfers?
Not with this module. Each of those needs its own Odoo dependency, and forcing every customer to install Purchase in order to approve a sales order would be rude. They are separate bridge modules.
Are levels parallel?
No, sequential. Within a level, every approver gives you concurrent sign-off from several people at once, which covers most of what parallel branches are usually wanted for.
Does approving post the invoice?
No. Posting has period and sequence consequences and is an accounting act. An approval says yes, spend this. The accountant posts.
Is anything sent outside my instance?
Nothing. No external service, no API key, no outbound connection. Notifications are Odoo's own.
Does it work in a multi-company database?
Yes. Every model carries a company record rule, so a matrix in one company is not visible or applicable in another.