TemperStack
Intermediate12 min readUpdated Mar 18, 2026

How to implement human-in-the-loop workflows on n8n

Quick Answer

Human-in-the-loop workflows in n8n allow manual intervention in automated processes using Wait nodes, webhooks, and approval mechanisms. This enables human decision-making at critical points while maintaining automation efficiency.

Prerequisites

  1. Active n8n instance running
  2. Basic understanding of n8n workflow creation
  3. Access to webhook URLs
  4. Email or Slack integration configured
1

Create a new workflow with trigger

Open your n8n interface and click New Workflow. Add your initial trigger node such as Webhook, Schedule Trigger, or Manual Trigger. Configure the trigger settings based on your use case - for example, set up a webhook URL if you're receiving data from external systems or configure a schedule for periodic processing.
Tip
Use descriptive names for your workflow and nodes to make debugging easier later
2

Add data processing nodes

Insert the necessary nodes to process your initial data before requiring human intervention. This might include HTTP Request nodes to fetch additional data, Code nodes for data transformation, or Filter nodes to determine which items need human review. Connect these nodes in sequence and test each step to ensure data flows correctly.
Tip
Always test your data processing steps before adding the human-in-the-loop components
3

Insert a Wait node for human intervention

Add a Wait node after your data processing steps. In the Wait node configuration, select Webhook call as the resume condition. Set an appropriate timeout period (e.g., 24 hours for approval workflows). Copy the generated webhook URL - this will be used to resume the workflow after human intervention. Configure the webhook to accept POST requests with decision data.
Tip
Set realistic timeout periods based on your business processes and availability
4

Create notification mechanism

Before the Wait node, add a notification node such as Send Email, Slack, or Microsoft Teams. Configure this node to send relevant information to the human reviewer, including:
  • Summary of the data requiring review
  • The webhook URL for responding
  • Instructions for approval/rejection
  • Any relevant context or attachments
Include action buttons or links that make it easy for users to respond.
Tip
Include all necessary context in notifications to avoid back-and-forth communication
5

Build approval interface or form

Create a simple web form or use n8n's Form Trigger node to collect human decisions. The form should include:
  • Approval/rejection options
  • Comment fields for feedback
  • Hidden fields to pass through original data
Configure the form to POST data to the webhook URL from your Wait node. Alternatively, use email replies or Slack interactive buttons for simpler approval workflows.
Tip
Keep approval interfaces simple and mobile-friendly for quick responses
6

Process human decisions

After the Wait node, add an IF node to handle different human decisions. Configure conditions based on the approval response (e.g., {{ $json.decision === 'approved' }}). Create separate branches for:
  • Approved items - continue with automation
  • Rejected items - send to different process or stop
  • Timeout cases - handle expired decisions
Add appropriate nodes in each branch to handle the respective outcomes.
Tip
Always include error handling for malformed or unexpected responses
7

Implement post-decision actions

In the approved branch, add nodes to complete the automated process such as HTTP Request for API calls, Database operations, or File operations. In the rejected branch, add nodes for logging, notifications, or alternative processes. Include a final Send Email or notification node to inform the human reviewer of the completion status and any results.
Tip
Log all decisions and outcomes for audit trails and process improvement
8

Test and monitor the workflow

Save and activate your workflow using the Active toggle. Test the complete flow by triggering it with sample data. Verify that:
  • Notifications are sent correctly
  • The approval interface works
  • Both approval and rejection paths function properly
  • Timeout handling works as expected
Monitor the workflow execution in the Executions tab and set up alerts for failed executions.
Tip
Create test scenarios for all possible decision paths and edge cases

Troubleshooting

Wait node times out before human can respond
Increase the timeout period in the Wait node settings or implement a notification reminder system before timeout occurs. Consider using Cron nodes to send reminder notifications.
Webhook URL not receiving responses from approval form
Verify the webhook URL is accessible and check CORS settings if using web forms. Ensure the form is sending data as JSON with correct Content-Type headers. Test the webhook URL directly using tools like Postman.
Human reviewer not receiving notification emails
Check email node configuration and verify SMTP settings. Ensure email addresses are correct and check spam folders. Test email delivery with a simple message first, then add workflow context.
Workflow execution hanging or not resuming after approval
Check that the webhook response data matches the expected format in subsequent nodes. Verify the IF node conditions are correctly configured. Review execution logs for any errors in data processing after the Wait node.

Related Guides

More n8n Tutorials

Other Tool Tutorials

Ready to get started with n8n?

Put this tutorial into practice. Visit n8n and follow the steps above.

Visit n8n