🎯

form-attribution

🎯Skill

from 224-industries/agent-skills

VibeIndex|
What it does

Automatically captures and injects marketing attribution data like UTM parameters and referrer information into website forms as hidden fields.

πŸ“¦

Part of

224-industries/agent-skills(3 items)

form-attribution

Installation

Quick InstallInstall with npx
npx skills add 224-Industries/agent-skills
Quick InstallInstall with npx
npx skills add 224-Industries/agent-skills --skill form-attribution
Quick InstallInstall with npx
npx skills add 224-Industries/agent-skills --list
Add MarketplaceAdd marketplace to Claude Code
/plugin marketplace add 224-Industries/agent-skills
Install PluginInstall plugin from marketplace
/plugin install 224-agent-skills
πŸ“– Extracted from docs: 224-industries/agent-skills
3Installs
-
AddedFeb 4, 2026

Skill Details

SKILL.md

Implement the Form Attribution library on websites to capture UTM parameters, ad click IDs, referrer data, and other marketing attribution automatically. Use when the user needs to (1) add marketing attribution tracking to a website, (2) configure form attribution for specific use cases like cross-subdomain tracking or CRM integration, (3) troubleshoot form attribution issues, or (4) implement platform-specific patterns for Webflow, HubSpot, WordPress, or other select platforms.

Overview

# Form Attribution

A lightweight, zero-dependency script that automatically captures marketing attribution data and injects it into forms as hidden fields.

| Resource | Link/URL |

|------------|-------------------------------------------------------------------------------------------|

| CDN URL| https://cdn.jsdelivr.net/npm/form-attribution@latest/dist/script.min.js |

| Docs | [https://form-attribution.flashbrew.digital/docs](https://form-attribution.flashbrew.digital/docs) |

| GitHub | [https://github.com/Flash-Brew-Digital/form-attribution](https://github.com/Flash-Brew-Digital/form-attribution) |

Basic Implementation

Add before the closing tag:

```html

```

The script automatically captures UTM parameters, stores them in sessionStorage, and injects hidden fields into all forms.

Configuration Options

Configure via data attributes on the script tag:

| Attribute | Default | Description |

|-----------|---------|-------------|

| data-storage | sessionStorage | sessionStorage, localStorage, or cookie |

| data-field-prefix | "" | Prefix for hidden field names (e.g., attr_) |

| data-extra-params | "" | Additional URL parameters to capture (comma-separated) |

| data-exclude-forms | "" | CSS selector for forms to exclude |

| data-click-ids | false | Capture ad platform click IDs (gclid, fbclid, etc.) |

| data-debug | false | Enable debug panel overlay |

| data-privacy | true | Respect GPC/DNT privacy signals |

| data-storage-key | form_attribution_data | Custom storage key name |

Cookie-specific options (when data-storage="cookie"):

| Attribute | Default | Description |

|-----------|---------|-------------|

| data-cookie-domain | "" | Cookie domain (e.g., .example.com) |

| data-cookie-path | / | Cookie path |

| data-cookie-expires | 30 | Expiration in days |

| data-cookie-samesite | lax | lax, strict, or none |

What Gets Captured

URL Parameters (default): utm_source, utm_medium, utm_campaign, utm_term, utm_content, utm_id, ref

Metadata (automatic): landing_page, current_page, referrer_url, first_touch_timestamp

Click IDs (when data-click-ids="true"): gclid (Google), fbclid (Meta), msclkid (Microsoft), ttclid (TikTok), li_fat_id (LinkedIn), twclid (Twitter/X)

Common Configurations

With ad click ID tracking:

```html

```

Cross-subdomain tracking (cookies):

```html

```

CRM field prefix:

```html

```

Exclude forms (e.g., search, login):

```html

```

JavaScript API

The library exposes a global FormAttribution object:

```javascript

FormAttribution.getData(); // Get all captured data

FormAttribution.getParam('utm_source'); // Get specific parameter

FormAttribution.getForms(); // Get tracked forms

FormAttribution.clear(); // Clear stored data

FormAttribution.refresh(); // Re-inject into forms

```

Privacy

Respects Global Privacy Control (GPC) and Do Not Track (DNT) by default. When detected, no data is captured. Override with data-privacy="false".

References (references/*)

Platform-Specific Patterns

For implementation patterns specific to Webflow, HubSpot, WordPress, Marketo, and certain other platforms, see [references/platforms.md](references/platforms.md).

FAQ

For common questions about compatibility, privacy, performance, and customization, see [references/faq.md](references/faq.md).