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.
Prerequisites
Section titled “Prerequisites”- Typeform Admin Access
- Active CustomerLabs Account
Typeform Configuration
Section titled “Typeform Configuration”Access the Target Form
Section titled “Access the Target Form”Log in to Typeform with an account that has admin access to publish forms. Open the live form that requires browser-side event tracking.
Access Logic Options
Section titled “Access Logic Options”In the form editor, navigate to the Logic option in the top navigation bar to enter the form logic configuration screen.
Open Personalize the Data
Section titled “Open Personalize the Data”To create a hidden field, click Personalize the Data within the logic screen.
Configure Hidden Fields
Section titled “Configure Hidden Fields”The hidden fields configuration screen is displayed. Click Hidden fields to open the field creation panel.
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.
Save and Publish the Form
Section titled “Save and Publish the Form”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.
CustomerLabs Custom Destination Configuration
Section titled “CustomerLabs Custom Destination Configuration”Create a Custom Destination
Section titled “Create a Custom Destination”In CustomerLabs, navigate to Destinations, search for Custom Integration, and click View Details.
Name the Integration and Add the Script
Section titled “Name the Integration and Add the Script”Provide a name for the integration and paste the following script into the code editor.
(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.
Verifying the CLUID Capture
Section titled “Verifying the CLUID Capture”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.
Create the Webhook Source
Section titled “Create the Webhook Source”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.
Configure the Webhook in Typeform
Section titled “Configure the Webhook in Typeform”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.
Verify Incoming Data
Section titled “Verify Incoming Data”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.
Configuring a Workflow
Section titled “Configuring a Workflow”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.
Workflow Setup
Section titled “Workflow Setup”Naming the Workflow
Section titled “Naming the Workflow”Assign a descriptive name that reflects the data being processed.
Example: A workflow receiving lead submissions from Typeform can be named
cl_leadsorlead_registration.
Workflow Delay
Section titled “Workflow Delay”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.
Selecting Sample Data
Section titled “Selecting Sample Data”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.
Event Configuration
Section titled “Event Configuration”Event Name
Section titled “Event Name”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.
User Identity Mapping
Section titled “User Identity Mapping”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.
User Traits
Section titled “User Traits”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.
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 Mapping
Section titled “User Traits Mapping”
Source Logs
Section titled “Source Logs”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.
Each inbound message is assigned a unique message ID for traceability across workflows and the event manager.
Data In Log
Section titled “Data In Log”Displays the raw payload received from the Typeform webhook in JSON format.
Data Out Log
Section titled “Data Out Log”Displays the processed payload forwarded to configured workflows, along with the generated message ID.
Workflow Logs
Section titled “Workflow Logs”Each workflow maintains its own log, showing how incoming events are transformed — including user traits, event attributes, group traits, external IDs, and group identities.
Workflow Status Messages
Section titled “Workflow Status Messages”The following status messages may appear in the Data Out log:
| Status | Description |
|---|---|
| Mapping not found | The workflow is in draft mode and has not been published. |
| Filter condition failed | The incoming event did not satisfy the configured filter criteria and was not processed. |
| User ID missing / Account ID missing | The payload does not contain a required user or account identity field. The event will not be processed further. |
| Data not found | The event is still being processed. Under high load, processing may take up to 10 minutes. |
Destinations
Section titled “Destinations”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.