# Typeform Integration

> Set up conversion tracking for Typeform with AnyTrack. Track form submissions, partial submissions, measure campaign ROI, and send real-time conversion data to Google Ads, Facebook, and TikTok APIs.

<Prerequisites
  title="Before you begin"
  items={[
    { label: "You have an AnyTrack account with a paid subscription", done: true },
    { label: "You have an active Typeform account", done: true },
    { label: "The AnyTrack Tracking Tag is installed on your website", done: true },
    { label: "You have admin access to your ad platforms for conversion tracking", done: true },
  ]}
/>

## What is Typeform Integration?

AnyTrack's Typeform integration enables automatic conversion tracking from your forms. When visitors submit your forms, their data is securely sent from Typeform directly to AnyTrack, which then forwards it in real-time to platforms like Google Ads, Facebook Conversion API, and TikTok API for conversion tracking.

Connect your accounts to start tracking form submission ROI across your campaigns.

## Why Use This Integration?

### Key Benefits

* **Real-Time Attribution:** Immediate conversion data sent to ad platforms for optimization
* **Multi-Platform Reporting:** Unified dashboard showing performance across Google Ads, Facebook, TikTok
* **No Code Required:** Simple webhook setup replaces complex tracking implementations
* **Complete Attribution:** Track conversions regardless of where forms are embedded
* **Partial Conversion Tracking:** Capture leads even when forms aren't fully completed

### Common Use Cases

* **Lead generation:** Track which ad campaigns generate form completions, not just clicks, and optimize ad spend based on actual leads
* **eCommerce pre-orders:** Attribute pre-order form submissions across multiple domains back to the originating traffic source
* **Event registration:** Track the full registration funnel from initial ad click through multi-step form completion

## How the Integration Works

Here's what happens when visitors interact with your Typeform:

### 1. Traffic Collection

When visitors land on your website, AnyTrack collects:

* **Traffic source data:** Where visitors came from (ad platforms, referrers, etc.)
* **First-party data:** Browser information, session details, and user behavior

### 2. Form Engagement Tracking

When visitors click Typeform links or interact with embedded forms, AnyTrack:

* Collects granular data tied to the initial engagement
* Tracks an `OutboundClick` event for analytics
* Triggers Event Tracking API requests to your Tracking Tags and analytics platforms
* Generates a unique **click ID** (a tracking identifier) and appends it as a hidden field to the Typeform

### 3. Conversion Detection & Attribution

When visitors interact with or submit the Typeform:

* AnyTrack receives real-time conversion data through a **webhook** (automated data transmission)
* The system matches the submission to the original click using the click ID
* AnyTrack processes the conversion data and attributes it to the correct traffic source
* Results are reported across various sections of the AnyTrack Dashboard

### 4. Conversion API Distribution

AnyTrack sends your conversions to your **Ad Platforms' Conversion APIs** (direct data connections) to:

* Feed platform machine learning algorithms
* Enable automatic optimization based on 100% of your conversion data
* Improve campaign performance through better attribution

<Callout icon="💡" theme="info">
  ### Attribution Data Sources

  AnyTrack uses multiple data points collected throughout the visitor journey:

  * **First-party data:** `clientId` and browser information
  * **Zero-party data:** Email addresses and phone numbers from form submissions
  * **Tracking data:** All available client-side tracking data before visitors move to the Typeform embed frame
</Callout>

## Technical Specifications

| Reference       | Value         | Information                                                                    |
| --------------- | :------------ | :----------------------------------------------------------------------------- |
| Tracking Group  | `typeform`    | The Tracking Group reference can be used to activate [AutoTag](/docs/autotag). |
| Subid Parameter | `at_click_id` | The Subid Parameter used to pass the AnyTrack `click_id`.                      |
| Tracking Method | `Webhook`     | Real-time data transmission from Typeform to AnyTrack                          |

### Standard Conversion Events

| Event Name          | Description                                                                                          | Data Source     |
| :------------------ | :--------------------------------------------------------------------------------------------------- | :-------------- |
| `OutboundClick`     | Triggered when a visitor clicks on Typeform links or loads a Typeform embed                          | AnyTrack JS Tag |
| `FormSubmit`        | Triggered when a visitor successfully submits a form                                                 | Webhook         |
| `PartialFormSubmit` | Triggered when a visitor partially completes a form based on Typeform's partial form submit settings | Webhook         |

### The Typeform Webhook

The **webhook** (automated data endpoint) is fully pre-configured and ready to implement with your Typeform account:

```http
https://t1.anytrack.io/:accountid/collect/typeform
```

