Ask for approval
Changes data
Stops the flow until a person picks one of your options, or the time runs out.
Settings
| Setting | What it is |
|---|---|
| Options | Between 2 and 5 answers. Each one is a button and an output port; renaming the words keeps the port. |
| Title | One line, at most 120 characters — it is the subject of the mail and the heading of the page. |
| What you are asking | Up to 4000 characters. Secrets this run resolved are redacted before anybody sees it. |
| Details the approver sees | The snapshot on the page — a value per line, expressions allowed. |
| Ask for a comment | One rule for every option: the person must type a reason before they answer. |
| Who decides | At most 5 people in total, counting any addresses below. Somebody who has left the organization is asked nothing. |
| Addresses outside the workspace | Each address must already be in this workspace's address book (/alerts). A confirmed one is emailed a one-time link; one that has not confirmed is asked to confirm first. |
| May somebody outside the workspace decide? | Forwarding the mail delegates the decision — whoever opens the link answers, and the record says which address it was. |
| Wait at most | A number, or a {{ }} expression that resolves to one. |
| Unit | From 1 minute to 31 days. A waiting run costs nothing while it waits and keeps its own plan; a connection or secret deleted meanwhile fails the next node cleanly. |
| If nobody answers in time | Every request ends: either a person answers it, or the deadline does. |
Technical details
| Key | Value |
|---|---|
options | list of {id: text, label: text}, by default [{"id":"approved","label":"Approve"},{"id":"rejected","label":"Reject"}] |
request.title | text, by default "Approval needed" |
request.body | text |
request.data | object (any keys), by default {} |
request.requireComment | true/false, by default false |
request.approverMembers | list of text |
request.approverAddresses | textused when `request.whoMayDecide` is "members-and-outside" |
request.whoMayDecide | "members" or "members-and-outside", by default "members" |
deadline.amount | number, by default 7 |
deadline.unit | "minutes" or "hours" or "days", by default "days" |
onTimeout | "continue" or "fail", by default "continue" |
Output
What this node gives depends on the data it gets.
Sample output, and the expression for each field
Errors
When a step of this node stops a run, the run page shows a code. Look it up:
Example step
The step as a flow file holds it. Replace each value in <…>.
{
"config": {
"deadline": {
"amount": 7,
"unit": "days"
},
"onTimeout": "continue",
"options": [
{
"id": "approved",
"label": "Approve"
},
{
"id": "rejected",
"label": "Reject"
}
],
"request": {
"approverAddresses": "",
"approverMembers": [],
"body": "",
"data": {},
"requireComment": false,
"title": "Approval needed",
"whoMayDecide": "members"
}
},
"label": "Ask for approval",
"type": "human.approve",
"version": 1
}