Start free

Event webhooks

Send a signed JSON POST to your own HTTPS URL when a goal is reached, a traffic spike is recorded, or a custom event is counted.

Integrations, API & AIFeature page: Event webhooks: signed POSTs for goals, spikes and events
Event webhooks: example screenshotEvent webhooks: example screenshot
Example screenshot with made-up data, not a real customer’s numbers.

What it does

One webhook URL per site, on the Alerts page. quietstats POSTs a small JSON body and signs it with HMAC-SHA256, so you can verify it came from us. You choose which of goals, spikes and drops, and custom events to send. Custom events are off until you switch them on. A Send test button posts a sample body with no visitor data.

Why it matters

If you already have a script, a Zapier catch-hook or your own inbox, you can react the moment something that matters happens, without polling the Stats API.

How to use it

  1. Open Alerts and scroll to Event webhooks. Pick the site, paste your HTTPS URL and choose goals, spikes and (optionally) custom events, then add the webhook.
  2. Copy the signing secret that is shown once and store it with your receiver, so you can check X-Quietstats-Signature.
  3. Tap Send test. You should see a JSON body with type “test” and no visitor data. Then complete a goal on your site, or wait for a spike, and check the POST arrives.

How it works

What happens when a webhook fires1. You save an HTTPS URL on Alerts → Event webhooks. The URL and signing secret are stored encrypted. 2. A goal is reached, a spike or drop is recorded, or (if you switched it on) a custom event is counted. 3. No URL saved? (otherwise: Yes: nothing is sent) 4. quietstats POSTs a small JSON body (type, site, timestamp, goal or event name or spike title) and signs it with HMAC-SHA256. 5. Your URL answers 2xx? Done. If not, the payload is queued and retried up to five times, then dropped.1You save an HTTPS URL onAlerts → Event webhooks. TheURL and signing secret arestored encrypted.2A goal is reached, a spike ordrop is recorded, or (if youswitched it on) a custom eventis counted.3No URL saved?Yes: nothing issent4quietstats POSTs a small JSONbody (type, site, timestamp,goal or event name or spiketitle) and signs it withHMAC-SHA256.5Your URL answers 2xx? Done. Ifnot, the payload is queued andretried up to five times, thendropped.
From the eventhooks.js code. Payloads never include a visitor, an IP address or anything typed.

Privacy

Limits

Plans

Every plan, including Free. quietstats is free during launch: the Free plan covers 1 site and 5,000 pageviews a month, and no card is needed. See pricing.

Questions

Is this the same as Slack, Discord and Teams?

No. Those are incoming webhooks for a weekly summary and alerts in a chat channel. Event webhooks POST a signed JSON body to any HTTPS URL you control.

How do I verify the signature?

HMAC-SHA256 of “timestamp + . + the raw body”, using the signing secret you were shown once. The hex digest is in the X-Quietstats-Signature header as sha256=…

Will it send if I have not set a URL?

No. Nothing is posted anywhere until you save a URL.

Related