nodes / builtin / flow
Funnel
Continue as soon as any one of several incoming branches completes.
Continue as soon as any one of several incoming branches completes.
What it does
Section titled “What it does”Most nodes wait until every connected branch has finished before they run. Funnel does the opposite: it runs the moment any one of its incoming branches reaches it, and passes that branch’s data straight through.
If the branch that fired it carried no data, Funnel sends { "passed": true } so the rest of the workflow still runs.
Funnel does not combine data from several branches. To join two datasets, use Merge.
When to use it
Section titled “When to use it”- Several triggers, one shared tail. A workflow that starts from a Hotkey, a Context Menu and a Schedule can send all three into one Funnel, so the actual work is built once. Each run follows only the trigger that fired, and Funnel runs once per run.
- Parallel branches where any finish is enough. For example, two branches that each try a different way to get the same data: whichever reaches Funnel first moves the workflow on.
Inputs and settings
Section titled “Inputs and settings”This node has no settings.
Connect as many branches as you like to its single input.
Outputs
Section titled “Outputs”-
Output
The item that arrives is passed on unchanged. To read data from a specific earlier node instead, use an expression that names that node.
Dependencies and credentials
Section titled “Dependencies and credentials”None. This node needs no connection and has no slots for other nodes.
Example workflow
Section titled “Example workflow”- Add a Hotkey trigger and a Context Menu trigger.
- Connect both to a Funnel.
- After the Funnel, add Get Selected Text and a Slack node that posts the text.
Pressing the shortcut or using the right-click menu now runs the same two steps.
Common issues
Section titled “Common issues”- The steps after Funnel run more than once in one run. Two branches reached the Funnel in the same run, and each one fires it. If you need the steps to run only once after all branches finish, connect the branches to the next node directly (nodes wait for every input by default), or join them with Merge.
- The next node gets
{ "passed": true }instead of data. The branch that fired Funnel produced no output. Read the data you need from the node that produced it with an expression.
Related nodes
Section titled “Related nodes”- Merge: join two datasets into one.
- IF and Switch: split one path into several.
- No Operation: a placeholder that passes data through.