Configure expense approvals & purchase orders in CrmLeaf
Two linked tutorials for admins setting up expense management and purchase order workflows for deal and project teams.
Setting up expense approval workflows
A fully configured expense management system with category policies, multi-level approval rules, project/deal code linking, receipt enforcement, and real-time budget alerts - so every expense is captured accurately at point of spend and processed without month-end chaos.
Prerequisites
- ·Admin access to CrmLeaf (Settings > System Admin)
- ·Your expense categories defined (travel, accommodation, entertainment, equipment, etc.)
- ·Expense policy limits agreed with finance (per-category, per-role, per-occurrence limits)
- ·Approval hierarchy confirmed (who approves what, at which thresholds)
- ·Active projects and deals in CrmLeaf (expenses will link to these)
Define expense categories and policy limits
- 1
Click Add Category. Recommended structure for a professional services firm:
Category Receipt Required Per-Occurrence Limit Notes Travel - Flights Yes (mandatory) No limit (policy-governed) Requires pre-approval via PO for > $500 Travel - Accommodation Yes (mandatory) $250/night standard; $350 exec Hotel receipts must show room rate Travel - Ground Yes above $50 $80/day Includes taxis, rideshare, parking Client Entertainment Yes (mandatory) $150pp standard; $250pp exec Must include attendee names on submission Meals - Internal Yes above $30 $40/person No alcohol expenseable under $100 total Software & Subscriptions Yes (mandatory) $200/month per tool Requires IT approval for new tools Equipment & Hardware Yes (mandatory) $500 self-approve; > $500 PO required PO process applies above threshold Training & Conferences Yes (mandatory) $1,500/year per employee Requires manager pre-approval Contractor / Freelancer Invoice required Always via PO No direct expense - use PO module Travel - Flights
- Receipt Required
- Yes (mandatory)
- Per-Occurrence Limit
- No limit (policy-governed)
- Notes
- Requires pre-approval via PO for > $500
Travel - Accommodation
- Receipt Required
- Yes (mandatory)
- Per-Occurrence Limit
- $250/night standard; $350 exec
- Notes
- Hotel receipts must show room rate
Travel - Ground
- Receipt Required
- Yes above $50
- Per-Occurrence Limit
- $80/day
- Notes
- Includes taxis, rideshare, parking
Client Entertainment
- Receipt Required
- Yes (mandatory)
- Per-Occurrence Limit
- $150pp standard; $250pp exec
- Notes
- Must include attendee names on submission
Meals - Internal
- Receipt Required
- Yes above $30
- Per-Occurrence Limit
- $40/person
- Notes
- No alcohol expenseable under $100 total
Software & Subscriptions
- Receipt Required
- Yes (mandatory)
- Per-Occurrence Limit
- $200/month per tool
- Notes
- Requires IT approval for new tools
Equipment & Hardware
- Receipt Required
- Yes (mandatory)
- Per-Occurrence Limit
- $500 self-approve; > $500 PO required
- Notes
- PO process applies above threshold
Training & Conferences
- Receipt Required
- Yes (mandatory)
- Per-Occurrence Limit
- $1,500/year per employee
- Notes
- Requires manager pre-approval
Contractor / Freelancer
- Receipt Required
- Invoice required
- Per-Occurrence Limit
- Always via PO
- Notes
- No direct expense - use PO module
- 2
For each category, toggle Receipt Mandatory ON or OFF based on the policy in the table above.
- 3
Set the Per-Occurrence Limit for each category. Amounts above this limit will require additional approval tier(s) - configured in Step 2.
- 4
Enable the Mileage Rate Calculator for ground travel if your team uses personal vehicles: Settings → Expense → Mileage Rate → enter your standard rate per mile/km.
Keep your expense category list to 8–12 categories. More than 12 creates decision fatigue at submission - employees choose randomly when faced with too many options, which defeats the purpose of categorisation. If you need more granularity, use sub-categories rather than top-level categories.
Configure multi-level approval rules
- 1
Click Create Approval Rule. Configure rules in priority order (evaluated top-to-bottom):
Rule Name Condition Approval Chain Notification Auto-approve low value Amount < $50 AND receipt present AND category = Meals/Ground Auto-approved Submitter confirmation email Manager approval Amount $50–$500 AND all required fields present Direct manager Manager email + in-app Manager + Dept Head Amount $501–$1,500 Direct manager → Department head Sequential; next approver notified on prior approval Finance approval required Amount > $1,500 OR category = Equipment > $500 Manager → Dept Head → Finance Sequential chain; Finance final Executive expenses Submitter role = Executive CFO direct CFO notified immediately Policy exception Expense marked as 'exception request' Manager → Finance → CEO For legitimate over-policy spend Auto-approve low value
- Condition
- Amount < $50 AND receipt present AND category = Meals/Ground
- Approval Chain
- Auto-approved
- Notification
- Submitter confirmation email
Manager approval
- Condition
- Amount $50–$500 AND all required fields present
- Approval Chain
- Direct manager
- Notification
- Manager email + in-app
Manager + Dept Head
- Condition
- Amount $501–$1,500
- Approval Chain
- Direct manager → Department head
- Notification
- Sequential; next approver notified on prior approval
Finance approval required
- Condition
- Amount > $1,500 OR category = Equipment > $500
- Approval Chain
- Manager → Dept Head → Finance
- Notification
- Sequential chain; Finance final
Executive expenses
- Condition
- Submitter role = Executive
- Approval Chain
- CFO direct
- Notification
- CFO notified immediately
Policy exception
- Condition
- Expense marked as 'exception request'
- Approval Chain
- Manager → Finance → CEO
- Notification
- For legitimate over-policy spend
- 2
For each rule, set the Approval Deadline: the number of business hours the approver has to act before an escalation notification is sent. Recommended: 24 hours for standard; 4 hours for expenses flagged urgent.
- 3
Enable Delegation: approvers can designate a delegate when on leave. The delegate receives all approval requests during the specified period.
- 4
Under Rejection Rules, configure what happens when an expense is rejected: the submitter is notified with the rejection reason (mandatory field for approvers) and given 5 business days to resubmit with corrections or provide additional information.
Link expenses to projects and deals
- 1
Enable Mandatory Project/Deal Code: toggle ON. This makes the project or deal selection a required field on every expense submission - the form cannot be submitted without it.
- 2
Under Employee Assignment, confirm that employees are assigned to their active projects and deals in the Project Management module. Only assigned projects/deals appear in an employee's expense submission dropdown.
- 3
Enable Default Project for Teams: for teams that work predominantly on one project (e.g. a dedicated client delivery team), set a default project code. The field will be pre-populated but still editable.
- 4
Configure Budget Alert Thresholds per project: navigate to each active project → Budget Settings → set alert at 80% and 95% of budget. The project manager receives an in-app and email notification when these thresholds are crossed.
Setting up the project linking but not assigning employees to projects first. If employees are not assigned to a project in the Project Management module, that project will not appear in their expense dropdown - and they will complain that 'the right project isn't showing.' Always check project assignments before launching the expense module.
Configure receipt management and duplicate detection
- 1
Enable OCR Receipt Scanning: when an employee photographs a receipt, CrmLeaf extracts the vendor name, date, and amount automatically and pre-fills the expense form.
- 2
Enable Duplicate Detection: the system compares each incoming receipt image against previously submitted receipts. If a duplicate is detected (same vendor, amount, and date within 48 hours), the submission is flagged and held for admin review before entering the approval queue.
- 3
Set Receipt Retention Policy: define how long receipt images are stored (typically 7 years for tax compliance). Enable automatic archiving to your connected cloud storage after the retention period.
- 4
Under Compliance Flags, enable automatic flagging for: weekend submissions of large amounts, round-number amounts above $200 (often estimates rather than actual receipts), and repeated same-day submissions from the same employee above a threshold.
Set up the employee expense portal
- 1
Enable the Employee Expense Portal. This gives every employee a personal expense dashboard where they can submit new expenses, track approval status, view their expense history, and see their remaining budget allocation for the current period.
- 2
Configure Submission Guidance: add a short policy summary visible on the submission form - key limits, receipt requirements, and the categories that require pre-approval.
- 3
Enable Mobile App Access: ensure all employees have the CrmLeaf mobile app installed. The mobile receipt capture feature - photo → automatic OCR → pre-filled form → submit - is the highest-adoption path for point-of-spend capture.
- 4
Send the Launch Communication: before going live, send a brief email to all employees explaining the new process, the mobile app download link, and the key policy points.
Validate before go-live
- 1
Validation Check How to Test Receipt OCR fills form correctly Submit a test receipt via mobile app; verify fields pre-filled Mandatory project code enforced Attempt submission without project code; verify blocked Approval routing fires correctly Submit test expenses at each threshold; verify correct approver notified Duplicate detection working Submit same receipt twice; verify flag on second submission Budget alert fires at 80% Post test expenses to a project at 79% budget; push to 81% and verify alert Policy limit blocks over-threshold Submit an expense over the category limit; verify escalation required Employee portal accessible Log in as a test employee; verify dashboard and submission form visible Receipt OCR fills form correctly
- How to Test
- Submit a test receipt via mobile app; verify fields pre-filled
Mandatory project code enforced
- How to Test
- Attempt submission without project code; verify blocked
Approval routing fires correctly
- How to Test
- Submit test expenses at each threshold; verify correct approver notified
Duplicate detection working
- How to Test
- Submit same receipt twice; verify flag on second submission
Budget alert fires at 80%
- How to Test
- Post test expenses to a project at 79% budget; push to 81% and verify alert
Policy limit blocks over-threshold
- How to Test
- Submit an expense over the category limit; verify escalation required
Employee portal accessible
- How to Test
- Log in as a test employee; verify dashboard and submission form visible
Purchase orders & vendor management
A complete purchase order workflow with vendor database, PO creation and approval, three-way invoice matching, and vendor performance tracking - so every external spend commitment is visible, approved, and reconciled before payment.
Build your vendor database
- 1
Click Import Vendors or Add Vendor Manually. For each vendor, capture:
Field Description Why It Matters Vendor Name Legal trading name Used on POs and invoice matching Vendor Type Supplier / Contractor / Freelancer / Consultant Determines PO template and payment terms Primary Contact Name and email of account manager Auto-included on PO communications Payment Terms Net 30 / Net 14 / On receipt / etc. Auto-applied to invoices from this vendor Rate Card Hourly/daily rate or unit pricing Referenced when creating POs Tax ID / VAT Number Regulatory requirement Required for compliant invoicing Bank Details Payment destination Securely stored for payment processing Preferred Currency For international vendors Auto-applies to POs and invoice matching Vendor Name
- Description
- Legal trading name
- Why It Matters
- Used on POs and invoice matching
Vendor Type
- Description
- Supplier / Contractor / Freelancer / Consultant
- Why It Matters
- Determines PO template and payment terms
Primary Contact
- Description
- Name and email of account manager
- Why It Matters
- Auto-included on PO communications
Payment Terms
- Description
- Net 30 / Net 14 / On receipt / etc.
- Why It Matters
- Auto-applied to invoices from this vendor
Rate Card
- Description
- Hourly/daily rate or unit pricing
- Why It Matters
- Referenced when creating POs
Tax ID / VAT Number
- Description
- Regulatory requirement
- Why It Matters
- Required for compliant invoicing
Bank Details
- Description
- Payment destination
- Why It Matters
- Securely stored for payment processing
Preferred Currency
- Description
- For international vendors
- Why It Matters
- Auto-applies to POs and invoice matching
- 2
Set Vendor Risk Rating for each vendor: Low (established suppliers), Medium (new or single-source vendors), High (vendors with past disputes or single-point-of-failure supply). High-risk vendors trigger additional review steps in the PO approval process.
- 3
Enable Vendor Portal Access for key vendors: this gives them a login to submit invoices directly into CrmLeaf against their open POs, eliminating the email-invoice-to-accounts-payable cycle entirely.
When first building the vendor database, import from your accounts payable system or bank statement. Every payee from the last 12 months should become a vendor record. This catches the 'shadow vendors' - freelancers and suppliers being paid without being properly onboarded - that are common sources of compliance risk.
Configure PO templates by vendor type
- 1
Create a PO template for each vendor type:
Vendor Type Required PO Fields Approval Threshold Contractor / Freelancer Name, SOW description, daily rate, max days, project code All contractor POs require manager + finance approval Software / SaaS Vendor Tool name, subscription tier, per-seat cost, annual total, IT approval IT approval required for all new tools Equipment Supplier Item description, quantity, unit cost, delivery date, asset tag POs > $500 require dept head approval Professional Services Firm name, scope, deliverables, fixed fee or T&M, project code All PS POs require dept head + finance Travel Vendor Preferred supplier only, booking reference, traveller name, project Manager approval; finance for > $1,500 Contractor / Freelancer
- Required PO Fields
- Name, SOW description, daily rate, max days, project code
- Approval Threshold
- All contractor POs require manager + finance approval
Software / SaaS Vendor
- Required PO Fields
- Tool name, subscription tier, per-seat cost, annual total, IT approval
- Approval Threshold
- IT approval required for all new tools
Equipment Supplier
- Required PO Fields
- Item description, quantity, unit cost, delivery date, asset tag
- Approval Threshold
- POs > $500 require dept head approval
Professional Services
- Required PO Fields
- Firm name, scope, deliverables, fixed fee or T&M, project code
- Approval Threshold
- All PS POs require dept head + finance
Travel Vendor
- Required PO Fields
- Preferred supplier only, booking reference, traveller name, project
- Approval Threshold
- Manager approval; finance for > $1,500
- 2
For each template, set the Committed Budget Impact: when a PO is approved, this amount is automatically committed against the linked project budget. The project manager's budget dashboard updates immediately - before any invoice is received.
Configure the PO approval workflow
- 1
Create PO approval rules following similar logic to expense approval, with additional steps for larger commitments:
PO Value Range Approval Chain SLA for Approval < $500 Manager only 24 business hours $500 – $2,000 Manager → Department Head 48 business hours $2,001 – $10,000 Manager → Dept Head → Finance 72 business hours > $10,000 Manager → Dept Head → Finance → CEO 5 business days Any - new vendor first PO Manager → Finance → Procurement review 72 hours (new vendor check) < $500
- Approval Chain
- Manager only
- SLA for Approval
- 24 business hours
$500 – $2,000
- Approval Chain
- Manager → Department Head
- SLA for Approval
- 48 business hours
$2,001 – $10,000
- Approval Chain
- Manager → Dept Head → Finance
- SLA for Approval
- 72 business hours
> $10,000
- Approval Chain
- Manager → Dept Head → Finance → CEO
- SLA for Approval
- 5 business days
Any - new vendor first PO
- Approval Chain
- Manager → Finance → Procurement review
- SLA for Approval
- 72 hours (new vendor check)
- 2
Enable PO Number Auto-Generation: every approved PO receives a unique sequential number (e.g. PO-2026-0147). This number must appear on the corresponding vendor invoice for matching.
- 3
Configure the PO Communication Template: when a PO is approved, CrmLeaf automatically emails the vendor with the PO document attached, the PO number, the agreed scope and amount, and instructions for invoice submission.
Set up three-way invoice matching
- 1
Enable Automated Three-Way Matching. When a vendor invoice is received, the system matches it against:
- The Purchase Order (amount, vendor, description)
- The Goods Receipt or Service Confirmation (has the deliverable been confirmed?)
- The Invoice itself (amount, date, PO number reference)
- 2
Configure Matching Tolerances: small discrepancies (e.g. rounding differences of < $5, or currency fluctuation within 1%) can be set to auto-match rather than requiring manual review.
- 3
Set Mismatch Handling Rules:
- Invoice amount > PO amount by > tolerance: flag for finance review; do not process payment
- Invoice with no matching PO number: route to AP queue as unmatched; notify finance
- Duplicate invoice (same vendor, amount, date): hold and notify AP manager
- 4
Enable the Goods Receipt Confirmation step for physical goods purchases: the receiving team member must confirm receipt in CrmLeaf before the invoice is released for payment. This prevents payment for goods not yet delivered.
Vendor performance tracking
- 1
Enable the Vendor Performance Report. This automatically tracks across all POs and invoices:
Metric What It Measures Alert Threshold On-time delivery rate % of POs where deliverable confirmed by agreed date Alert if < 85% over trailing 6 months Invoice accuracy rate % of invoices matching PO without discrepancy Alert if < 95% over trailing 6 months Average payment-to-delivery time Days from PO approval to deliverable confirmation Flag if > 30% above contracted SLA Dispute rate % of POs with a formal dispute raised Alert if > 2 disputes in 12 months Spend concentration % of total vendor spend with single supplier Alert if > 40% with any single vendor On-time delivery rate
- What It Measures
- % of POs where deliverable confirmed by agreed date
- Alert Threshold
- Alert if < 85% over trailing 6 months
Invoice accuracy rate
- What It Measures
- % of invoices matching PO without discrepancy
- Alert Threshold
- Alert if < 95% over trailing 6 months
Average payment-to-delivery time
- What It Measures
- Days from PO approval to deliverable confirmation
- Alert Threshold
- Flag if > 30% above contracted SLA
Dispute rate
- What It Measures
- % of POs with a formal dispute raised
- Alert Threshold
- Alert if > 2 disputes in 12 months
Spend concentration
- What It Measures
- % of total vendor spend with single supplier
- Alert Threshold
- Alert if > 40% with any single vendor
- 2
Schedule a Quarterly Vendor Review: the performance dashboard generates a PDF report per vendor. Use this in annual contract renewals - vendors with consistently poor performance metrics have their contracts reviewed or rates renegotiated.
Validation checklist
01.Vendor database complete
Spot-check 5 vendors against accounts payable records; verify fields
02.PO auto-number generating
Create and approve a test PO; verify PO number assigned
03.PO approval chain firing
Submit test POs at each threshold; verify correct approvers notified
04.Vendor email notification sent
Approve a test PO; verify vendor receives PO document by email
05.Committed budget visible
Approve a test PO linked to a project; check project budget dashboard
06.Three-way matching working
Submit a matching and a mismatched test invoice; verify correct handling
07.Duplicate invoice detected
Submit the same invoice twice; verify hold and notification
✓ Ready to launch when all items are checked
Expense & PO setup - frequently asked questions
Yes, with a configurable time limit. Most organisations set a retrospective submission window of 30–90 days. Submissions outside this window require manager approval with a reason. The system flags retrospective submissions in the approval queue so approvers can see they are not current-period expenses.
Company card transactions can be automatically imported via bank feed integration. Imported transactions appear in the expense queue for the cardholder to categorise and assign to a project - removing the submission step entirely. The approval workflow still applies, but the expense is pre-populated from the bank data.
The invoice is flagged as a mismatch and held - it does not proceed to payment. Finance is notified with the discrepancy amount. They can: approve a partial payment up to the PO value, raise a PO amendment for the additional amount, or reject the overage and notify the vendor.
Yes. Expense policies can be configured at the team or department level. The sales team might have a higher client entertainment limit than the operations team. Each department’s policy is configured separately, and the correct policy is applied automatically based on the submitter’s team assignment.
Run a parallel period of 2–4 weeks where both processes are active but employees are encouraged to use CrmLeaf for all new expenses. At the end of the parallel period, close the email inbox for expense submissions and complete the cutover. Do not try to migrate historical expenses - start fresh with CrmLeaf for current-period spend.
Related guides
Ready to put this tutorial into practice?
Start free, migrate from any tool, and configure your service-desk workflows in days, not weeks.
Free 14-day trial · Free onboarding · Free data migration · Cancel anytime
