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