Conversion tracking require a Business plan subscription or higher.
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 as lead events on CodeQR.

Prerequisites

Before you get started, make sure you follow the CodeQR Conversions quickstart guide to get CodeQR Conversions set up for your links:
  1. Enable conversion tracking for your links
  2. Install the @codeqr/analytics client-side SDK
  3. Install the CodeQR server-side SDK

Configure lead tracking

Depending on which authentication framework you’re using, we have a few pre-built guides to help you track lead events when a new user signs up for your SaaS application:
If you’re using the Remix framework, you might run into an issue where you get an empty/null value for the cq_id cookie. In that case, try using a library like cookie instead:
import cookie from "cookie";

const cookies = cookie.parse(request.headers.get("cookie") ?? "");
const codeqrId = cookies.cq_id;
If you’re not using any of the frameworks listed above, you can use the following steps to track lead events:
  1. Within the sign-up API request, retrieve the cq_id cookie that was created by the @codeqr/analytics client-SDK.
  2. Send an event to the CodeQR API with the cq_id value, as well as your customer’s ID and any other relevant information (email, name, avatar, etc.)
If you don’t have a customer ID, you can also use the customer’s email instead.

Code examples

Here are some examples of how you can track lead events using our native SDKs:
import { CodeQR } from "codeqr";

const codeqr = new CodeQR();

const codeqrId = req.cookies["cq_id"];
if (codeqrId) {
  await codeqr.track.lead({
    clickId: codeqrId,
    eventName: "Sign Up",
    externalId: customer.id,
    customerName: customer.name,
    customerEmail: customer.email,
    customerAvatar: customer.avatar,
  });
  // delete the cq_id cookie
  res.cookies.set("cq_id", "", {
    expires: new Date(0),
  });
}
Here’s the full list of attributes you can pass when sending a lead event:
PropertyRequiredDescription
clickIdYesThe unique cq_id parameter that the lead conversion event is attributed to.
eventNameYesThe name of the event. Example: “Sign up”.
externalIdYesThe unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer.
customerEmailNoThe email address of the customer. If not passed, a random email address will be generated.
customerNameNoThe name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”).
customerAvatarNoThe avatar URL of the customer. If not passed, a random avatar URL will be generated.

View your conversions

Once you’ve enabled conversion tracking for your links, all your tracked conversions will show up on your Analytics dashboard. 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 CodeQR