Use webhooks to get real-time notifications when someone clicks a link on your custom domain.
Webhooks allow you to listen to real-time events and build custom integrations such as:
Get a Slack notification when someone clicks your pitch deck link
Send an email when someone clicks a product link
Push a lead to your CRM when a potential customer clicks a link in an email
and much more…
Webhooks are now per-domain
Webhooks in Smler are configured at the custom domain level. This means each domain you manage can have its own independent webhook endpoint — giving you granular control over which events are routed where.
For example, if you run links.acme.io for marketing campaigns and go.acme.io for internal tools, you can send click events from each domain to completely different endpoints.
Configuring a webhook
Navigate to Domains in the Smler app.
Click the domain you want to configure.
In the domain settings panel, enter your endpoint URL in the Webhook URL field.
Click Save.
Click Test Webhook to send a sample payload and confirm delivery.
From this point on, every click on a short link under that domain will POST a notification to your endpoint.
If you don't have an endpoint already set up, you can create a temporary one using webhook.site. We have a detailed guide on how to test with webhook.site.
Payload format
Each webhook request is a POST with a Content-Type: application/json body containing the click details and the short URL object:
{
"ip": "103.21.244.0",
"country": "India",
"city": "Mumbai",
"state": "Maharashtra",
"device": "mobile",
"browser": "Chrome",
"os": "Android",
"referrer": "google.com",
"shortUrl": {
"shortCode": "abc123",
"domain": "links.acme.io",
"originalUrl": "https://www.acme.io/pricing",
"dltHeader": "",
"createdBy": "..."
}
}Retry Behaviour
If your webhook endpoint does not respond with a success status code (2XX), we retry the request to ensure every message is delivered.
Retries use an exponential backoff to avoid overwhelming your endpoint (the thundering herd problem). The delay is capped at 24 hours from the 5th retry onwards.
Retry attempt | Delay |
|---|---|
1st | 12s |
2nd | 2m 28s |
3rd | 30m 8s |
4th | 6h 7m 6s |
5th | 24h |
6th+ | 24h |
Temporary Disablement
If a webhook endpoint consistently fails, it will be automatically disabled after a series of failed attempts. Notifications are sent to Workspace owners at the following intervals:
After 5, 10, and 15 consecutive failed attempts.
On the 20th consecutive failed attempt the webhook will be disabled.
You can re-enable a disabled webhook by returning to the domain settings and saving the endpoint URL again.
You can extend this integration to trigger custom flows in n8n and Zapier.
Published with LeafPad