Hi everyone! ![]()
I built a community node called Gate. It combines three checks that usually take an IF + a Code node + some external storage:
- Condition – field + operation + value, with AND/OR
- Schedule – only pass on certain weekdays / hours
- Dedupe – block items (or executions) that already went through recently
Whatever gets blocked leaves through a second output with the reason, so you can log it or handle it.
Order of rules: schedule → condition → dedupe (each one can be turned on/off)
Rules
| Rule | What it does |
|---|---|
| equals, contains, greater than, regex, is empty…, combined with AND/OR | |
| Weekdays + time range (e.g. Mon–Fri, 08:00–18:00). Ranges across midnight (22:00–06:00) count for the day they start: with Friday checked, Saturday 03:00 passes. From = To means the whole day. Empty timezone = workflow timezone | |
Blocks the item if the same key (e.g. id, customer.cpf) already passed within the window (e.g. 24 hours) |
|
| At most one execution per window (e.g. once every 10 min) — handy to stop alert spam |
Dedupe only remembers production executions (active workflow). Manual test runs don’t store anything.
Outputs
- Passed – items that got through.
- Blocked – items with
_gate.reason(e.g.Outside schedule,Duplicate: "123" already passed 5 min ago) and_gate.blockedAt. Can be disabled with Output Blocked Items.
When Nothing Passes:
- Stop Silently – the next nodes don’t run and the execution ends without error.
- Stop With Error – stops with your custom message (triggers the Error Workflow).
Note: Gate only blocks what goes through it. Other branches already running in parallel keep running.
Installation
Self-hosted: Settings → Community Nodes → Install → n8n-nodes-gate, then search for Gate in the nodes panel.
Feedback, bugs and ideas are very welcome! ![]()
npm package: n8n-nodes-gate