Webhook Filter Troubleshooting
If a filtered webhook is not behaving the way you expect, work through the checks below in order. Most issues come from either an event type mismatch or filter IDs that do not match the event context.
Fast Checks
- Confirm the webhook is Active
- Confirm the endpoint URL is reachable over HTTPS
- Send a test event to confirm connectivity
- Review the selected event types
- Review the configured filter IDs against the source record in Infodeck
What the Test Event Proves
webhook.test is a delivery health check.
- It confirms that Infodeck can reach your endpoint
- It does not prove your real events match the configured filters
- It ignores event filters and is delivered even when the webhook has filtering configured
If test delivery works but a real event does not arrive, the next place to check is the webhook's event type and filter criteria.
Common Problems
| Problem | Likely cause | What to do |
|---|---|---|
| Test event arrives, but real events do not | Event type not subscribed or filter IDs do not match | Compare the webhook config against the actual record IDs in Infodeck |
| No filter fields appear | No event types selected yet | Choose the event types first |
Filter summary says All matching events | No filters are currently stored | Edit the webhook and add at least one filter value |
| Wildcard webhook misses events | Filters still apply to wildcard subscriptions | Remove or widen the filters |
| Save fails with validation error | Too many IDs or malformed values | Keep each filter field to 50 IDs or fewer and remove blanks |
Special Event Cases
Work order completion can produce two events
If the webhook subscribes to both:
workorder.status.changedworkorder.completed
then a transition into the Complete status can deliver both events. This is expected.
Use:
workorder.completedwhen you only care about completionworkorder.status.changedwhen you need every status transition
Auto-approved quotation submit can produce two events
If a quotation is submitted and approved as part of the same business action, the webhook can receive:
sor.quotation.submittedsor.quotation.approved
This is expected behavior. Your endpoint should handle the two event types independently.
How to Verify the Right IDs
Check the record in Infodeck and confirm that the IDs you entered are the real IDs used by the event family:
- assets:
assetId,locationId,assetTypeId - work orders:
workOrderId,locationId,assetId - bookings:
siteId,resourceId - visitors:
siteId - SOR:
sorScheduleId,quotationId,workOrderId
If you are unsure which IDs to use, start without filters, confirm deliveries arrive, then narrow the webhook gradually.
Delivery Log Reading Pattern
Use delivery logs to separate transport issues from matching issues:
- no delivery log entry at all: the event probably did not match the webhook subscription
- failed delivery entry: the webhook matched, but the endpoint rejected or timed out
- successful
webhook.testentry only: transport is working, but your real event selection or filters still need correction
When to Split a Webhook
Create separate webhooks when:
- one team needs asset or site-specific notifications
- one integration only cares about one work order or quotation stream
- you are approaching the 50-ID limit for one filter field
Splitting a broad webhook into smaller, focused subscriptions usually makes support and debugging easier.