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_id parameter 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_id parameter.

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_id hidden 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_id under 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:

  1. App: Typeform (already selected).
  2. LeadJourney Event: pick the conversion type submissions should record, e.g. Lead. (No options? Create one under Settings → Events first.)
  3. Form: leave on All forms to fire for every submission on the account, or scope the trigger to one form.
  4. 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, and hidden.lj_click_id is 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 delete to 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