Someone has to say yes before your automation does the thing.
One request from n8n or Make. A person gets a button in Slack or email. Your workflow continues — once, and with a record of who said yes.
Try it. This makes a real request.
requestnot yet
the persongets a link like the one they'd get in Slack or email
answer—
your workflowreceives {approved, decided_by, decided_at} at its resume URL, once
What it takes care of
The Slack button returns 404 and the n8n node spins.Slack is answered in under three seconds. Your resume URL is called once and never retried after it's been used.
The buttons stay live. A colleague clicks again.The message becomes “yes · steve · 14:32” where it was. A second click shows that, nothing else.
Make has no approval step outside Enterprise.Two HTTP modules. Make spends no operations while the person thinks.
No one decided what happens if nobody answers.Every request carries a deadline and a default. The default is no.
An email scanner opens the link and “approves”.Opening never decides. Only a press does.
“I said yes — did it actually run?”Each request tells you whether the callback was delivered, and keeps every attempt.
The whole integration
# n8n: callback_url is {{ $execution.resumeUrl }} · Make: your second scenario's webhook
curl -X POST https://someonehastosayyes.com/v1/approvals \
-H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{ "question": "Refund order A-1 for $380?",
"context": { "order": "A-1", "amount": 380 },
"channel": "slack", "to": "C0123ABCD",
"callback_url": "https://your-n8n/webhook-waiting/…",
"timeout_minutes": 1440, "default_on_timeout": "rejected" }'