> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Automatic Form Capture

> Automatic lead capture from Klaviyo, Postscript, Attentive, Omnisend, Sendlane, Recart, Listrak, Justuno, Alia, Octane AI, and Loop Subscriptions. Upstack Data detects form submissions and fires Lead events automatically.

Upstack automatically detects and captures form submissions from popular email and SMS platforms. When a visitor submits a form on one of these platforms, we capture their email and/or phone number and fire appropriate tracking events.

<Note>
  **Works on any website** — these integrations work on Shopify stores, headless storefronts, and custom websites. As long as the Upstack pixel and the third-party tool are both installed, form capture is automatic.
</Note>

<Tip>
  **No configuration required** — these integrations work automatically when both Upstack and the third-party tool are installed on your site.
</Tip>

## How It Works

When a visitor submits a signup form from a supported platform:

1. **Upstack detects the submission** automatically when both apps are installed
2. **Captures email and/or phone** from the form data
3. **Fires a `Lead` event** with the captured information
4. **Associates the session** with the captured identity
5. **Forwards to destinations** (Meta, TikTok, Klaviyo, etc.)

***

## Supported Platforms

Upstack automatically captures signups from the following platforms:

| Platform               | Supported Forms                 |
| ---------------------- | ------------------------------- |
| **Klaviyo**            | Popups, embedded forms, flyouts |
| **Postscript**         | SMS opt-in popups and forms     |
| **Attentive**          | Two-tap creative, email capture |
| **Omnisend**           | Popups, signup boxes, wheels    |
| **Sendlane**           | Popups and embedded forms       |
| **Recart**             | Opt-in popups and tools         |
| **Listrak**            | Email and SMS capture forms     |
| **Justuno**            | Popups and embedded forms       |
| **Alia**               | Signup popups                   |
| **Octane AI**          | Quiz lead capture               |
| **Loop Subscriptions** | Subscription management events  |

***

## Events Fired

When a visitor interacts with a supported form, the following events may fire:

| Event                         | When It Fires                                    |
| ----------------------------- | ------------------------------------------------ |
| `email_opt_in_form_displayed` | Popup or form becomes visible to visitor         |
| `Lead`                        | Visitor submits email and/or phone               |
| `email_opt_in_form_submitted` | Same as Lead — fired alongside for compatibility |
| `email_opt_in_form_declined`  | Visitor dismisses the form without submitting    |

All events include captured email/phone for identity resolution when available.

***

## Platform Details

### Recart

Upstack automatically captures leads from Recart opt-in tools.

**Events Captured:**

* `recart:optin-tool:email-captured`
* `recart:optin-tool:phone-number-captured`

**Data Captured:**

* Email address
* Phone number
* Opt-in tool ID
* Opt-in tool name

**Upstack Event Fired:** `Lead`

***

### Listrak

Upstack automatically captures leads from Listrak forms.

**Events Captured:**

* `ltkEmailIdentityEvent`
* `ltkPhoneIdentityEvent`

**Data Captured:**

* Email address
* Phone number

**Upstack Event Fired:** `Lead`

***

### Justuno

Upstack automatically captures leads from Justuno popups and forms.

**Detection Method:** Monitors form field changes for `ju_hidden_email` and `ju_hidden_sms` fields.

**Data Captured:**

* Email address (from `ju_hidden_email` field)
* Phone number (from `ju_hidden_sms` field)

**Upstack Event Fired:** `Lead`

***

### Alia

Upstack automatically captures leads from Alia signup popups.

**Events Captured:**

* `alia:signup`

**Data Captured:**

* Email address
* Phone number
* Popup ID

**Upstack Event Fired:** `Lead`

***

### Octane AI Quiz

Upstack automatically tracks quiz interactions from Octane AI, including question responses, quiz completion, and lead capture.

**Events Captured:**

| Octane Event                   | Upstack Event                                       |
| ------------------------------ | --------------------------------------------------- |
| `octane.quiz.questionAnswered` | `quiz_question_answered`                            |
| `octane.quiz.completed`        | `quiz_completed` + `Lead` (if email/phone captured) |
| `octane.quiz.accessed`         | `view_quiz_results`                                 |

**Data Captured:**

* Quiz answer details
* Email address (from lead capture step)
* Phone number (from lead capture step)
* Quiz completion status

<Info>
  The `Lead` event fires automatically when email or phone is captured during quiz completion.
</Info>

***

### Loop Subscriptions

Upstack tracks subscription management events from Loop Subscriptions, enabling attribution for subscription-related cart actions.

**Events Captured:**

