Providers change their payloads. Usually they add fields, but sometimes a field becomes nullable, changes type or disappears. A handler that reads customer.phone as a string breaks the day it arrives as an object.
HookWatcher learns the structure of each event type from the payloads it receives. You don't write a schema. When a new payload doesn't match, it reports a schema change.
What is detected
- New fields
- Removed fields
- Type changes (string → object, integer → string)
- Fields that start arriving as null
- Changes in arrays of objects
Acting on a change
- Accept: the new structure becomes expected.
- Ignore field: stop reporting changes to that field, for example free-form metadata.
- Create alert: get an email when that field changes again.
- Compare payloads: open a diff between the event that changed and one from before.
Optional: your own JSON Schema
If you already have a JSON Schema for an event type, attach it to the endpoint on a paid plan with PUT /api/webhooks/<endpoint>/json-schemas/<event-type>. Every new event is then also validated against it, and violations are reported the same way.