<Callout icon="⚠️" theme="warning">
  ### Before You Begin

  1. **Install the AnyTrack Tracking Tag** on the website where your form is loaded
  2. **Add a hidden field** to your Typeform called `at_click_id`

  These steps are essential for proper conversion tracking.
</Callout>

## Setup Guide

Follow these steps to connect your Typeform account with AnyTrack:

### Step 1: Create the Integration in AnyTrack

Navigate to the AnyTrack [Integration Catalog](/docs/integration-catalog) and select Typeform:

<Image align="center" border={true} src={readmeAsset1} className="border" />

### Step 2: Configure Integration Settings

Set the integration name and click **Create**:

<Image align="center" border={true} src={readmeAsset2} className="border" />

### Step 3: Add Hidden Field to Typeform

In your Typeform Logic Settings, add a hidden field:

<Image align="center" border={true} src={readmeAsset3} className="border" />

### Step 4: Configure the Hidden Field

Click **Add a new field** and enter `at_click_id`:

<Callout icon="ℹ️" theme="default">
  This parameter will be automatically appended to your Typeform. Its value will be returned in the AnyTrack webhook when visitors submit the form.
</Callout>

<Image align="center" border={true} src={readmeAsset4} className="border" />

### Step 5: Copy the AnyTrack Webhook URL

Return to the AnyTrack dashboard and copy the webhook URL:

<Image align="center" border={true} src={readmeAsset5} className="border" />

### Step 6: Add Webhook to Typeform

In your Typeform, go to the **Connect** tab and add the AnyTrack webhook:

<Image align="center" border={true} src={readmeAsset6} className="border" />

### Step 7: Activate the Webhook

Paste the webhook URL, save it, and turn it on:

<Image align="center" border={true} src={readmeAsset7} className="border" />

### Step 8: Verify Setup

Open the **Events Log** to inspect webhook data and confirm everything is working:

<Image align="center" border={true} src={readmeAsset8} className="border" />

### Step 9: Integration Complete!

Your Typeform integration is now active and tracking conversions:

<Image align="center" border={true} src={readmeAsset9} className="border" />

