Skip to main content
Opens tell you less every year (Apple Mail Privacy Protection opens emails for people). What people tell you stays true: which topics they want, how often, what they are shopping for. This page covers the tools that collect it — multi-step forms, quiz questions and a result step — plus popup targeting and A/B tests for forms and landing pages. Below the plan the upgrade card replaces the controls. Nothing you set up is deleted, and a published form keeps working for visitors.

Multi-step forms

Open a form under Audience → Forms and find Steps in the editor. Turn on Split into steps to page the form with a progress bar (“1 / 3”). By default each quiz question gets its own step and the contact fields come last; use Which step each field is on to move a field, Add step for another page (up to 6), and give each step an optional title and description. Next button text and Back button text are what visitors see, so write them in the form’s language. Each step is checked before the visitor moves on, with the browser’s own “please fill in this field” message. The server checks every answer again on submit.

Quiz questions

Under Quiz questions, click Add question. A question has 2 to 12 options; turn on Several answers allowed for a multiple-choice question. Each option can write up to four things to the contact when it is chosen: The answer itself is stored with the submission under the question’s key (shown as {{ data.quiz_… }} in the editor), so automations started by the form can use it. A multiple-choice question can’t write the same field from two options (except a multi-select field, where each ticked option is added), and two questions can’t write the same field — the form refuses to save and says which one.

Draft with Spark

Click Draft with Spark, describe what the quiz should learn (“which roast people like and how often they want offers”) and pick the quiz language. Spark drafts 2–4 questions and maps the answers to your custom fields. It sees only your brief and the names and options of custom fields not marked sensitive — never a contact or a contact’s value — and any mapping to a field or option you don’t have is dropped. Nothing is saved until you click Save Form. A draft uses 3 AI credits. In Spark or an MCP client the same tool is draft_quiz.

Preference quiz starter

On Audience → Forms, click Preference quiz, name it, pick the target list and type 2–8 topics. You get a three-step form: which topics (several answers), how often, then first name and email. The topics become the options of one multi-select custom field, interests (created if it does not exist; an existing multi-select interests field gains any topics it is missing), and each topic a visitor ticks is added to their interests. Segment on it with Interests is any of / all of / none of. The frequency answer sets the contact’s email frequency. Edit any wording afterwards. If you already have an interests field of another type, the starter refuses rather than overwrite it: delete that field first, or build the quiz by hand. Forms created by the earlier version of the starter, with one yes/no interest_<topic> field per topic, keep working.

Result step

Under Result step, turn it on to replace the success message with a title and text. Add results for an answer to show something specific: the first chosen answer that has a result wins, otherwise the default text shows. When the contact still has to confirm their subscription (double opt-in), the confirmation notice appears under the result. Multi-step forms, quizzes and the result step work in the hosted form page, iframe embeds, popups, slide-ins, banners and the landing page Form block. The Live Preview uses the same renderer. For a Popup, Slide-in or Banner, turn on Targeting rules under Display Type. They replace the trigger and frequency settings. Show when — the first of these to happen shows the popup; leave all empty to show it on page load:
  • Time on page in seconds
  • Scroll depth in percent
  • Exit intent: the pointer leaves the top of the window (desktop browsers)
Only if — every one of these must hold:
  • Pages to show on / never to show on: one pattern per line. A pattern matches the page path, * matches anything (/blog/*), a pattern with ? also matches the query, and one starting with https:// matches the full address. Use Test a URL to check.
  • Visitors: everyone, new visitors only, or returning visitors only.
  • Show at most once every … days: 0 shows it on every page view.
  • Devices: desktop, tablet, mobile.
The rules run in the visitor’s browser. A returning visitor is one who was already shown this form; that, and the frequency cap, are remembered in the browser’s local storage (not a cookie), written only when the form is actually shown. A browser that blocks storage treats everyone as new. You can still open the popup from your own code with ICShowPopup["<form id>"]().

A/B test a form

At the bottom of the form editor, under A/B test, set what Variant B changes — title, button text, success message and/or accent colour — and the Share of visitors seeing B, then click Start test. Fields and consent wording are never part of a variant, so every visitor gives the same consent. Nothing is stored in the visitor’s browser for the test: our server picks the variant from the same daily-changing visitor hash the website analytics uses, so a visitor keeps one variant for the day, without a cookie. A visitor is counted once a day, the first time they see the form; a conversion is a submission. The results table shows visitors, submissions, the conversion rate with its 95% range and a verdict: keep running until each variant has 100 visitors, then either “Variant B is ahead by X% with Y% confidence” (a two-proportion z-test at 95%) or “no significant difference yet”. You can change the split while it runs. Declare A or Declare B ends the test. Declaring B copies its changes into the form, so everyone sees B from then on. Stop without a winner goes back to the original.

A/B test a landing page

On Content → Landing pages, click the flask icon on a page to open its A/B test. Choose Variant B: a copy of this page (created as an unpublished page you then edit in the builder — use Edit variant B) or another page you already have. Set the split and start. Visitors to the page’s address are split between the page and variant B. Variant B is shown at the same address with this page’s SEO settings, custom code and tracking — only the content differs. Each visitor keeps their variant for the day without any cookie: our server picks it from the daily-changing visitor hash, and counts a visitor once a day. A conversion is a submission of a Form block on the page (a form embedded in an HTML block as an iframe is not counted). Declaring B copies the variant’s content into this page; the variant page itself is left as it is. A running test pauses (everyone sees the original) if the workspace moves below Pro, and resumes on upgrade.