Guides · Any JSON webhook
Turn any JSON webhook into a Mac notification and a count
Most services can POST JSON to a URL but can't add a header. A generic EventBar hook accepts anything: the URL is the credential, a field of your choosing names the event type, and templates reach into the payload with dotted paths.
Needs: the free EventBar app on your Mac, an EventBar account, and a Any JSON webhook account with permission to add webhooks. About five minutes. Generic JSON.
Steps
- Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Generic JSON, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
- Paste it into Any JSON webhook. Create the hook with provider Generic JSON. Set Type field to the dotted path of whatever names the event in the payload (for example
event,type,meta.event_name), or leave it empty and set a Default type so every delivery counts under one name. Paste the URL wherever the service asks for a webhook or callback URL. - Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
- Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.
What you'll see
| Type | Title | Body template |
|---|---|---|
(from the type field) | Whatever the payload says | {some.nested.field} with dotted paths |
(default type) | One name for everything | {message}, or the first six fields if there is none |
Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.
Worth knowing
- A
urlfield in the payload becomes the notification's link. Atimefield (ISO 8601 or epoch) becomes the displayed time; counts always use arrival time. - Send an
Idempotency-Keyheader or anidfield and a repeat within 24 hours is free. - Non-JSON bodies are accepted too: the text becomes the body of a single event under the default type. Handy for shell scripts:
curl -d "backup done" <hook url>. - Free includes one generic hook. Nothing on this page needs a paid plan.
The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about Any JSON webhook's payload changed? Tell us and we'll fix the guide.