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

# Popups & forms

> On-site capture popups with games, multi-step flows and behavioural triggers — plus embeddable forms.

Popups capture visitors on your storefront and route them into Senderz. They're a composable, multi-step builder with real on-site serving across Shopify, WooCommerce and Konimbo.

## The builder

A popup is a sequence of **steps**, each with its own layout and elements. Step kinds include contact/email/phone/name capture, questions, micro-commitments, games (wheel, scratch, mystery), education and reward screens.

<CardGroup cols={2}>
  <Card title="Composable steps" icon="layer-group">
    Up to 12 steps. Add, clone, reorder and rename. Separate desktop and
    mobile layouts per step.
  </Card>

  <Card title="Per-element styling" icon="paintbrush">
    Absolute position, size, colours and images per element.
  </Card>

  <Card title="Games of chance" icon="dice">
    Wheel and scratch games carry the required Israeli disclaimer. The prize
    is decided **server-side** — never by the client.
  </Card>

  <Card title="Custom fields" icon="input-text">
    Collect any non-computed catalog property. Values route to the right
    contact column or custom-property bag.
  </Card>
</CardGroup>

## Behavioural triggers

Popups arm on visitor behaviour: `delay`, `scroll`, `exitIntent`, `dwellTime`, `inactivity`, or `click` (with an optional selector). One popup shows per session.

## Server-decided rewards

For game popups, the reward is bound to a one-shot server token — the client can't force the jackpot. The public popup payload strips coupon codes, so codes aren't enumerable before a win. The winning code is delivered only after the draw or on subscribe.

<Info>
  Reward delivery can be **on-screen** or **by email** (a welcome flow
  delivers the code). Answers can map to static segments so welcome flows
  branch on what the visitor picked.
</Info>

## On-site serving

The popup runtime is a JS bundle distributed per platform:

<Tabs>
  <Tab title="Shopify">
    A theme app embed — merchants enable Senderz once under Online Store →
    Themes → Customize → App embeds.
  </Tab>

  <Tab title="WooCommerce">
    A WordPress plugin that hooks the storefront footer.
  </Tab>

  <Tab title="Konimbo">
    A paste-in snippet served from the Senderz CDN.
  </Tab>
</Tabs>

## Embedded forms

For any website, embed a native form instead of a popup. Add `<form data-senderz-form data-tenant data-key>` to your page and include the Senderz form script. Submissions authenticate with your workspace ID + API key, upsert the contact, subscribe email, and enrol `contact_created` / `list_joined` flows.

<Warning>
  Protect embedded forms with an **origin allowlist** (Settings → Embedded
  Forms). An empty list accepts from anywhere; a configured list rejects
  submissions from other origins.
</Warning>

See the [Embedded Forms integration](/en/integrations/embedded-forms) and [Forms API](/en/api-reference/forms) for the install snippet and endpoint.
