Gate: let items through only if they match a condition, at the right time and without duplicates (n8n-nodes-gate)

Hi everyone! :waving_hand:

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
:green_circle: Condition equals, contains, greater than, regex, is empty…, combined with AND/OR
:one_o_clock: Schedule 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
:repeat_button: Dedupe: Per Key Blocks the item if the same key (e.g. id, customer.cpf) already passed within the window (e.g. 24 hours)
:repeat_button: Dedupe: Once Per Window At most one execution per window (e.g. once every 10 min) β€” handy to stop alert spam

:warning: 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! :raising_hands:

:package: npm package: n8n-nodes-gate