How Webhook Event Filters Work
Event filters help you narrow a webhook subscription beyond event type alone. Instead of sending every asset.status.changed event or every visitor.checked_in event, you can limit deliveries to the exact assets, locations, sites, bookings, work orders, or quotations that matter to your integration.
Where Filters Appear
In both webhook management experiences, the filter UI appears after you select at least one event type.
- New workspace flow: filters appear inside the create or edit form under Event filters
- Classic workspace flow: create uses the same Event filters section, and detail view can also open Edit Filters
If no relevant fields are configured, the webhook summary shows All matching events.
Which Filter Fields Show Up
Infodeck only shows the filter fields that are meaningful for the selected event types.
| Event family | Available filter fields |
|---|---|
asset.* | assetId, locationId, assetTypeId |
workorder.* | workOrderId, locationId, assetId |
booking.* | siteId, resourceId |
visitor.* | siteId |
sor.schedule.published | sorScheduleId |
sor.quotation.* | quotationId, sorScheduleId, workOrderId |
Matching Rules
Webhook filtering uses:
- AND across fields
- OR within one field list
That means:
locationId = [loc_hq, loc_east]matches either locationlocationId = [...]plusassetId = [ast_01]requires both the location rule and the asset rule to match- if a configured field is missing from the event, that event does not match
Input Rules
- Enter IDs separated by commas or line breaks
- Repeated IDs are automatically normalized to a unique list
- Empty filter fields are ignored
- V1 allows up to 50 IDs per filter field
Practical Examples
Example 1: Monitor one AHU in two locations
Select:
asset.status.changedasset.telemetry.updated
Then add:
assetId:ast_ahu_01locationId:loc_hq_l1, loc_hq_l2
Result: the webhook fires only when ast_ahu_01 belongs to one of those locations.
Example 2: Receive all visitor activity for one site
Select:
visitor.registeredvisitor.checked_invisitor.checked_out
Then add:
siteId:site_main_lobby
Result: all three visitor events are delivered for that one site only.
Example 3: Receive only quotation approvals for one work order
Select:
sor.quotation.approved
Then add:
workOrderId:wo_12345
Result: only approvals related to that work order are delivered.
Wildcard Subscriptions
If you subscribe to *, the webhook can receive every supported event type. Filters still apply.
Example:
- events:
["*"] - filters:
siteId = ["site_hq"]
This webhook does not receive every event in the organization. It only receives the events whose internal filter context includes siteId = site_hq.
When to Leave Filters Blank
Leave filters blank when:
- your endpoint should receive every selected event type
- your downstream system decides which records to keep
- you are starting with a small integration and want to verify the flow first
Add filters when:
- one endpoint serves a narrow scope, such as one site or one contractor workflow
- you want to reduce downstream traffic and noise
- you need separate webhook endpoints for different business areas