Skip to content
TAQNIX
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on TAQNIX

Approval Requests for Odoo 19 Community documentation

A guide to approval requests: the categories and the ways of approving, making a request, deciding, what happens after, and the access rights.

Documents version 1.0.0Updated Oct 24, 2026

Start here

In plain words: "Can I buy this?" "Can I travel on the 9th?" "Please approve my receipts." Requests like these live in WhatsApp threads and email chains, and nobody knows who said yes. Approval Requests gives every request a home: choose a category, fill the few fields it needs, and the request goes to the right approvers, one after another, any one of them or all of them. Each decision is recorded with the date and a comment, and the requester follows the progress.
The dashboard of categories, a request in progress and the decision window.
The dashboard of categories, a request in progress and the decision window.
Tip: It works for anything you can describe in words: purchase, travel, expenses, equipment, leave of absence, a policy exception...

What you get

FeatureWhat it does
CategoriesPurchase, Travel, Expense, Equipment and General are ready; make your own (Leave of absence, Contract signature...).
ApproversEach category lists its approvers. A request copies them and the requester can still adjust them while it is a draft.
Three ways to approveOne after another (each approver is asked when the previous has approved), any one approver is enough, or all of them.
What a request needsPer category: an amount, dates, a contact, a reference and an attachment can be not used, optional or required.
Decision with a commentApproving or refusing opens a small window; a refusal needs a reason.
Nobody approves their own requestIf the requester is on the list of approvers, that line is skipped; a request with no other approver cannot be submitted.
Activities and notificationsEach approver gets an activity; the requester follows the request and is notified of the final decision.
DashboardA card per category with the number of requests to approve and a New request button.
ListsMy requests, To approve, and All requests for managers.
ArabicEverything is translated and works right to left.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps needednone other than Discuss (mail), installed with Odoo
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_approval_requests.zip; unzip it to get the folder taqnix_approval_requests.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Approval Requests and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_approval_requests --stop-after-init

Set up the categories

In plain words: Approvals → Configuration → Categories (managers). For each category write what it is for, choose the way of approving, tick what the request asks for and list the approvers in order.
A category: the way of approving, what the request asks for and the approvers.
A category: the way of approving, what the request asks for and the approvers.
Way of approvingHow it works
One after anotherThe first approver is asked; when they approve, the second one, and so on. The request is approved after the last.
Any one approver is enoughEverybody is asked at once; the first decision settles the request.
All the approversEverybody is asked at once; the request is approved when all have approved. One refusal ends it.
Important: The ready categories have no approver yet: choose the people before you use them.

Make a request

In plain words: Open the Dashboard, press New request on the category, write the subject and the reason, fill the fields the category asks for (a required field is marked), attach the documents and press Submit.
The dashboard: a card per category.
The dashboard: a card per category.
A request being prepared.
A request being prepared.
In plain words: The requester sees who the request waits for; approvers are asked in the order of the category.
A request in progress: who has decided, who is next.
A request in progress: who has decided, who is next.
My requests.
My requests.

Decide

In plain words: The approver gets an activity and the request appears in To approve. Open it, read it and press Approve or Refuse; a window asks for a comment (required to refuse). A refusal ends the request and notifies the requester.
The requests that wait for me.
The requests that wait for me.
Refusing with a reason.
Refusing with a reason.
An approved request: every decision is kept.
An approved request: every decision is kept.
A refused request, with the reason.
A refused request, with the reason.

After the decision

In plain words: The requester can Cancel a request that is not decided and Ask again after a refusal or a cancellation: the approvers come back to waiting and the request starts again. A manager can do both for the requester. A request that was decided is never changed, and only drafts and cancelled requests can be deleted.
All requests, for managers.
All requests, for managers.

Who can do what

WhoCan
Everybody (internal users)Make requests, see their own, see and decide the requests where they are an approver.
Approvals managersSee all the requests, make the categories, cancel or ask again for others. Administrators are managers.
OthersSee nothing of other people's requests.

Arabic and right to left

A request in an Arabic interface.
A request in an Arabic interface.

Limits

LimitDetail
No automatic actionAn approved request is a record: the module does not buy, book or pay.
No amount limitsEvery request of a category follows the same approvers; make two categories for small and large amounts.
Approvers are usersAn approver needs an Odoo user.
Changing a categoryThe way of approving of a request in progress does not change when you edit the category.

For developers

In plain words: Skip this chapter if you only use the module.
category = env.ref('taqnix_approval_requests.category_purchase')
request = env['taqnix.approval.request'].create({'category_id': category.id, 'subject': 'Standing desks', 'amount': 1840})
request.action_submit()                        # the first approver gets an activity
request.approval_line_ids.filtered(lambda l: l.state == 'pending').user_id
env['taqnix.approval.decision'].create({'request_id': request.id, 'decision': 'approve', 'comment': 'Go ahead'}).action_confirm()   # as the approver

Troubleshooting

ProblemWhat to do
Add at least one approverThe category has no approver: add them in the category or on the draft request.
Nobody can approve their own requestThe only approver is the requester: add somebody else.
This category needs: ...A required field is empty.
It is not your turn to decideA previous approver has not decided yet (one after another), or you already decided.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_approval_requests. The categories and the requests are kept.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.