Skip to main content
This feature is only available on Business plans and above.
Dub’s Segment integration provides a bi-directional sync between your Segment workspace and Dub. There are 2 parts to the integration: In this guide, we will be focusing on using the Dub (Actions) Destination to track conversion events directly from Segment.

Prerequisites

First, you’ll need to enable conversion tracking for your Dub links to be able to start tracking conversions:
If you’re using Dub Partners, you can skip this step since partner links will have conversion tracking enabled by default.
To enable conversion tracking for all future links in a workspace, you can do the following: To enable conversion tracking for all future links in a workspace, you can do the following:
  1. Navigate to your workspace’s Analytics settings page.
  2. Toggle the Workspace-level Conversion Tracking switch to enable conversion tracking for the workspace.
Enabling conversion tracking for a workspace
This option will enable conversion tracking in the Dub Link Builder for all future links.
Alternatively, you can also enable conversion tracking programmatically via the Dub API. All you need to do is pass trackConversion: true when creating or updating a link:
const link = await dub.links.create({
  url: "https://dub.co",
  trackConversion: true,
});
Then, you’d want to install the Dub Analytics script to your website to track conversion events. You can install the Dub Analytics script in several different ways:
You can verify the installation with the following tests:
  1. Open the browser console and type in _dubAnalytics – if the script is installed correctly, you should see the _dubAnalytics object in the console.
  2. Add the ?dub_id=test query parameter to your website URL and make sure that the dub_id cookie is being set in your browser.
If both of these checks pass, the script is installed correctly. Otherwise, please make sure:
  • The analytics script was added to the <head> section of the page
  • If you’re using a content delivery network (CDN), make sure to purge any cached content

Configure Segment Action

Next, configure Segment Dub (Actions) to track sales conversion events.
1

Add Dub (Actions) destination

Head to Segment Dub (Actions) and add the destination to your Segment workspace.
Segment Dub (Actions) destination
2

Configure Dub API Key

In the Dub (Actions) destination settings, fill out the following fields:
  • Name: Enter a name to help you identify this destination in Segment.
  • API Key: Enter your Dub API key. You can find this in the Dub Dashboard.
  • Enable Destination: Toggle this on to allow Segment to send data to Dub.
Once completed, click Save Changes.
Segment Dub (Actions) Basic Settings
3

Add Mapping

Next, depending on the event you want to track, choose the corresponding action from the list of available actions:
Event to trackDefault event nameExample
LeadSign UpA user signs up for an account
SaleOrder CompletedA user purchases a product
Segment Dub (Actions) Mapping
Below the selected action, you’ll see the mapping for that action.
Segment Dub (Actions) Mapping
You can customize the trigger and mapping to fit the specific needs of your application.Finally, click Next and then Save and enable to add the mapping to the destination.
4

Send conversion events to Dub

On the server side, you’ll use the @segment/analytics-node SDK to send conversion events to Segment.Make sure to include relevant properties in the payload:
import { Analytics } from "@segment/analytics-node";

const segment = new Analytics({
  writeKey: "<YOUR_SEGMENT_WRITE_KEY>",
});

const cookieStore = await cookies();
const clickId = cookieStore.get("dub_id")?.value;

segment.track({
  userId: id,
  event: "Sign Up",
  context: {
    traits: {
      name,
      email,
      avatar,
      clickId,
    },
  },
  integrations: {
    All: true,
  },
});
Once the event is tracked, Segment will forward the conversion data to Dub based on the mappings you’ve configured.

Supported attributes

Here are the properties you can include when sending a lead event:
PropertyRequiredDescription
clickIdYesThe unique ID of the click that the lead conversion event is attributed to. You can read this value from dub_id cookie. If an empty string is provided (i.e. if you’re using tracking a deferred lead event), Dub will try to find an existing customer with the provided customerExternalId and use the clickId from the customer if found.
eventNameYesThe name of the lead event to track. Can also be used as a unique identifier to associate a given lead event for a customer for a subsequent sale event (via the leadEventName prop in /track/sale).
customerExternalIdYesThe unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer.
customerNameNoThe name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”).
customerEmailNoThe email address of the customer.
customerAvatarNoThe avatar URL of the customer.
modeNoThe mode to use for tracking the lead event. async will not block the request; wait will block the request until the lead event is fully recorded in Dub; deferred will defer the lead event creation to a subsequent request.
metadataNoAdditional metadata to be stored with the lead event. Max 10,000 characters.

View conversion results

And that’s it – you’re all set! You can now sit back, relax, and watch your conversion revenue grow. We provide 3 different views to help you understand your conversions:
Time-series line chart
  • Funnel chart: A funnel chart view visualizing the conversion & dropoff rates across the different steps in the conversion funnel (clicks → leads → sales).
Funnel chart view showing the conversion & dropoff rates from clicks → leads → sales
  • Real-time events stream: A real-time events stream of every single conversion event that occurs across all your links in your workspace.
The Events Stream dashboard on Dub

Example apps

Segment + Next.js App Router Example

Next.js app using Segment to track sales.