The Problem
Many business processes require approvals — expense reports, purchase requests, time-off requests, content publishing, and access grants. These approvals often happen via email ("Reply APPROVED to this message"), but tracking which requests are pending, approved, or denied across dozens of email threads is chaos. Requests fall through the cracks, approvals are delayed, and there is no audit trail beyond someone's inbox.
How JsonHook Solves Approval Workflows
JsonHook receives approval response emails and delivers them as structured JSON to your webhook handler. The handler extracts the approval decision (approved/denied), the approver's identity, and the request reference, then updates the request status in your workflow system. Pending requests are tracked, escalated on timeout, and every decision is logged for compliance.
Build Email-Based Approvals
Approval workflows that live in email. Tracked, escalated, auditable.
Get Free API KeyArchitecture Overview
A production approval workflows pipeline built on JsonHook follows this architecture:
- Outbound notification: Your system sends an approval request email with a unique request ID in the subject or body
- Reply address: The approval email's reply-to address is a JsonHook inbound address
- JsonHook delivery: When the approver replies, JsonHook parses their response and delivers it as JSON to your webhook
- Webhook handler: Extracts the request ID, approver email, and decision (keyword scan for "approved", "denied", "rejected") from the reply
- Workflow update: Updates the request status in your system, notifies the requester, and triggers the next step if approved
This architecture keeps each layer stateless and independently scalable. The inbound email address, the webhook handler, and the downstream data store can each be deployed, monitored, and scaled separately without affecting the others.
Implementation Guide
Follow these steps to set up approval workflows automation with JsonHook:
- Design the approval email with a unique request ID in the subject and clear instructions ("Reply APPROVED or DENIED")
- Set the reply-to address to a JsonHook inbound address configured with your approval-handler webhook URL
- Build a handler that extracts the request ID from the subject or in-reply-to header, the approver from the sender field, and the decision from the body text
- Update the workflow — mark the request as approved or denied in your system, timestamp the decision, and record the approver
- Implement escalation — if no response is received within a timeout period, re-send the approval request or escalate to a backup approver
- Log for compliance — store the original request, approval email, parsed decision, and timestamp as an immutable audit record
Once the pipeline is active, every qualifying email delivers structured JSON to your handler within seconds of arrival — no polling, no manual exports, no missed messages.
ROI & Benefits
Automating approval workflows via email webhooks delivers measurable improvements across multiple dimensions:
- Email-native approvals: Approvers respond from their inbox — no login to a separate system, no app to install, no link to click
- Tracked requests: Every approval request has a status — pending, approved, denied — with timestamps and approver identity
- Escalation on timeout: Stale requests are automatically escalated — no more approvals stuck in someone's inbox for days
- Compliance audit trail: Every decision is logged with who approved, when, and the exact text of their response
- Works everywhere: Approvers can respond from any email client on any device — no specific software required
Teams that adopt email-to-webhook automation for approval workflows consistently report faster response times, lower error rates, and significant labour savings within the first month of deployment.