Skip to content

Typeform + Customerlabs 1PD Ops Integration

Typeform is a form builder commonly used for lead capture. When Typeform submissions are forwarded to ad platforms such as Meta, insufficient user identity data in the server-side payload results in low event match quality — typically below a score of 4 or 5 — which degrades campaign attribution accuracy.

This integration resolves that by injecting the CustomerLabs UID (cluid) into the Typeform iframe URL as a hidden field value at the time of form load. The cluid is then captured in the submission payload and forwarded to Customerlabs 1PD Ops via a webhook, linking the server-side event to the originating browser session and enabling accurate event unification.

  1. Typeform Admin Access
  2. Active CustomerLabs Account

Log in to Typeform with an account that has admin access to publish forms. Open the live form that requires browser-side event tracking.

typeform dashboard with list of forms

In the form editor, navigate to the Logic option in the top navigation bar to enter the form logic configuration screen.

logic options on typeform form screen

To create a hidden field, click Personalize the Data within the logic screen.

personalize the data option in typeform

The hidden fields configuration screen is displayed. Click Hidden fields to open the field creation panel.

hidden fields screen in typeform

Click the Add new field icon and enter cluid as the field name. This field will receive the CustomerLabs UID value at form load time.

adding new hidden field named cluid

Confirm the field name — the recommended value is cluid — and save the hidden field configuration. Publish the form to apply the changes to the live version.

saving hidden field and publishing form

CustomerLabs Custom Destination Configuration

Section titled “CustomerLabs Custom Destination Configuration”

In CustomerLabs, navigate to Destinations, search for Custom Integration, and click View Details.

customerlabs destination tab with custom integration

Provide a name for the integration and paste the following script into the code editor.

naming integration and adding script in customerlabs
(function() {
if (["/path1/", "/path2/", "/path3/"].includes(window.location.pathname) && window.location.host == "[xyz.com]") {
var _cltypeform = document.querySelector("iframe#typeform-full");
if (_cltypeform) {
var new_url = document.querySelector("iframe#typeform-full").src + "#cluid=" + CLabsgbVar.generalProps.uid;
_cltypeform.src = new_url
}
}
})()

The script targets the Typeform iframe embedded on the page and appends the cluid value as a URL fragment. This causes Typeform to capture the cluid as the value for the hidden field configured in the previous section.

Submit a test entry through the live form. In Typeform, navigate to the form responses or webhook test panel and confirm that the cluid field is populated in the submission payload.

Once the cluid is confirmed in the form submission, proceed to configure the webhook destination in Customerlabs 1PD Ops.

Configuring a Custom Source in Customerlabs 1PD Ops

Section titled “Configuring a Custom Source in Customerlabs 1PD Ops”

In CustomerLabs, navigate to the Sources tab and select Custom Source to create a new webhook-based source.

customerlabs source tab with custom source option

Provide a name for the source. Customerlabs 1PD Ops generates a unique webhook URL based on the source name. Copy this URL — it will be used to configure the webhook in Typeform.

custom source webhook url generation

In the Typeform form editor, navigate to the Connect tab and open the Webhooks section. Paste the CustomerLabs webhook URL, save the webhook, and enable the webhook toggle to begin forwarding submission data to Customerlabs 1PD Ops.

webhook url configured and toggle enabled in typeform

After completing the Typeform and CustomerLabs configuration, submit a test form entry. In CustomerLabs, navigate to the source and open the incoming data log to verify that the cluid is present in the received payload. Once confirmed, the form submission data will be unified with the corresponding browser session in Customerlabs 1PD Ops.

incoming data in customerlabs source with cluid verified

A Workflow processes the raw data received from a source and transforms it into structured event data. Workflows apply field mappings, filters, and event configurations. Multiple workflows can be created per source, and each workflow runs continuously, updating user profiles in real time.

Assign a descriptive name that reflects the data being processed.

Example: A workflow receiving lead submissions from Typeform can be named cl_leads or lead_registration.

naming the workflow in customerlabs

Configure a workflow delay when multiple workflows are attached to the same source. Without a delay, all workflows receive the incoming payload simultaneously. Under concurrent execution, Customerlabs 1PD Ops may create separate user records across workflows before the first workflow has committed the new user identity to the database. Setting a delay ensures that user identity is resolved before subsequent workflows process the same event.

To configure event mappings, a sample payload must be available. Trigger a test form submission to populate the sample data panel. Up to five samples can be fetched at a time.

selecting sample data in workflow
sample payload with cluid field verified

Select the event name from the dropdown or define a custom event name. For Typeform lead submissions, use a custom event name such as cl_leads or cl_registration.

event configuration screen
selecting custom event name from dropdown
custom event name configured

Map the cluid hidden field as the primary user identifier. The cluid links the server-side form submission to the originating browser session, enabling unification of browser and server-side events in Customerlabs 1PD Ops.

Up to three user identifiers can be configured per workflow, including external IDs. Customerlabs 1PD Ops stores these identifiers to build an enriched, unified user profile.

Map all user-level attributes from the Typeform submission under User Traits. These traits are forwarded to connected destinations and are required for accurate audience targeting and personalization.

user traits mapping configuration

Common traits to map include first_name, last_name, email, phone, and company. For destination-specific requirements — such as forwarding an email address to an email platform like Klaviyo — the relevant trait must be explicitly mapped in this section.

user traits field mapping
completed user traits mapping

Source Logs record all payloads received by the source webhook prior to workflow processing. Logs may have a display latency of up to 10 minutes. Access logs by navigating to the source and clicking Logs.

source logs panel

Each inbound message is assigned a unique message ID for traceability across workflows and the event manager.

Displays the raw payload received from the Typeform webhook in JSON format.

source data in log with raw JSON payload

Displays the processed payload forwarded to configured workflows, along with the generated message ID.

source data out log with workflow output

Each workflow maintains its own log, showing how incoming events are transformed — including user traits, event attributes, group traits, external IDs, and group identities.

The following status messages may appear in the Data Out log:

StatusDescription
Mapping not foundThe workflow is in draft mode and has not been published.
Filter condition failedThe incoming event did not satisfy the configured filter criteria and was not processed.
User ID missing / Account ID missingThe payload does not contain a required user or account identity field. The event will not be processed further.
Data not foundThe event is still being processed. Under high load, processing may take up to 10 minutes.

Once events are processed through workflows, the resulting data can be forwarded to connected third-party destinations to support advertising, analytics, and marketing automation use cases.