Approval Workflow Software Development

Approvals that live in someone's email inbox are not a workflow -- they are a process that stops every time that person is on leave.

Approval workflows route decisions to the right person at the right time, track their status, enforce deadlines, and escalate when approvals stall. When approvals happen over email, the status is invisible to anyone not on the thread -- the requester doesn't know if the approval is pending, rejected, or simply forgotten. Finance doesn't know which invoices are waiting. Procurement doesn't know which purchase orders are approved. RaftLabs builds approval workflow software with configurable routing rules, approval tiers, SLA monitoring, escalation logic, and a status view that shows where every item in the workflow currently sits. For invoice approval, purchase order sign-off, contract review, expense authorisation, HR requests, and any other process that requires a documented decision trail.

  • Configurable approval routing -- by value, by department, by vendor, or by any business rule your process requires
  • SLA monitoring with automatic escalation when an approval hasn't moved within the configured time limit
  • Full audit trail for every approval decision -- who approved, when, and any comments recorded at the time
  • Requestor-facing status view showing where their item is in the approval chain without emailing the approver
See our work

Recent outcomes

Voice AI · Research

Text-based interviews converted to automated phone calls

6× deeper insights

AI Automation · Ops

Manual invoice OCR across 40+ gas stations

20k+ txns day one

Loyalty · Retail

SuperValu & Centra loyalty platform with receipt validation

1,062 users in 4 weeks

SaaS · Logistics

Multi-carrier shipping hub for Indonesian eCommerce

2,000+ shipments yr 1
4.9 / 5 on ClutchSee all work

RaftLabs builds approval workflow software with configurable routing rules, SLA monitoring, escalation logic, full audit trail, and requestor status visibility. Covers invoice approval, purchase orders, contracts, expenses, and HR requests. Threshold-based routing sends items to different approvers based on amount, department, or risk level. A focused approval workflow for one process type typically delivers in 6 to 8 weeks. More complex systems with multiple approval types and ERP integration take 10 to 16 weeks. Fixed cost agreed before development starts.

Trusted by

Vodafone
Aldi
Nike
Microsoft
Heineken
Cisco
Calorgas
Energia Rewards
GE
Bank of America
T-Mobile
Valero
Techstars
East Ventures

Approval workflows break down when the process lives entirely in email. The requester sends a request, the approver receives an email, the email sits unread or gets buried, and the SLA expires without anyone noticing. The finance manager has no visibility into which invoices are awaiting sign-off. The procurement team has no way to see which purchase orders are stuck. The auditor, six months later, is given a spreadsheet that may or may not reflect what actually happened.

The cost of a broken approval process is measured in delayed payments, missed procurement deadlines, compliance gaps, and the time spent by managers chasing approvals that should have been routed, tracked, and escalated automatically. Approval workflow software replaces email chains with a structured process that routes, tracks, escalates, and records every decision from submission to sign-off.

Capabilities

What we build

Configurable approval routing

Routing rules are defined as condition-action pairs -- configurable by an administrator without code changes -- so the approval chain adapts to every request's attributes rather than applying a one-size-fits-all sequence. Threshold-based routing: purchase orders below £5,000 route to the department manager; £5,000--£25,000 route to department manager and finance director in sequence; above £25,000 add the CFO as a third tier. Vendor-type routing: new vendor purchases route to the procurement director for supplier approval regardless of value; approved vendor purchases follow the standard value-based chain. Department routing: IT capex routes to the CTO in addition to finance; marketing spend above a threshold routes to the CMO. Risk-category routing: contracts with data processing clauses route to the Data Protection Officer before commercial sign-off; contracts with liability clauses above a configured amount route to legal review. Routing mode per step: sequential approval (each approver acts in order, the next is only notified when the previous has approved -- standard for financial approvals where each level is a gate); parallel approval (all approvers in a tier are notified simultaneously and the item advances when all have responded -- used for reviews where multiple departments give independent input simultaneously); any-one approval (the item advances when one approver in a defined group responds -- used for out-of-office resilience where any member of a team can approve). Routing rule evaluation is deterministic and logged: the specific rules that determined the approval chain for each item are recorded in the audit trail so the routing decision is explainable to auditors.

SLA monitoring and escalation

