Skip to main content
Dub

Introduction

Use webhooks to get real-time notifications on events happening across your Dub workspace.
4 min read

Webhooks allows you to listen to real-time events happening across your Dub workspace. With webhooks, you can build custom integrations with Dub, such as:

  • Triggering a Zap on Zapier when a new link is created in Dub
  • Sending click events in real-time to Segment for further processing
  • Get a Slack notification when someone clicks on your pitch deck link
  • Building gamified referral programs – e.g. increment usage credits for the referrer when a new signup happens
Warning

The following endpoints do not trigger webhook events: Bulk create links, Bulk update links, Bulk delete links.

In this guide, we'll show you how to configure webhooks for your Dub workspace and a list of available events you can listen to.

Creating a webhook#

To create a webhook for your Dub workspace, you'll need to follow these steps:

Navigate to the Webhooks settings page in your Dub workspace.

Create Webhook

Click on Create Webhook to create a new webhook.

Create Webhook Form

Fill in the required fields in the webhook creation form:

  1. Name: Give your webhook a name that helps you identify it.
  2. URL: Enter the URL of the endpoint where you want to send the webhook. We recommend using webhook.site to test your webhook.
  3. Signing secret: This is an auto-generated secret key that you can use to verify the authenticity of the webhook in your application. Learn more about verifying webhook requests.
  4. Events: Select the events you want to listen to. You can select multiple events. Refer to the Event Types section to see the list of available events.

Finally, click on Create webhook to create the webhook.

Viewing webhook event logs#

We also provide you with a webhook event logs page where you can view all the webhook events that have been sent to your webhook endpoint in real-time.

To view the webhook event logs, select the webhook from the Webhooks settings page and click on the Webhook Logs tab.

Here, you'll see a list of all the webhook events that have been sent to your webhook endpoint:

Webhook Event Logs

You can also select on a specific event, which will open up a sheet with more details about the event:

Webhook Event Logs Details

Sending test events#

You can send test events to your webhook URL to ensure that it's working correctly. To do this:

Go to the webhook details page

Navigate to the Webhooks settings page and select the webhook you want to test.

Click on the Update Details tab to open the webhook details page.

Open the test event modal

Select the icon on the top right of the page, and click on Send test event.

Send Test Event

This will open up a modal where you can select the event you want to send.

Send Test Event Modal

Send the test event

Select the event you want to send, and click on Send test webhook.

Send Test Webhook

You'll see a success message and receive the webhook event in the webhook endpoint you specified.

Retry Behaviour#

If your webhook endpoint does not respond with a success status code (2XX), we retry the request to ensure every message will be delivered. You can see all the retry attempts in your webhook event logs.

Webhooks are retried until they are successfully delivered – with an exponential backoff to avoid overwhelming your webhook endpoint (also known as the "thundering herd problem"). The delay is capped at 24 hours from the 5th retry attempt onwards.

Retry attemptDelay
1st12s
2nd2m 28s
3rd30m 8s
4th6h 7m 6s
5th24h
6th24h
......

Temporary Disablement#

If a webhook endpoint consistently fails, it will be automatically disabled after a series of failed attempts.

Notifications will be sent to the 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.

This mechanism ensures that non-responsive endpoints do not continue to receive retry attempts indefinitely, maintaining system efficiency and preventing unnecessary load on both the sender and receiver.

You can re-enable a disabled webhook by clicking on the Enable webhook button in the webhook details page.

IP allowlist#

If your endpoint sits behind a firewall or IP allowlist, you'll need to allow traffic from the following IP addresses – these are the IPs that Dub uses to deliver events (and retries):

Note

This list can potentially change over time. For the most up-to-date list, fetch it directly from api.upstash.com/v2/qstash/ipv4.