Configure Multi-Level Approvals
Configure Multi-Level Approvals
Set up multi-level approval workflows for requests requiring multiple authorizations.
Time: 10–15 minutes per approval type Module: Multi Approval Permissions: Administrator
Prerequisites
- Users configured with roles
- Approval hierarchy defined
- Email templates ready (optional)
- Access to Approvals menu
Overview
The Multi-Approval system enables:
- Multi-level authorization workflows
- Sequential or parallel approvals
- Custom approval types
- Document attachments
- Product/service requests
- Email notifications
- Approval tracking
Approval Workflow
Request Submitted ↓Level 1 Approver ↓Level 2 Approver ↓Level N Approver ↓Request Approved/Rejected| Status | Description |
|---|---|
| Draft | Request created |
| Submitted | Awaiting approval |
| Approved | All levels approved |
| Refused | Rejected at any level |
| Cancel | Cancelled by requester |
Steps
1. Create Approval Type
Define categories of requests:
- Navigate to Approvals → Configuration → Approval Types
- Click New
- Configure approval type:
| Field | Action |
|---|---|
| Name | Type name (e.g., “Leave Request”) |
| Image | Icon for type |
| Description | Brief description |
| Priority | Display order |
| Document | Required/Optional/None |
| Contact | Required/Optional/None |
| Date | Required/Optional/None |
| Period | Required/Optional/None |
| Product | Required/Optional/None |
- Click Save
2. Define Approval Levels
Add approvers to the type:
- Open approval type
- Navigate to Approval Lines tab
- Click Add a line
- For each level:
| Field | Action |
|---|---|
| User | Select approver |
| Type of Approval | Required/Optional |
| Approve Template | Email template |
| Reject Template | Rejection email |
- Add all levels in sequence
- Click Save
3. Configure Field Requirements
Set which fields are required:
| Option | Settings |
|---|---|
| Required | Must be filled |
| Optional | Can be filled |
| None | Not shown |
Example: Purchase Request
- Document: Required
- Contact: Required (Vendor)
- Product: Required
- Date: Optional
4. Submit Approval Request
As Requester:
- Navigate to Approvals → My Requests
- Click New
- Select Approval Type
- Complete the form:
| Field | Action |
|---|---|
| Name | Request description |
| Approval Type | Select type |
| Date | Request date |
| Contact | Related contact |
| Location | If applicable |
| Products | Add items if required |
| Attachments | Upload documents |
- Click Submit
5. Process Approval (Approver)
As Approver:
-
Receive notification
-
Navigate to Approvals → To Approve
-
Open request
-
Review details:
- Request information
- Attachments
- Previous approvals
-
Decision:
- Click Approve to accept
- Click Refuse to reject
- Add comments if needed
6. Add Products to Request
For product-related requests:
- In request form
- Navigate to Products tab
- Click Add a line
- Enter:
| Field | Action |
|---|---|
| Product | Select product |
| Quantity | Requested quantity |
| Unit of Measure | UoM |
- Add all products
- Click Save
7. Track Request Status
Monitor your requests:
-
Navigate to My Requests
-
View status:
- Pending approval level
- Approval history
- Comments
-
Check email notifications
Field Reference
Approval Type (multi.approval.type)
| Field | Technical Name | Type | Required | Description |
|---|---|---|---|---|
| Name | name | Char | Yes | Type name |
| Image | image | Image | No | Type icon |
| Description | description | Char | No | Description |
| Priority | priority | Integer | No | Display order |
| Document | document_opt | Selection | No | Document setting |
| Contact | partner_opt | Selection | No | Contact setting |
| Date | date_opt | Selection | No | Date setting |
| Period | period_opt | Selection | No | Period setting |
| Product | product_opt | Selection | No | Product setting |
Approval Type Line (multi.approval.type.line)
| Field | Technical Name | Type | Required | Description |
|---|---|---|---|---|
| User | user_id | Many2one | Yes | Approver |
| Type of Approval | require_opt | Selection | No | Required/Optional |
| Approve Template | approve_tmpl_id | Many2one | No | Approval email |
| Reject Template | reject_tmpl_id | Many2one | No | Rejection email |
Approval Request (multi.request)
| Field | Technical Name | Type | Required | Description |
|---|---|---|---|---|
| Name | name | Char | Yes | Request title |
| Request By | user_id | Many2one | No | Requester |
| Approval Type | approval_type_id | Many2one | No | Type of request |
| Date Confirmed | date_confirmed | Datetime | No | Confirmation date |
| Request Date | date | Datetime | No | Request date |
| Date Start | date_start | Datetime | No | Period start |
| Date End | date_end | Datetime | No | Period end |
| Location | location | Char | No | Location |
| Contact | partner_id | Many2one | No | Related contact |
| Quantity | quantity | Integer | No | Quantity |
Request Line (multi.request.line)
| Field | Technical Name | Type | Required | Description |
|---|---|---|---|---|
| User | user_id | Many2one | Yes | Approver |
| Status | status | Selection | No | Approval status |
| Type | require_opt | Selection | No | Required/Optional |
Product Line (multi.product.line)
| Field | Technical Name | Type | Required | Description |
|---|---|---|---|---|
| Product | product_id | Many2one | Yes | Product |
| Quantity | quantity | Integer | No | Requested qty |
| Unit of Measure | product_uom_id | Many2one | No | UoM |
Common Approval Types
Leave Request
Name: Leave RequestDocument: OptionalDate: RequiredPeriod: Required
Approvers:1. Department Manager (Required)2. HR Manager (Required)Purchase Request
Name: Purchase RequestDocument: RequiredContact: Required (Vendor)Product: Required
Approvers:1. Department Head (Required)2. Finance Manager (Required)3. Director (if > $10,000)Travel Request
Name: Travel RequestDocument: OptionalDate: RequiredLocation: Required
Approvers:1. Supervisor (Required)2. Department Head (Required)Views Available
| View | Features |
|---|---|
| List | All requests |
| Form | Request details |
| Kanban | Visual cards |
| Calendar | Timeline view |
Approval Dashboard
Managers see:
- Pending approvals
- Approved today
- Rejected requests
- Processing time
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Cannot submit | Missing fields | Complete required fields |
| Approval stuck | Approver absent | Reassign or escalate |
| No notification | Email issue | Check email settings |
| Wrong approvers | Type misconfigured | Update approval type |
| Cannot refuse | Already approved | Review workflow |
Best Practices
- Clear types: Define specific approval types
- Right approvers: Assign appropriate people
- Reasonable levels: Don’t over-complicate
- Documentation: Require attachments when needed
- Timely processing: Set response expectations
- Audit trail: Review approval history
Security Notes
| Role | Capabilities |
|---|---|
| Administrator | Full configuration |
| User | Submit own requests |
| Approver | Approve assigned requests |
Integration Features
Email Integration
- Approval notifications
- Reminder emails
- Status updates
Document Integration
- Attachment support
- Document preview
- Version tracking