Integrations
Connect Typeform
Connect your Typeform account in minutes. Authorize once, LeadJourney registers a webhook on every form, then give each form an lj_click_id URL parameter so submissions are attributed to the ad that drove them.
Connecting Typeform turns form submissions into LeadJourney conversions, attributed to
the campaign, ad set and ad that brought the respondent in. You authorize Typeform once;
LeadJourney then registers a webhook on every form in your account, so submissions start
flowing straight away and keep flowing as you add new forms. For attribution, each form needs
one extra thing: an lj_click_id URL parameter that carries the click ID into the
submission. Mapped submissions flow through the same postback pipeline as your offline
conversions, so they pick up every ad postback you've already configured.
Before you start
Have these ready so the connection works end to end:
- An active LeadJourney workspace and a Typeform account you can sign in to.
- Tracking is live: clicks have to be recorded first so submissions can be matched back to a campaign. See Install the tracking script.
- Visitors reach your forms through LeadJourney-tracked links, so the
lj_click_idparameter is present. See How attribution works. - At least one conversion type to map onto (e.g.
Lead). Set these up first in the Events Manager.
Where to find it
Open Settings → Apps, or go to app.leadjourney.io/settings?slug=apps. Click the Typeform card (under Forms) to open the integration. While you're not connected you'll see a “Connect your Typeform account” card; once connected, the same screen shows your account, a Forms panel and your Triggers.
Step by step
Authorize LeadJourney from Typeform
On the Connect your Typeform account card, click Connect Typeform. You'll be redirected to Typeform to sign in and authorize LeadJourney. There are no keys to copy and no webhook URLs to paste. After you approve, Typeform sends you back and you'll see a “Typeform connected” confirmation.
Check the connection and your forms
The header shows a Live pill (or Needs reconnect), your Account, Forms tracked (forms with a working webhook, out of all forms, plus when they were last synced) and Active triggers.
Below it, the Forms panel lists every form with two status pills:
- Webhook on / Not registered: whether submissions from this form reach LeadJourney.
- Attributable / No click id: whether the form carries an
lj_click_idparameter.
New forms are picked up automatically each hour. To pick them up now, click Re-sync forms.
Make each form attributable
Typeform ignores any URL parameter a form hasn't declared, so a form without
lj_click_id can never carry a click ID. You have two ways to add it:
- Let LeadJourney add it: on a form showing No click id, tick Auto-add click id.
LeadJourney adds the
lj_click_idhidden field for you, no builder edits needed. When it works, a confirmation says the form now carries the click id and the pill flips to Attributable. Forms still waiting are listed under Setting up attribution on … forms; click Re-sync forms to process them now. - Add it yourself: in the Typeform builder, add
lj_click_idunder the form's URL parameters (hidden fields), then click Re-sync forms.
Once a form carries the parameter, its row shows click id via lj_click_id.
Add a trigger
In the Triggers panel, where each trigger maps Typeform submissions to one of your conversions (for every form, or just one), click Add trigger. In the New Typeform trigger dialog:
- App: Typeform (already selected).
- LeadJourney Event: pick the conversion type submissions should record, e.g.
Lead. (No options? Create one under Settings → Events first.) - Form: leave on All forms to fire for every submission on the account, or scope the trigger to one form.
- Trigger: select the submission trigger.
Click Continue.
Receive data and confirm the mapping
The dialog opens a three-tab flow:
- Receive Data: click Find latest data to load submissions. If nothing appears, submit
the form yourself and check again, then click Continue with selected record. If the
selected form (or some of your forms) has no
lj_click_id, a warning names them. You can still save; those submissions just won't tie back to a click. - Configure Mapping: map the submission onto Email, Name, Phone, click_id,
Revenue and Currency, using Add custom field for anything extra. Answers are
addressed by field ref (e.g.
fields.work_email) rather than by position, andhidden.lj_click_idis the place to map click_id from. Click Save & Continue. - Filtering (optional): add conditions; each one is tested against the record you selected and shows PASS or FAIL, with a summary like “Your trigger would have fired”. Use Add Another Filter for more.
Click Activate to finish.
How submissions link to the right campaign
A Typeform submission only knows the click if the click ID reaches the form in its URL,
e.g. ?lj_click_id=…. Typeform stores it in the lj_click_id URL parameter, and your
trigger maps hidden.lj_click_id to click_id. Every submission then arrives tied to the
click, and therefore the campaign, ad set and ad, that earned it. If your typeform is
embedded on a landing page, make sure the embed passes the page's lj_click_id on to
the form (Typeform's embed code can forward the host page's URL parameters, e.g.
data-tf-transitive-search-params="lj_click_id"). To check, expand a record on Receive
Data and confirm hidden.lj_click_id has a value.
Managing your triggers
Each trigger appears as a row (Typeform event → conversion type) with an Active / Paused pill, the form it's scoped to (or All forms) and how many fields and filters it uses.
- Pause / Resume: use the toggle to stop a trigger temporarily without deleting it.
- Edit: change the form, mapping, filters or target conversion.
- Delete: remove a single trigger (type
deleteto confirm); your forms keep their webhooks. - Add another: e.g. one trigger per form, each mapped to a different conversion.
Reconnecting
If Typeform revokes LeadJourney, the webhook isn't registered on any form, or Typeform is unreachable, the header flips to Needs reconnect and a banner explains why:
- “Typeform disconnected your app”: the access was revoked or expired. Click Reconnect.
- “No form is wired up”: your tokens still work but no form has the webhook. Click Re-sync forms.
- “Typeform is unreachable”: usually a temporary outage. Try again in a minute.
Re-authorize in the header re-runs the authorization at any time. Your triggers and settings are kept.
Disconnecting
To remove Typeform, click Disconnect in the header, type disconnect and confirm with
Disconnect Typeform. This is deliberate because it's destructive:
Disconnect deletes your triggers
Disconnecting permanently removes the Typeform account from this workspace, removes the LeadJourney webhook from your forms and deletes every trigger. Submissions stop flowing into your conversions immediately. You can reconnect later, but your trigger configuration won't be restored.
Troubleshooting
A form stays on “No click id” after a sync?
LeadJourney couldn't edit that form. Click Reconnect (or Re-authorize) to grant
form-edit access, then Re-sync forms. Alternatively add lj_click_id under the form's
URL parameters in the Typeform builder yourself.
Forms “failed to register”?
LeadJourney couldn't attach its webhook to the listed forms, so their submissions won't arrive. The reason is shown next to each form. Click Re-sync forms to retry.
No submissions when you click “Find latest data”?
The form hasn't received a submission yet. Submit it yourself, then click Find latest data again.
Submissions come in but aren't attributed to a campaign?
Check that (1) the tracking script is installed and recording clicks, (2) the form shows
Attributable, (3) the form is opened with lj_click_id in its URL (for embeds, the
parameter is passed through), and (4) the trigger maps click_id from
hidden.lj_click_id and is Active. As a fallback, map Email or Phone so the
submission can still be matched.
Common questions
Related articles
Apps overview
How the Apps page works and what else you can connect.
Events & the Events Manager
Define the conversion types your Typeform triggers map onto.
How attribution works
Where the lj_click_id parameter comes from.
Install the tracking script
Record the clicks that submissions get matched back to.
Connect Shopify
Connect your Shopify store with the LeadJourney app, switch on the tracking embed in your theme, then map orders, refunds and checkouts onto your conversions so every sale is attributed to the ad that drove it.
Connect Jotform
Connect Jotform with an account API key. LeadJourney registers a webhook on every form and can add an lj_click_id field for you, so each submission is attributed to the ad that drove it.