> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.opnform.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to track the source of your OpnForm submissions


OpnForm can automatically capture supported UTM campaign parameters and ad click IDs when someone submits your form. This lets you identify which campaign, channel, or ad generated a response without adding hidden fields to the form.

Attribution is saved separately from the respondent's answers and remains attached to the original submission.

## Supported attribution parameters

OpnForm captures only the following validated parameters:

| Campaign parameters | Ad click IDs |
| --- | --- |
| `utm_source` | `gclid` |
| `utm_medium` | `gbraid` |
| `utm_campaign` | `wbraid` |
| `utm_id` | `dclid` |
| `utm_term` | `fbclid` |
| `utm_content` | `ttclid` |
| `utm_source_platform` | `msclkid` |
| `utm_creative_format` |  |
| `utm_marketing_tactic` |  |

Other URL parameters and the complete page URL are not captured. Empty values and values longer than 2,048 characters are ignored.

## Track a direct form link

Add your campaign parameters to the form's public URL. For example:

```text
https://opnform.com/forms/your-form?utm_source=newsletter&utm_medium=email&utm_campaign=summer_launch
```

Share that URL in your email, ad, social post, or other campaign. When someone submits the form, OpnForm saves the supported parameters with the submission automatically.

## Track an embedded form

When your page uses the OpnForm SDK, the embedded form automatically receives supported attribution parameters from the parent page. You do not need to add them manually to the iframe URL.

If the same parameter exists both on the parent page and in the iframe `src`, the iframe value takes priority. This lets you set a deliberate value for a specific embed while still inheriting the remaining parameters from the parent page.

> A raw cross-origin iframe without the OpnForm SDK cannot read the parent page URL. In that case, include the supported parameters directly in the iframe `src`.

See the [OpnForm JavaScript SDK documentation](https://docs.opnform.com/embedding/javascript-sdk) for embed setup and SDK events.

## View attribution in your submissions table

1. Open your form in OpnForm.
2. Select **Submissions**.
3. Open **Columns**.
4. Expand **Attribution & tracking**.
5. Select **Show detected** to display attribution found on the current page, or open **Other supported parameters** to choose another column.

Attribution columns are hidden by default so they do not clutter forms that do not use campaign tracking.

![Submission table showing UTM source, medium, campaign, and Google Click ID columns](https://storage.crisp.chat/users/helpdesk/website/-/1/b/5/b/1b5b982fc3df6500/01-attribution-columns-visible_1s7zyu9.png)

The badge beside **Attribution & tracking** shows how many supported parameters were detected on the current submissions page. If you no longer need the tracking columns, select **Hide URL parameters** to hide all of them at once.

![Attribution and tracking column manager with the Hide URL parameters action](https://storage.crisp.chat/users/helpdesk/website/-/1/b/5/b/1b5b982fc3df6500/02-attribution-column-manager_1es9ah9.png)

## Export attribution to CSV

The export uses the columns currently visible in your submissions table:

1. Open **Columns → Attribution & tracking**.
2. Show the attribution columns you want to include.
3. Select **Export**.

The resulting CSV includes those attribution columns alongside the visible answer and system columns.

## Use attribution in APIs and integrations

When attribution was captured, owner API responses, webhook payloads, Zapier polling data, and SDK submit events expose it under `meta.attribution`.

```json
{
  "meta": {
    "attribution": {
      "utm_source": "newsletter",
      "utm_medium": "email",
      "utm_campaign": "summer_launch"
    }
  }
}
```

Attribution is first-touch data: it is stored when the submission is first created and is not replaced by later updates to that submission.

## Troubleshooting missing attribution

- Confirm that the parameter name exactly matches one of the supported lowercase names above.
- Make sure the value is not empty and is no longer than 2,048 characters.
- Create a new submission after adding the parameters; existing submissions are not retroactively updated.
- For an SDK embed, place the parameters on the parent page URL or the iframe `src`.
- For a raw cross-origin iframe without the SDK, place the parameters directly in the iframe `src`.
- If a supported parameter is not detected on the current submissions page, look under **Other supported parameters**.

## When to keep using a custom hidden field

You no longer need a hidden field for the supported campaign and click-ID parameters above. A hidden field can still be useful when you want to pass a custom label that is not part of the supported attribution list. See [How to use URL form pre-fill](https://help.opnform.com/en/article/how-to-use-url-form-pre-fill-1juyi21/) for that workflow.

