Why filter incoming webhooks?
Most providers fire a webhook for every event, whether or not you care about it. A payment processor sends one for every charge, refund, and dispute; a store sends one for every order, cancellation, and inventory change. If your downstream tool receives all of them, you get noise, wasted processing, and Slack channels nobody reads.
Conditional webhook forwarding fixes this: NodeTrigger evaluates a filter rule against each incoming payload and forwards the event only when it matches. You decide what "matters" — a specific event type, a product name, an amount over a threshold, a status of paid, a country, or any JSON field in the body.
Rule of thumb: route a webhook based on payload, not just on which provider sent it. That is the difference between a dumb relay and a real webhook router.
What you can filter on
NodeTrigger reads any field in the JSON body using a dot path, then applies an operator:
- Filter by event type —
typeequalscheckout.session.completed - Filter by JSON field —
data.object.statusequalspaid - Filter by product name —
line_items.0.namecontainsPro Plan - Filter by amount —
amountgreater than10000 - Filter by customer email —
customer.emailends with@acme.com - Filter by presence — a field
exists(or does not)
Operators include equals, contains, exists, greater/less than, in-list, and regex — plus their negations. Combine several conditions and match all (AND) or any (OR). The full operator reference is in the Filter Rules documentation.
Example: forward a webhook only if it is a completed high-value order
Say you only want to alert your sales team when a paid order is worth more than €100. Point the store's webhook at your NodeTrigger URL and add a filter:
Match ALL of:
status equals "paid"
total_price greater than 100
currency equals "EUR"
→ forward to Slack #big-orders
→ forward to HubSpot deal webhook
Everything else is received, logged, and dropped from forwarding — so your destinations only ever see the events you asked for. From here you can also fan the same matching event out to multiple destinations.
Filter, then reshape
Filtering decides whether an event is forwarded; transformation decides what shape it arrives in. After a webhook passes your filter, you can map fields, add static values, and redact sensitive keys so each destination receives exactly the payload it expects. See Payload Transformation for the mapping syntax.
Frequently asked questions
Can I filter a webhook by a nested JSON field?
Yes. Use a dot path such as data.object.customer.email to reach any nested value, then pick an operator.
Can I forward a webhook only if a condition is true?
That is exactly what a filter rule does. If the payload does not match, the event is logged but not forwarded.
Can I combine multiple conditions?
Yes — match ALL conditions (AND) or ANY condition (OR), with operators like equals, contains, greater than, in-list, and regex.
Is filtering available without code?
Yes. Filters are built on a visual canvas; no scripting required. See the docs.
Send only the webhooks that matter
Filter incoming payloads by any field and forward matching events to Slack, CRMs, or any URL.