Skip to content
  1. Home
  2. Help center
  3. Connections
  4. Connect Typeform

Connect Typeform

Last updated:

Typeform is hosted on Typeform’s domain, even when embedded in your page. A cookie set on your site cannot be read there, so the standard cookie hand-off used by a plain website connection does not apply. The visitor’s identifier has to travel as a URL parameter instead.

Two settings do that: a custom parameter in the form, and one line removed from the embed code.

Set up the connection in KO

  1. In Connects, click Add connect….
  2. In the Websites, quizzes, lead forms, chats category, choose Website: tracking & events and click Connect.
  3. Set the platform to Typeform and describe the connection.
  4. Keep the HTML code and the Webhook URL open — both are used below.

Install the tracking script

Install the HTML code on the site that embeds the form — inside <head>, or through your tag manager. The script has to run on your page, not inside the form: your page is where the visitor’s source is known.

Let the form receive the identifier

  1. In Typeform, open the form and go to Logic.
  2. Open the first Pull data in block for editing.
  3. Add a Custom URL parameter named ko_touch_id. KO fills this parameter in on your page, and Typeform carries the value through to the submission.
  4. Optionally enable the utm_* parameters under Source tracking — they will then be visible on the response inside Typeform itself, which is handy when checking your work.
  5. Save.

Add the webhook

  1. In Typeform, go to Connect → Webhooks.
  2. Click Add a webhook and paste the webhook URL from the KO connection. Save.
  3. Switch the webhook to Webhook ON.

Fix the embed code

Typeform gives you an embed snippet like this:

<div data-tf-live="XXXXX"></div><script src="//embed.typeform.com/next/embed.js"></script>

Use only the first part — drop the <script> tag:

<div data-tf-live="XXXXX"></div>

KO loads the form itself and appends ko_touch_id and the UTM tags to it. Leaving Typeform’s own loader in place means the form is embedded before those parameters are added, and every submission arrives without a source.

Turn the connection on

When you have set all the options, switch the connection status to Active:

  • Active — everything works.
  • Setting up — everything works, but data updates are paused.
  • Archived — the connection is off; data and statistics are kept.
  • Delete — removes the connection’s data and statistics.

Check that data is coming in

Open the page with the form and submit a response yourself.

In the connection settings, press Reload data: your visit should appear in Last visits and the response in Last leads, with a source.

If it doesn’t add up

Responses arrive without a source — check the embed. The <script> line is the usual culprit; it is easy to paste the snippet back in unchanged after a redesign.

Check the parameter name. It is ko_touch_id exactly, in the form’s Pull data in block.

Check the tracking script is on the embedding page, not only on the home page.