<Callout icon="💡" theme="success">
  ### Pro Tip: Track Offline Conversions

  The same `click_id` used to track Typeform submissions can be used in downstream integrations like Calendly or your CRM to track additional conversion events.

  Use the Typeform **Recall** function to pass the `at_click_id` to the Form Redirect URL.

  [See how it works with this example](https://anytrack.typeform.com/to/cuDhwkVi).
</Callout>

***

## Validation and Testing

Validate that your integration is working correctly with these steps.

### Typeform Links Tracking Validation

Since conversion tracking begins when visitors land on your website, verify that your Typeform links are properly tracked and **AutoTagged** (automatically enhanced with tracking parameters).

#### AutoTag Methods

> 📘 **What is AutoTag?**
>
> AutoTag automatically appends tracking data to trackable elements such as links, forms, and carts through the AnyTrack Tracking Tag. Learn more about [AutoTag](/docs/autotag).

Choose the AutoTag method that works best for your setup:

* **Automatic:** AnyTrack automatically identifies and AutoTags Typeform links and embeds found on your website. Nothing to be done.
* **AutoScan:** AnyTrack scans links embedded in redirect plugins and AutoTags them accordingly. Learn about <a href='/docs/autoscan'>AutoScan</a>.
* **Manual Options:**
  * **Tracking Group Attribute:** Add the tracking group attribute to links: `data-tracking-group="typeform"` or `rel="typeform"`. Learn more about [Tracking Groups](/docs/tgid)
  * **Click ID Token:** Manually append the `subid`: `&at_click_id=--CLICK-ID--` to the Typeform link

#### Verification Checklist

1. **Check Link Tracking:** Ensure your Typeform links are being tracked
2. **Verify Parameters:** Check in your Typeform account results to see if `at_click_id` parameters are being passed to submissions
3. **Test Form Submission:** Complete a test form submission and verify the data appears in AnyTrack

### Conversion Tracking Validation

**Live Testing Process:**

1. **Prepare Test Environment:**
   * Clear browser cookies and cache
   * Open incognito/private browsing window
   * Have AnyTrack Events Log open in separate tab

2. **Execute Test Journey:**
   * Visit your website from a tracked traffic source (or simulate with UTM parameters)
   * Click on Typeform link/embed
   * Complete and submit the form (or trigger partial submission)
   * Check Events Log for real-time data

3. **Validate Data Points:**
   * Confirm `OutboundClick` event appears immediately after clicking form
   * Verify `FormSubmit` or `PartialFormSubmit` event appears after form interaction
   * Check that `at_click_id` matches between events
   * Ensure traffic source attribution is correct

#### Example Typeform conversion payload received via Webhook

Here's what a typical Typeform webhook payload looks like:

```json
{
  "form_response": {
    "ending": {
      "ref": "01FXF6HF03KTFEJDW3CKPAVPYK",
      "id": "r1VYrJERq61u"
    },
    "hidden": {
      "`atclid`": null,
      "`utm_term`": null,
      "at_click_id": "p8qkMansHXKGkJidsL9XG9ChEkp6Uec8qc",
      "`utm_campaign`": null,
      "`utm_medium`": "referral",
      "nid": null,
      "userid": null,
      "atrefid": null,
      "`utm_content`": null,
      "`utm_source`": "anytrack.io"
    },
    "submitted_at": "2023-08-26T14:54:56Z",
    "form_id": "NrR80kQO",
    "answers": [
      {
        "type": "text",
        "field": {
          "type": "short_text",
          "ref": "firstName",
          "id": "nCi6I4NPbAO3"
        },
        "text": "john"
      },
      {
        "type": "email",
        "field": {
          "type": "email",
          "ref": "email",
          "id": "VW1G1LkwtQYf"
        },
        "email": "johnman@example.com"
      }
    ],
    "landed_at": "2023-08-26T14:54:17Z",
    "token": "uyhvrh82zns95misuyhvrwfx603yspa2"
  },
  "event_id": "01H8S5EJXYJG4N7NWM4AFMQSZ8",
  "event_type": "form_response"
}
```

The key element to look for is the `at_click_id` in the hidden fields, which connects the form submission to the original visitor session.

***

<FaqAccordion
  title="Common Questions"
  icon="fa-duotone fa-circle-question"
  items={[
    {
      question: "Can I import past conversions into AnyTrack?",
      answer: "No. AnyTrack can only track conversions that occur following a visitor session on your website. Historical data cannot be imported."
    },
    {
      question: "Can I track direct linking campaigns?",
      answer: "Yes, but this requires a custom setup. Please refer to our <a href='/docs/deeplink'>deep linking documentation</a> for detailed instructions."
    },
    {
      question: "Can I use a different <code>subid</code> parameter than at_click_id?",
      answer: "No. The <code>at_click_id</code> parameter is required and cannot be changed. This ensures compatibility with AnyTrack's tracking system."
    },
    {
      question: "Can I track conversions without the <code>click_id</code>?",
      answer: "No. The <code>click_id</code> passed to Typeform links is essential for tracking conversions. Without it, AnyTrack cannot attribute form submissions to the original visitor sessions."
    },
    {
      question: "How can I change the conversion event name?",
      answer: "You can update the Event Mapping in the Integration settings page within your AnyTrack dashboard."
    },
    {
      question: "What triggers the PartialFormSubmit event?",
      answer: "The <code>PartialFormSubmit</code> event is triggered based on Typeform's partial form submit settings. This allows you to capture leads even when visitors don't complete the entire form."
    },
    {
      question: "What happens if my webhook fails?",
      answer: "AnyTrack will retry failed webhook deliveries up to 3 times with exponential backoff. Check your webhook endpoint's response codes and ensure it returns a 200 status for successful processing."
    }
  ]}
/>

### Troubleshooting Checklist

If you're experiencing issues, verify these common setup requirements:

* [ ] **Tracking Tag Placement:** Ensure your AnyTrack tracking tag is installed in the `<head>` section of your website
* [ ] **Account Limits:** If you're on the free plan, check that you haven't reached the monthly traffic limit. [Upgrade your plan](https://dashboard.anytrack.io/billing) if needed
* [ ] **Hidden Field:** Confirm the `at_click_id` hidden field is properly added to your Typeform
* [ ] **Webhook Configuration:** Verify the webhook URL is correctly configured and active in your Typeform settings
* [ ] **Link Tracking:** Test that your Typeform links are being properly AutoTagged
* [ ] **HTTPS Requirements:** Ensure all pages use HTTPS for proper tracking functionality
* [ ] **Ad Blockers:** Test with ad blockers disabled to rule out interference

### Getting Additional Help

If you continue to experience issues after checking the troubleshooting steps above, please contact our support team with:

* Your AnyTrack account details
* The specific Typeform you're trying to track
* Any error messages you're seeing
* Screenshots of your configuration settings
* Test results from the validation checklist

Our team can provide personalized assistance to get your integration working properly.