SLA thresholds are configured per approval step and per request urgency level: standard invoice approval allows 48 hours at each approver step; urgent payment authorisation allows 4 hours; contract review allows 5 business days. Business-hours-only SLA calculation ensures that weekends and company holidays are excluded from SLA consumption -- an item submitted at 4pm on Friday with a 24-business-hour SLA does not expire at 4pm Saturday. Escalation tiers: at 70% of the SLA window consumed, the approver receives a reminder notification with the item details and SLA deadline. At 100% (SLA breach), the first escalation fires: the approver's manager receives a notification with the stalled item and how long it has been waiting; the approver receives a breach notice. If no action is taken within a second configured window after the first escalation, the item is auto-assigned to the delegate approver (if configured) or escalated to the approval manager's queue. Auto-approve at SLA limit: for low-value, low-risk items where the business impact of delay exceeds the risk of proceeding without explicit approval, an auto-approve-on-timeout rule can be configured -- the approval is recorded as system-approved with the timeout reason and the accountable manager notified. SLA performance reporting: approval cycle time by step, by approver, and by approval type; escalation rate by step; SLA breach rate trend over time -- the metrics that identify whether slow approvals are a process design problem, a capacity problem, or a specific approver problem.

Audit trail and decision record

The audit trail is written to an append-only log -- every event is a new record; no event can be modified or deleted after it is written. Events recorded per approval item: request submission (submitter identity, timestamp, request content snapshot); each approval action (approver identity, action type, timestamp, comments entered, IP address, and device); each routing decision (which rule triggered the routing and to whom); each escalation event (SLA threshold breached, escalation action taken, escalating party notified); each reassignment (original assignee, new assignee, reason); and each attachment upload (uploader, timestamp, document name, version). The record is tamper-evident: a hash of each event record is stored separately so any modification to a historical event is detectable. For audit and compliance use cases -- SOX financial controls, ISO 27001 access approvals, FCA regulated activity sign-offs, NHS IG approval processes -- the audit trail export produces a structured evidence pack filtered by date range, approval type, approver, or individual request. Audit exports include the full sequence of events, the approval chain that was applied (with the routing rules that determined it), and the supporting documents attached at the time of submission and decision. Retention policy: audit records are retained for a configurable period (minimum 7 years for financial approvals under standard accounting standards) and stored in immutable cold storage (AWS S3 Object Lock or Azure Blob Storage Immutable) to satisfy long-term retention requirements.

Requestor and approver dashboards

Each user role has a tailored dashboard view that shows only the information relevant to their function -- a requestor's view, an approver's view, and a manager's oversight view are different surfaces built on the same data model. Requestor dashboard: all submitted items with current approval step, time in current step vs SLA, expected completion date, and last action taken. The requestor sees the current status without needing to email the approver or a colleague to find out where their request is. Approver dashboard: items pending the approver's action, sorted by SLA urgency (items closest to breach shown first); each item shows the request summary, the submitter, the amount or key decision field, the time remaining before SLA breach, and a direct approve/reject action -- approvers can clear their queue without navigating to a detail page for simple items. Manager dashboard: team-level view showing all open items across the approval process, which approvers have the most pending items, average cycle time by approval type, SLA breach rate for the current period, and items currently overdue with the breached SLA time. Manager operations: bulk reassignment for an approver who is unexpectedly absent; delegate configuration for planned absence; SLA threshold adjustment for specific approval types. Notification channel preferences per user: email (all platforms), Slack (direct message to the user's Slack account via Slack API), Microsoft Teams (adaptive card message via Teams webhook), or in-app notification for users who work primarily in the approval portal. Users configure their preferred channel in their profile settings and can suppress notifications for specific approval types they have delegated.

Rejection and revision workflow

Rejection handling is structured to accelerate resolution rather than simply terminating the request. When an approver rejects an item, they are required to select a rejection reason code from a configurable list (insufficient budget, missing documentation, incorrect vendor, out of policy, requires additional approval) and optionally add a free-text note. Mandatory reason codes prevent uninformative rejections ("rejected" with no context) that generate back-and-forth communication to understand what the requestor needs to change. The rejection notification to the requestor includes the reason code, the approver's note, the specific step at which the rejection occurred, and (for items where correction is possible) a direct link to the revision form. Revision workflow: the requestor updates the required fields and resubmits without creating a new request -- the revised submission is linked to the original, the revision number is incremented, and the approval chain restarts from the beginning or from the rejecting step depending on the configured revision routing (restarts from beginning for high-value items where all tiers should see the revision; restarts from the rejecting step for corrections that don't require re-review of earlier approvals). Version history per item: every submitted version is preserved with a diff view showing what changed between versions -- approvers reviewing a resubmission can see exactly what the requestor changed without reading the full request again. Partial approval for line-item requests (purchase orders, expense reports with multiple lines): individual line items can be approved or rejected separately, with approved lines advancing to fulfilment and rejected lines generating a targeted rejection notification for just those lines.

