Approval gates
Pause a workflow mid-execution and wait for a human to approve or reject the next step. Essential for sensitive operations — refunds, content publishing, user deletion, external API calls.
How it works
- A workflow reaches an Approval Gate node
- Execution pauses with status
awaiting_approval - An email is sent to the configured approver (optional)
- The approval appears in the WP admin approval queue
- The approver reviews the summary and clicks Approve or Reject
- The workflow resumes on the
approvedorrejectedoutput branch
Node configuration
| Setting | Description |
|---|---|
| Approver email | Who receives the approval request. Supports tokens like {{trigger.data.customer_email}} |
| Summary | What the approver sees. Use tokens to include dynamic data |
| Auto-approve timeout | If the approver doesn't respond within N minutes, auto-approve |
| Cancel after | If the approver doesn't respond within N hours, cancel the execution |
| Auto-approve on timeout | Yes/no — whether timeout triggers approval or rejection |
Approval queue
REST: GET /pfw/v1/approvals/pending — all pending approvals REST: POST /pfw/v1/approvals/{id}/approve — approve with optional note REST: POST /pfw/v1/approvals/{id}/reject — reject with optional note
The approval queue is visible in the WP admin under PF Workflow → Approvals. Users need pfw_approve_workflows capability (inherited from pfw_manage_workflows).
What the approver sees
- Workflow name and execution ID
- Summary — the custom text you configured with tokens resolved
- Trigger context — what triggered this workflow (manual, webhook, etc.)
- Timeline so far — which nodes executed before the gate
- Approve/Reject buttons with optional note field
Rejection behaviour
When rejected, the workflow continues on the rejected output branch. The rejection note is available via {{approval.note}} in downstream nodes. Use this to send a notification explaining why the action was rejected.