Waterfall Enrichment
How to chain multiple enrichment providers, step by step
What is waterfall enrichment?
Waterfall enrichment lets you try multiple providers in sequence — only moving to the next if the previous one didn’t return data. This avoids wasting API credits, prevents conflicting results, and increases coverage.
It works like this:
Run the first provider.
If the output column is still empty, run the second.
If still empty, run the third — and so on.
How to set it up
Step 1: Add the first enrichment node
Start with your primary provider. Add an enrichment node to the canvas.
Select the provider, map the required inputs (for example, an
email
field), and configure outputs.Leave the “Run only if column is empty” setting blank. Since this is the first node in the chain, it should run unconditionally.
Step 2: Add fallback nodes
Now add a second enrichment node to the right of the first. This is your fallback provider — it should run only if the previous one didn’t return a value.
In the “Run only if column is empty” dropdown, select the output column from the first node (e.g.
Email Status
). This makes the second provider conditional — it will only run when the chosen column is empty.
Repeat this step to add more fallback nodes. Each one should:
Be placed to the right of the previous one.
Use the same “Run only if column is empty” setting, pointing to the same target column.
Important options
Map new columns to existing ones.
When you apply “Run only if column is empty”, the “Map new columns to existing ones” option is automatically turned ON.
This ensures the node writes into an existing column (same name and type), instead of creating a new one. It merges outputs from different nodes into the same column.
You can switch this option manually:
Keep it ON to use a shared field across providers.
Turn it OFF if you need to store each provider’s result separately.
Show response status
Adds a column that shows the status for each row:
Processed
Not found
Empty input
Error: <reason>
Useful to track which node returned a result.
Show original response
Saves the complete raw API response in a separate column. This is helpful when:
You need an audit trail.
You want to extract extra fields that have not been mapped yet.
Example: Email verification with three providers
You want to verify email addresses using MillionVerifier, NeverBounce, and ZeroBounce - in that order.
MillionVerifier (first node):
Input:
email
Output:
Email Status
Run only if column is empty: (leave blank)
Map new columns to existing ones: (not applicable)
NeverBounce (second node, after MillionVerifier):
Input:
email
Output:
Email Status
Run only if column is empty:
Email Status
Map new columns to existing ones: auto-enabled (writing to the same
Email Status
)
ZeroBounce (third node):
Input:
email
Output:
Email Status
Run only if column is empty:
Email Status
Map new columns to existing ones: auto-enabled
Now the waterfall logic is in place:
MillionVerifier runs first and fills
Email Status
if possible.If it's empty, NeverBounce runs and writes into the same column.
If it's still empty, ZeroBounce tries last.
This way, you get one clean output column and only pay for what's needed.
Last updated
Was this helpful?