Approval Workflow Module for Perfex CRM

Important: ApprovalFlow is a module that runs inside Perfex CRM — not a standalone application. You need an existing install of Perfex — Powerful Open Source CR

May 20, 2026 - 21:19
May 20, 2026 - 23:17
 0  0
Approval Workflow Module for Perfex CRM

Important: ApprovalFlow is a module that runs inside Perfex CRM — not a standalone application. You need an existing install of Perfex — Powerful Open Source CRM to use it.

ApprovalFlow — the approval engine your Perfex CRM was missing

Right now, any staff member with write access to your Perfex CRM can create a $50,000 invoice, apply a 40% discount, sign a contract or submit an expense without a single manager seeing it first. ApprovalFlow fixes that. One blocked unauthorized transaction pays for this module a hundred times over.

ApprovalFlow installs in under 2 minutes, requires zero code changes and adds a configurable approval-request system to the five core financial document types in Perfex: invoices, estimates, proposals, contracts and expenses. Unlike generic staff-request modules, this is governance for your actual CRM transactions — the documents that directly represent money in or money out.

Why ApprovalFlow is different

Why ApprovalFlow is different

  • The only module on CodeCanyon that covers all 5 Perfex financial documents in one install. Invoices, estimates, proposals, contracts and expenses — unified under a single rule engine. Competitors cover HR requests or task automation. ApprovalFlow covers your money.
  • Rule engine with 7 configurable conditions. Set thresholds by amount, discount percentage, specific client, specific staff creator, document status, contract type or expense category. Combine any conditions with logical AND — no code required.
  • One request per document, priority-ordered rules. When multiple rules match the same document, the highest-priority rule wins. No duplicate notifications, no conflicting requests.
  • Visual enforcement via persistent warning banners. The approval banner appears inline in the native Perfex invoice, estimate, proposal, contract and expense views. It stays visible until resolved — survives page reloads and user sessions.
  • Immutable audit history. Every state transition (created, approved, rejected, cancelled, reassigned, reminder sent) is recorded in a dedicated history table that is never modified. Compliance-friendly by design.
  • Self-hosted, source included. No external API calls, no cloud, no monthly fee. Install once on your server and own it. Zero telemetry.

What’s inside

Dashboard

  • 6 KPI cards: Pending approvals, Approved this month, Rejected this month, Average approval time, Highest-value approval, Top requester
  • Hero CTA jumps straight to the pending queue sorted by oldest first — reduces approver decision latency
  • Recent pending approvals widget with direct deep-links to each affected document
  • Recent activity feed showing the latest state transitions across the organization
  • Scope-aware: regular staff see only their own metrics; view_all unlocks the organization-wide view

ApprovalFlow Dashboard with 6 live KPI cards

Rule Engine

  • Create unlimited approval rules per document type
  • 7 condition types: amount > X, discount % > X, specific client, specific staff creator, document status, contract type, expense category
  • Searchable Select2 dropdowns for client, staff, contract type and expense category — no more digging for internal IDs
  • Conditions combined with logical AND — every condition must match for the rule to fire
  • Priority ordering when multiple rules match the same document
  • Real-time rule preview card: see in plain English what the rule will do before saving
  • Activate / deactivate rules without deleting them — perfect for seasonal policies

Rule editor with 7 conditions and live preview

Pending Approvals

  • Server-side paginated list of every request waiting for action
  • Columns: Type, Document (linked), Client, Amount, Requester, Approver, Status, Waiting time
  • Bulk approve: select multiple rows, approve all with an optional shared comment in one click
  • Single-request approve and reject with CSRF protection on every AJAX action
  • Filter by document type and resolve in-place without page reloads
  • Stacked-card mobile layout for on-the-go approvers

Rejection with mandatory comment

  • Dedicated rejection modal with mandatory comment field (configurable minimum length)
  • Reject button stays disabled until the comment requirement is met
  • Comment stored in the immutable audit history and emailed back to the requester
  • Static-backdrop modal — never lose a rejection comment by clicking outside the dialog

Approval History

  • Complete immutable audit log of every state transition on every request
  • Filters: document type, action, date range, performed-by staff
  • Scope-aware: staff with view see their own requests; view_all unlocks the full organization view
  • History entries survive document deletion — the entity snapshot is preserved at request creation
  • Server-side pagination ready for tens of thousands of historic entries

Immutable approval audit trail with full filter set

Notifications & Reminders

  • Native Perfex in-app notification (bell icon) for the approver on new request and the requester on resolution
  • Email notification via Perfex’s own SMTP system — no external mail service required
  • Reminder system: on-login sweep (immediate when the approver arrives) + cron sweep (batch processing)
  • Configurable reminder window in days — set to 0 to disable reminders entirely
  • Debug logging mode: records every rule evaluation decision in the logs table without spamming inboxes — safe to enable on a live production install

8 Granular Permissions

  • view — access the module and own requests
  • view_all — see all requests across the organization
  • create_rules, edit_rules, delete_rules — rule management
  • approve, reject — resolution actions
  • settings — modify module configuration

Settings

  • Per-entity on/off toggles (invoices, estimates, proposals, contracts, expenses)
  • Internal notifications on/off, email notifications on/off — independently configurable
  • Require comment on reject (default: on)
  • Auto-approve for admins (default: off, audit trail preserved either way)
  • Reminder interval in days, debug logging toggle, log retention period
  • Settings live inside Perfex’s native Setup → Settings → Integrations tab — familiar UX, persistent values

