Multi-Step Approval Workflows
- Explain the four Wait node resume modes and when each is appropriate
- Build a Slack button approval using Block Kit interactive messages and the Wait webhook resume mode
- Create email link approvals where clicking a link in a Gmail message resumes the workflow
- Add a timeout and escalation path to prevent approvals from blocking workflows indefinitely
When Automation Needs a Human Gate
Not every decision should be fully automated. Expense approvals, large refunds, content before it goes live, access privilege grants — these are cases where a human judgment call belongs in the middle of an otherwise automated workflow. The Wait node is n8n's built-in tool for pausing a workflow execution and waiting for a human to act before continuing.
The Four Wait Node Resume Modes
The Wait node can resume in four ways:
- After time interval — resumes automatically after a set duration (hours, days). Used for sequence delays and retry logic.
- At specified time — resumes at a specific date and time. Used for scheduled follow-ups.
- On webhook call — resumes when a specific URL receives an HTTP request. This is the approval mechanism — clicking a link or button calls the URL.
- On form submission — resumes when a user submits an n8n form. Used for approvals that need more than a yes/no response.
Building a Slack Button Approval
The most common approval pattern uses Slack interactive messages:
- The workflow reaches the approval gate, saves the relevant data.
- A Slack node posts a Block Kit message to the approver with: the request details, an Approve button (links to the Wait node's webhook URL with
?approved=true), and a Reject button (links with?approved=false). - The Wait node pauses execution.
- When the approver clicks a button, their browser calls the webhook URL and the workflow resumes.
- An IF node checks the
approvedquery parameter and routes to the approved or rejected branch.
Email Link Approvals
For approvers who work primarily in email, embed the approval URL directly in an email sent by a Gmail node. Format it as a clear call-to-action link: Click here to approve this request. The same webhook URL mechanism applies — clicking the link resumes the Wait node. Include both approve and reject links with different parameters.
Adding a Timeout with Escalation
Approvals that never arrive are a workflow killer. Add a parallel timer alongside the Wait node using a second workflow triggered by a Schedule node. After 48 hours, check whether the original execution has already completed. If it has not:
- Send a reminder notification to the original approver.
- After 72 hours: escalate to the approver's manager with a Slack message flagging the pending request.
This escalation pattern prevents approvals from blocking workflows indefinitely without human monitoring.
Approval Audit Trail
After each approval decision, log the outcome to an Airtable table: the request type, the approver's name, the decision, and the timestamp. This creates an audit trail for compliance purposes and helps identify which types of requests have the longest approval delays — data you can use to improve the process over time.
- The Wait node's webhook resume mode is the core mechanism for human-in-the-loop approvals in n8n
- Slack Block Kit buttons linked to the Wait webhook URL create one-click approvals without any app
- Always add a timeout and escalation — approvals that never arrive block workflows indefinitely without it
- Log every approval decision to an Airtable table for compliance audit trails and process improvement data