Conversion tracking require a Business plan
subscription or higher.
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

Prerequisites
Before you get started, make sure you follow the CodeQR Conversions quickstart guide to get CodeQR Conversions set up for your links:- Enable conversion tracking for your links
- Install the @codeqr/analytics client-side SDK
- Install the CodeQR server-side SDK
Configure Appwrite
Next, configure Appwrite to track lead conversion events during the sign up process.1
Create an Appwrite Cloud project
Head to Appwrite Cloud and create a new project.
Create a new API key with the 
Then, in your Next.js app, install the Appwrite Node.js SDK.

sessions.write
scope enabled and save the API key for later use. You can also copy your project ID and endpoint from the project’s Settings page.
2
Add environment variables
Add the following environment variables to your app.
3
Integrate CodeQR Analytics
Add the
CodeQRAnalytics
component from the @codeqr/analytics
package to your app’s root layout.src/app/layout.tsx
4
Prepare the Appwrite client and auth library
Create the Appwrite Session and Admin client (necessary for SSR apps, as explained in the Appwrite docs). Additionally, create a function to verify user login.
src/lib/server/appwrite.ts
5
Set up CodeQR SDK
Create the CodeQR client and send leads to CodeQR using the
codeqr.track.lead()
function.src/lib/server/codeqr.ts
6
Send leads to CodeQR on user signup
In the
/auth
page, use the Appwrite Admin client to allow users to sign up. Post sign up, check if the cq_id
cookie is present, send a lead event to CodeQR if found, and delete the cq_id
cookie.src/app/auth/page.tsx
Property | Required | Description |
---|---|---|
clickId | Yes | The unique cq_id parameter that the lead conversion event is attributed to. |
eventName | Yes | The name of the event. Example: “Sign up”. |
externalId | Yes | The unique ID of the customer in your system. Will be used to identify and attribute all future events to this customer. |
customerEmail | No | The email address of the customer. If not passed, a random email address will be generated. |
customerName | No | The name of the customer. If not passed, a random name will be generated (e.g. “Big Red Caribou”). |
customerAvatar | No | The avatar URL of the customer. If not passed, a random avatar URL will be generated. |
Example App
To learn more about how to track leads with Appwrite, check out the following example app:Appwrite + CodeQR Next.js Example
See how to track new user sign-ups with Appwrite and the CodeQR SDK.
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: A time-series view of the number clicks, leads and sales.

- 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 conversion event that occurs across all your links in your workspace.
