# Track UTMs in Saleskick

## UTM attribution overview

This guide explains how to track UTMs and full HandL attribution data in Saleskick with HandL UTM Grabber V3. It helps you capture UTM source, medium, campaign, term, content, click IDs, referrer, landing page data, and first-touch fields, then pass them into the Saleskick iframe so they appear on submissions and in automations.

### Prerequisites

- HandL UTM Grabber V3 installed and active on your WordPress site
- A Saleskick form embed code from **Saleskick &gt; Integrations &gt; Embed**
- UTM Grabber loaded on the same page *before* the Saleskick script runs (the plugin does this automatically on WordPress)

### How it works

Saleskick ships a JavaScript embed that opens your form in a modal iframe. By default that iframe URL does not include your stored attribution cookies. The adapted embed below:

1. Reads tracked parameters from the global `handl_utm` object (UTM Grabber V3)
2. Waits until `first_handlID` is available so first-touch data is included
3. Merges those values with any parameters already in the page URL
4. Appends the merged query string to the Saleskick iframe `src` before the form loads

After a visitor submits, Saleskick stores the parameters under **Application &gt; URL Parameters** in the submission detail view. The same data is exposed to automations as `{{submission.shareQueryParams}}` for webhooks and CRM integrations.

### Step 1 — Paste the adapted embed code

Replace your default Saleskick embed with the code below. Update the constants at the top (`FORM_SRC`, button text, colors, etc.) to match your form.

**Important:** This version uses `handl_utm` (UTM Grabber V3). Do not use `window.HandL.getAll()` — that API belongs to a different tracking platform.

```javascript
<script>
(function () {
  const FORM_SRC = "https://app.saleskick.com/form-YOUR-FORM-ID/your-form-slug";

  function saleskickUrlWithUtmGrabberData() {
    const url = new URL(FORM_SRC);
    const params = typeof getAllHandLUTMParams === "function"
      ? getAllHandLUTMParams()
      : {};

    Object.entries(params).forEach(function ([key, value]) {
      if (value) url.searchParams.set(key, value);
    });

    return url.toString();
  }

  const iframe = document.createElement("iframe");
  iframe.src = saleskickUrlWithUtmGrabberData();

  // rest of Saleskick code...
})();
</script>
```

The full production embed from Saleskick may include additional modal styling and mobile responsive behavior. When adapting your own copy, only change the attribution block: replace any `window.HandL` / `HandL.getAll()` references with `handl_utm` as shown above.

### Step 2 — Test with UTMs in the landing URL

Visit your landing page with test UTMs, for example:

```
https://yoursite.com/landing-page?utm_source=fb&utm_medium=paid&utm_campaign=test
```

Open the browser console and look for `[Saleskick UTM Grabber]` log messages. Submit a test lead through the Saleskick form.

### Step 3 — Verify parameters in Saleskick

Open the submission in Saleskick and go to the **Application** tab. Under **URL Parameters** you should see values such as:

- `utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`
- `fbclid`, `gclid`, or other click IDs when present
- `handlID`, `first_handlID`, `handl_ref`, `handl_landing_page`, `handl_url`
- `traffic_source`, `organic_source_str`, `user_agent`

If parameters are missing, confirm UTM Grabber is active, cookies are not blocked, and the page was loaded with UTMs before opening the Saleskick modal.

[![sanitized-lead-profile.png](https://docs.utmgrabber.com/uploads/images/gallery/2026-07/scaled-1680-/sanitized-lead-profile.png)](https://docs.utmgrabber.com/uploads/images/gallery/2026-07/sanitized-lead-profile.png)

### Next step

See [Send Saleskick UTMs via Automation or Webhook](https://docs.utmgrabber.com/books/saleskick/page/send-saleskick-utms-via-automation-or-webhook) to forward `shareQueryParams` to your CRM or backend.