How to Set Up SMLLR Webhooks: Step-by-Step Guide
A click-by-click walkthrough of setting up a webhook endpoint in SMLLR — from Settings → Webhooks & Slack to your first successful test delivery.
The Short Answer
Setting up a webhook takes five steps and about two minutes: open Settings → Webhooks & Slack, click Add Endpoint, paste the URL you want events sent to, choose which of the six event types that endpoint should receive, and save. SMLLR generates a per-endpoint signing secret automatically, and a Send Test Delivery button lets you confirm the endpoint is actually receiving payloads before you rely on it. This guide covers the mechanics of adding an endpoint — for what each of the six event types actually means, see our webhooks overview.
Before You Start
You'll need three things: a Pro plan or above (₹4,999/month) account, since webhooks are gated behind that tier; a URL that can receive an HTTPS POST request and return a 2xx response — your own backend, a request-inspection tool for testing, or a Zapier 'Catch Hook' URL if you're wiring this into Zapier rather than your own server; and, if you're building your own receiving endpoint, a plan for verifying the X-Smllr-Signature header so you're not accepting unsigned requests as if they came from SMLLR — see the signature verification guide for the exact HMAC formula and a working code sample.
Step-by-Step Setup
The full walkthrough, in order:
- **Open Settings → Webhooks & Slack.** This is the single screen for both generic webhook endpoints and Slack endpoints.
- **Click Add Endpoint.** Choose 'Generic' as the endpoint type (Slack has its own separate flow — see [the Slack setup guide](/support/webhooks/slack-integration) if that's what you're after instead).
- **Paste the destination URL.** This is the HTTPS endpoint on your own server, or the URL of a tool like Zapier's Catch Hook that will receive the raw JSON payload.
- **Choose event types.** New endpoints default to every event except `qr.scheduled_redirect_fired` and `qr.device_redirect_matched`, which are opt-in since they fire on every matching scan rather than once. Check or uncheck to match what you actually need.
- **Save and copy the endpoint secret.** SMLLR generates a unique secret for this endpoint, shown once at creation — store it wherever your receiving server reads secrets from, since it's the key used to compute the `X-Smllr-Signature` header on every delivery.
- **Send a test delivery.** Click Send Test Delivery on the new endpoint. This fires synchronously — not queued — so you get an immediate pass/fail result and can see the exact payload and headers SMLLR sent, useful for confirming your signature verification logic actually accepts a real SMLLR request before you rely on it in production.
Reading the Delivery History
Every endpoint keeps a 90-day delivery history — every attempt, successful or failed, with the HTTP status your server returned. If an endpoint is unreachable or returns a non-2xx status, SMLLR retries automatically; after 5 failed attempts for a given event, that specific delivery is marked permanently failed and stops retrying, but the endpoint itself stays active for future events. This is the first place to look if events seem to be missing on your end — a string of failed deliveries usually means the receiving server rejected the request, timed out, or the signature check is failing on a payload that's actually legitimate.
Common Setup Mistakes
A few things worth checking before assuming a webhook is broken:
- **Endpoint returns a redirect instead of a 2xx.** SMLLR doesn't follow redirects on delivery — make sure the URL you pasted is the final destination, not one that 301s elsewhere.
- **Signature verification uses the wrong secret.** Each endpoint has its own secret, generated at creation — if you've recreated the endpoint since first copying it, the old secret in your code won't match anymore.
- **Testing against localhost.** A webhook needs a publicly reachable HTTPS URL; use a tunneling tool (like ngrok) if you're testing against a local dev server, and swap in the real production URL before going live.
- **Hitting the 10-endpoint limit.** Generic and Slack endpoints share one pool of 10 per account — delete unused test endpoints before adding a new production one if you're near the limit.
What It Costs
Webhook setup itself is free once you're on the Pro plan (₹4,999/month) or above — no per-endpoint charge, up to 10 endpoints per account, generic and Slack combined. See Webhooks & Slack Pricing for how Pro and Premium actually differ, since it isn't on webhooks themselves.
Related Reading
How to Set Up an SMLLR Webhook Endpoint
- 1
Open Settings → Webhooks & Slack
Log into your SMLLR dashboard and navigate to Settings → Webhooks & Slack, the single screen for both generic and Slack endpoints.
- 2
Click Add Endpoint and choose Generic
Select the generic endpoint type if you're sending events to your own server or a tool like Zapier — Slack endpoints use a separate flow.
- 3
Paste your destination URL
Enter the HTTPS URL that should receive the JSON payload — your own backend route, or a Catch Hook URL from an automation tool.
- 4
Choose which event types to receive
Check the boxes for the events this endpoint should get. Defaults cover four of six events; scheduled and device redirect events are opt-in.
- 5
Save and copy the endpoint secret
SMLLR generates a per-endpoint signing secret shown once — store it securely, since your server needs it to verify the X-Smllr-Signature header on incoming requests.
- 6
Send a test delivery
Click Send Test Delivery to fire a synchronous test payload immediately, confirming your endpoint accepts the request and your signature check passes before relying on it live.
Frequently Asked Questions
What plan do I need to set up a webhook?
Pro plan and above (₹4,999/month) — the same requirement covers webhooks, Slack, and Zapier.
Where in the dashboard do I add a webhook?
Settings → Webhooks & Slack → Add Endpoint.
How do I know my webhook is actually working?
Use the Send Test Delivery button on the endpoint, which fires synchronously and shows an immediate pass/fail result, then check the endpoint's 90-day delivery history for real events as they come in.
What happens if I don't choose any event types?
New endpoints default to four of the six event types (everything except the two highest-volume, opt-in ones) — you're not required to manually select anything unless you want a different subset.
Can I edit an endpoint's event types after creating it?
Yes — open the endpoint from Settings → Webhooks & Slack and adjust the selected event types at any time; existing deliveries already sent aren't affected.
Is there a limit on how many webhook endpoints I can add?
Up to 10 per account, shared between generic webhook endpoints and Slack endpoints.
Where do I learn what each event type actually means?
See QR Code Webhooks in Action: 6 Real-Time Automation Use Cases for a full explanation of all six events with real examples.