Security & reliability

  • CSRF-protected AJAX on every action
  • html_escape() on every dynamic value rendered in views
  • CodeIgniter Query Builder only — zero raw SQL with interpolated variables
  • IDOR guard on every endpoint: staff with view only see their own requests; the view_request page enforces ownership before rendering
  • Whitelisted ENUM filters on history queries — no parameter injection surface
  • Idempotent installer (safe to re-activate), versioned migration framework, clean uninstaller (drops only the module’s 4 tables — your invoices, estimates, contracts and CRM data stay intact)
  • No external API calls, no telemetry, no third-party JS bundled — runs on the jQuery, Bootstrap and Font Awesome that Perfex already loads

Internationalization

  • English and Spanish language packs included (over 270 strings each, identical key set)
  • Every UI string runs through Perfex’s _l() helper — ready for community translation
  • Full UTF-8, zero mojibake on accents, percent signs or HTML entities

How it scales

ApprovalFlow uses Perfex’s native hooks for instant request creation (after_invoice_added, after_estimate_added, proposal_created, after_contract_added, after_expense_added) so policy evaluation runs in O(1) at document save time — no background scan, no polling. Reminder sweeps run inside the standard Perfex cron tick (no extra worker process, no extra cron container) and process requests in cursor-based batches ordered by oldest pending first. A 10,000-request install adds negligible overhead to each Perfex cron pass. All listing views are server-side paginated — the dashboard, pending queue, rules list and history page never load the full table into memory.

Real-world use cases

Agency with junior account managers. A junior AM can create proposals in Perfex but should not send a $30,000 quote without the sales director reviewing it. Create a rule: Proposals → Amount > $10,000 → Approver: Sales Director. Every qualifying proposal lands in the director’s approval queue before going out.

Service company with discount abuse. Staff in a competitive market offer discounts verbally and then apply them in the CRM. Create a rule: Invoices → Discount % > 15% → Approver: Finance Manager. Any invoice with an unusual discount gets flagged before the customer receives it.

Expense compliance. Field staff submit expense reports that need finance approval above a threshold. Create a rule: Expenses → Amount > $500 → Approver: CFO. High-value expenses are reviewed before being logged as approved.

Key client governance. One important client always gets a second set of eyes before any document goes out. Create a rule: All document types → Client = Acme Corp → Approver: Account Director.

Try the Live Demo

Live demo

URL: https://onboarding.ticempresarial.com/demo1/admin
Email: admin@demo.com
Password: 14789632

Log in, navigate to ApprovalFlow in the sidebar, browse the dashboard KPIs, review a pending approval request, try approving one and rejecting another with a mandatory comment, then check the Approval History for the full audit trail. The demo is pre-seeded with realistic data covering all 5 document types, 5 active policies and a mix of pending, approved, rejected and cancelled requests so every screen is populated from the first click.

Requirements

  • Perfex CRM 3.0.0 or later (tested through 3.4.x)
  • PHP 7.4 / 8.1 / 8.2 (lint-clean on all three; no PHP 8.x-only syntax)
  • MySQL 5.7+ or MariaDB 10.4+
  • PHP extensions: json, mbstring (both standard in any PHP build)
  • Modern browser: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
  • No external API key required — ApprovalFlow runs 100% on your server
  • Optional: Perfex cron enabled for automatic reminder sweeps (strongly recommended)

Compatibility

ApprovalFlow uses only Perfex’s official module API and CodeIgniter 3 Query Builder. No core Perfex file is modified. The module is compatible with any other module that also follows the Perfex module convention.

Why ApprovalFlow vs alternatives

The staff-request modules on CodeCanyon cover HR workflows (vacation requests, equipment). The automation modules cover status changes and task creation. No other module as of 2026 places a human approver in the circuit for the five native financial documents of Perfex. ApprovalFlow is purpose-built for that exact gap.

What’s included

  • ApprovalFlow module (installable ZIP for Perfex Setup → Modules)
  • Full offline HTML documentation bundled inside the module
  • English and Spanish language packs
  • 6 months of direct author support

Support

Direct author support included for 6 months: installation help, configuration questions and bug fixes. Submit a ticket through CodeCanyon or contact us directly at the email on file. We respond in English and Spanish.

What’s NOT in v1.0 (transparency)

ApprovalFlow v1.0 is intentionally focused on the core single-approver governance loop. The following are on the roadmap for v1.1+ or the upcoming Pro version:

  • Multi-level / chained approvals (A approves, then B approves) — Pro version
  • Approval delegation when the named approver is out of office — Pro version
  • External integrations: Slack, Microsoft Teams, generic webhooks on breach — Pro version
  • Client portal where the customer approves the document themselves — Pro version
  • Electronic signature on approval — separate product
  • PDF / Excel export of approval history — planned for v1.1
  • Technical blocking of Perfex native send / create actions — not possible without modifying core. ApprovalFlow uses visual enforcement (persistent banner) and audit trail instead, which is the honest, core-safe approach.

If any of these is critical for your workflow, contact us before purchasing — we will tell you straight whether the upcoming release will cover it or whether you should wait.

Why we built this

We run a CRM consultancy. The single most common governance gap our clients hit after deploying Perfex is “our junior staff can send out a quote with a 40% discount, or sign a contract for any amount, and no one sees it before it reaches the client”. Every alternative was either a generic approval SaaS that wanted to sit between Perfex and your inbox, an enterprise BPM suite that costs more than the CRM, or a Perfex addon that promised approvals but only covered HR requests. We built ApprovalFlow — the governance tool we wanted to deploy for our own clients, but couldn’t find anywhere.

Follow the Author

ApprovalFlow is an independently developed add-on for Perfex CRM. Ticempresarial is not affiliated with Perfex Ltd.

What's Your Reaction?

Like Like 0
Dislike Dislike 0
Love Love 0
Funny Funny 0
Angry Angry 0
Sad Sad 0
Wow Wow 0