| Loop Event                         | Upstack Event               |
| ---------------------------------- | --------------------------- |
| `loopAddAsOneTime`                 | `add_to_cart`               |
| `loopAddAsSubscription`            | `add_to_cart`               |
| `loopBundleAddAsOneTime`           | `add_to_cart`               |
| `loopBundleAddAsSubscription`      | `add_to_cart`               |
| `loopItemAddToBundleSuccessEvent`  | `add_to_cart`               |
| `loopByobAddToCartSuccessEvent`    | `add_to_cart`               |
| `loopPresetAddToCartSuccessEvent`  | `add_to_cart`               |
| `loopRemoveForOneTime`             | `product_removed_from_cart` |
| `loopRemoveFromSubscription`       | `product_removed_from_cart` |
| `loopBundleRemoveForOneTime`       | `product_removed_from_cart` |
| `loopBundleRemoveFromSubscription` | `product_removed_from_cart` |

**Data Captured:**

* Product ID
* Variant ID
* Product title
* Price
* Quantity

<Note>
  Loop also fires additional subscription management events (pause, resume, cancel, etc.) that are tracked for analytics but not mapped to standard e-commerce events.
</Note>

***

### What Destinations Receive

When a form submission is detected, Upstack automatically forwards the event to your connected destinations:

```json theme={null}
// Destination wire format (what Meta CAPI receives)
{
  "event_name": "Lead",
  "event_time": "2026-02-18T14:39:00.000Z",
  "event_source_url": "https://example-store.com/",
  "user_data": {
    "em": "a1b2c3d4e5f6...hashed",
    "ph": "f6e5d4c3b2a1...hashed",
    "client_ip_address": "203.0.113.42",
    "client_user_agent": "Mozilla/5.0..."
  },
  "custom_data": {
    "content_name": "Newsletter Signup"
  }
}
```

<Note>
  You don't need to write any code for form capture integrations — Upstack detects and processes these automatically.
</Note>

***

## Destination Forwarding

Form submissions are automatically forwarded to your enabled destinations:

| Destination           | Event Received          | Lead Data                      |
| --------------------- | ----------------------- | ------------------------------ |
| **Meta CAPI**         | `Lead`                  | Email (hashed), phone (hashed) |
| **TikTok Events API** | `SubmitForm`            | Email (hashed), phone (hashed) |
| **Google Ads**        | `generate_lead`         | Enhanced conversions data      |
| **Klaviyo**           | Profile created/updated | Full PII                       |
| **Attentive**         | Subscriber created      | Phone, email                   |

<Note>
  Lead events are valuable for building audiences and measuring top-of-funnel performance, even if you don't optimize directly for leads.
</Note>

***

## Identity Resolution

When a form is submitted:

1. **Email is captured** and used as primary identifier
2. **Phone is captured** if provided (E.164 format)
3. **Session is associated** with the captured identity
4. **Cross-device matching** becomes possible for repeat visitors

This means when a visitor who previously submitted a form returns to your site, Upstack can recognize them and attribute their behavior to the original touchpoint — even if they're on a different device.

<Info>
  Identity resolution works across all form capture integrations and connects with data from [checkout identity capture](/sources/shopify-automatic-tracking#identity-capture).
</Info>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Form submissions not tracking">
    **Verify both apps are installed:**

    1. Confirm Upstack is installed and active (check for events in the dashboard)
    2. Confirm the third-party tool (Klaviyo, Postscript, etc.) is installed on your storefront
    3. Test by submitting a form and checking the Live Event Stream in your Upstack dashboard

    **Check browser console:**

    Open browser DevTools (F12) and look for JavaScript errors that might prevent form detection.

    **Contact support:**

    If the form is from a supported platform but not tracking, contact support with the form URL for investigation.
  </Accordion>

  <Accordion title="Identity not resolving">
    **Verify data format:**

    * Email must be a valid email format
    * Phone should be in E.164 format (e.g., `+14155551234`)

    **Check consent settings:**

    If the visitor hasn't granted analytics consent, identity resolution may be limited.

    **Allow time for resolution:**

    Identity stitching happens asynchronously. Check back in a few minutes if the identity doesn't appear immediately.
  </Accordion>

  <Accordion title="Events not forwarding to destinations">
    **Check destination configuration:**

    1. Go to **Integrations → Destinations** in your Upstack dashboard
    2. Verify the destination is connected and active
    3. Check that Lead events are enabled for that destination

    **Review event mapping:**

    Some destinations may map Lead events to different event names. Check the destination-specific documentation for details.
  </Accordion>
</AccordionGroup>

***

## Related

<CardGroup cols={2}>
  <Card title="Standard Events" icon="list-check" href="/pixel/standard-events">
    Full reference for Lead and other standard events.
  </Card>

  <Card title="Shopify Automatic Tracking" icon="shopify" href="/sources/shopify-automatic-tracking">
    How checkout and storefront events are captured.
  </Card>

  <Card title="Identity Resolution" icon="fingerprint" href="/pixel/identity-resolution">
    How Upstack connects visitor sessions across devices.
  </Card>

  <Card title="Meta CAPI" icon="meta" href="/destinations/meta-capi">
    Configure Lead event forwarding to Meta.
  </Card>
</CardGroup>