Integration with source systems

Integration with the system where the approval item originates means approval requests are created automatically without a separate data entry step and approval decisions update the source record without manual status changes. ERP integration: SAP (RFC/BAPI and OData) for purchase requisitions and invoice approvals; Oracle ERP Cloud REST API for purchase orders and expenses; NetSuite SuiteTalk REST API for bill approval and purchase order workflows; Microsoft Dynamics 365 Business Central REST API for purchase invoice and expense approval. Procurement platform integration: SAP Ariba API for procurement workflow items; Coupa API for requisition and PO approvals; Jaggaer REST API. Expense management integration: Concur SAP Expense API; Expensify API for expense report approvals; Spendesk API. HR system integration: Workday REST API for employee change requests, headcount approvals, and compensation changes; BambooHR API for HR action approvals; SAP SuccessFactors API. Document management integration: SharePoint Graph API and OneDrive for Business for document retrieval so approvers view the actual contract or invoice PDF within the approval interface without downloading files; DocuSign API for triggering e-signature workflow after final approval. Identity and access: SAML 2.0 SSO integration with your identity provider (Okta, Azure AD, Google Workspace) so approvers authenticate with their existing corporate credentials; SCIM provisioning to automatically create and deactivate approval system accounts when users are added or removed in the IdP, eliminating orphaned accounts for departed employees.

Have an approval workflow project?

Tell us the approval process you need to automate, the routing rules, and where the current process stalls. We'll scope the workflow and give you a fixed cost.

Frequently asked questions

Yes. Threshold-based routing is a standard approval workflow pattern: a purchase order under $5,000 routes to the department manager, $5,000 to $25,000 routes to the department manager and finance director, above $25,000 routes to the CFO. Risk-based routing works the same way with risk score as the routing attribute. Routing rules are configured during setup and can be modified by an administrator without code changes. Multiple routing attributes can be combined -- amount AND vendor type AND department all influencing the approval chain.

Absence handling is configured per approver: a delegate approver for planned absence (holiday, parental leave) who receives approval tasks during the absence period, or automatic escalation to the approver's manager when an SLA expires without action. Delegates are configured in the system by the approver before their absence. For unexpected absence, the SLA escalation path handles the routing automatically without manual intervention. The audit trail records that the delegate or escalation approver acted on behalf of the original approver.

A focused approval workflow covering a single approval type (invoice approval or purchase order sign-off) with configurable routing, SLA monitoring, and audit trail typically takes 6 to 8 weeks. A more complete system covering multiple approval types, complex routing logic, integration with ERP or procurement systems, and a manager analytics dashboard typically takes 10 to 16 weeks. Fixed cost agreed before development starts.

Yes. Integration with the source system -- the ERP that generates invoices, the procurement system that creates purchase orders, the HR system that initiates employee change requests -- means approval items are created automatically from the source system rather than entered separately. Approval decisions are pushed back to the source system to update the record status. The integration scope depends on what APIs your source systems expose and is assessed during the project scoping.

Work with us

Tell us what you need. We'll tell you what it would take.

We scope Approval Workflow Software in 30 minutes. You walk away with a clear cost, timeline, and approach. No commitment required.

  • Scope and cost agreed before work starts. No surprises. No obligation.
  • Working prototype within 3 weeks of kickoff.
  • Pay by milestone. You see progress before each invoice.
  • 60-day post-launch warranty. Bug fixes, UI tweaks, and deployment support. No retainer.
  • All conversations are NDA-protected.