When it comes to conversion tracking, a lead event happens when a user performs an action that indicates interest in your product or service. This could be anything from:

  • Signing up for an account
  • Adding a product to cart
  • Joining a mailing list
A diagram showing how lead events are tracked in the conversion funnel

In this guide, we will be focusing on tracking new user sign-ups for a SaaS application that uses Auth0 for user authentication.

Prerequisites

Before you get started, make sure you follow the Dub Conversions quickstart guide to get Dub Conversions set up for your links:

  1. Install the @dub/analytics client-side SDK
  2. Install the Dub server-side SDK
  3. Enable conversion tracking for your links

Configure Auth0

Next, configure Auth0 to track a lead conversion event.

Here’s how it works in a nutshell:

  1. In the sign in afterCallback function, check if the user is a new sign up.
  2. If the user is a new sign up, check if the dub_id cookie is present.
  3. If the dub_id cookie is present, send a lead event to Dub using dub.track.lead
  4. Delete the dub_id cookie.
app/api/auth/[auth0]/route.js
import { handleAuth, handleCallback, type Session } from "@auth0/nextjs-auth0";
import { cookies } from "next/headers";
import { dub } from "@/lib/dub";

const afterCallback = async (req: Request, session: Session) => {
  const userExists = await getUser(session.user.email);

  if (!userExists) {
    createUser(session.user);
    // check if dub_id cookie is present
    const clickId = cookies().get("dub_id")?.value;
    if (clickId) {
      // send lead event to Dub
      await dub.track.lead({
        clickId,
        eventName: "Sign Up",
        customerId: session.user.id,
        customerName: session.user.name,
        customerEmail: session.user.email,
        customerAvatar: session.user.image,
      });
      // delete the dub_id cookie
      cookies().set("dub_id", "", {
        expires: new Date(0),
      });
    }
    return session;
  }
};

export default handleAuth({
  callback: handleCallback({ afterCallback }),
});

Here’s the full list of attributes you can pass when sending a lead event:

PropertyDescriptionRequired
clickIdThe unique dub_id parameter that the lead conversion event is attributed to.Yes
eventNameThe name of the event. Example: “Sign up”.Yes
customerIdThe unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer.Yes
customerEmailThe email address of the customer. If not passed, a random email address will be generated.No
customerNameThe name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”).No
customerAvatarThe avatar URL of the customer. If not passed, a random avatar URL will be generated.No

View your conversions

Once you’ve set this up, all your tracked lead events will show up on your Analytics dashboard. We provide 3 different views to help you understand your conversions:

  • Time-series: A time-series view of the number of leads over time.
  • Funnel chart: A funnel chart view visualizing the conversion & dropoff rates across the different steps in the conversion funnel (clicks → leads → sales).
  • Real-time events stream: A real-time events stream of every single lead event that occurs across all your links in your workspace.
The Events Stream dashboard on Dub showing a real-time stream of lead events

Example Apps