Audience filtering

Decide exactly who sees a form — pages, devices, location, visitor history, and Klaviyo or Shopify segments — with testable AND/OR rules.

Audience filtering controls who sees a form. Before a form renders on your storefront, Formtoro checks whether the current visitor matches the form's audience. If they match, the form appears; if not, it stays hidden — the visitor never knows it exists.

New forms start with the Any visitor (not subscribed) audience: everyone who hasn't already signed up through one of your forms is eligible, and existing subscribers are left alone.

Where to edit the audience

Open Settings in the builder's title bar and switch to the Audience tab, then click Edit rules. The Audience Rules sheet slides in with everything on one screen: quick presets, your saved audiences, the rule editor, a plain-English Targeting summary, and the tester. Changes apply to your draft only when you click Apply — Cancel discards them.

Quick presets

One click applies a common pattern, which you can then customize:

PresetWho it targets
All visitorsEveryone — removes all rules
Any visitor (not subscribed)Anyone who hasn't subscribed yet (the default)
New visitorsFirst-time visitors
Returning visitorsVisitors you've seen before
Mobile only / Desktop onlyOne device class
Product pagesPages whose path contains /products/
UTM campaign trafficVisitors arriving with any utm_campaign

What you can target

Each rule picks one condition from a grouped dropdown. The groups and their exact options:

GroupOptions
URL & UTMPage path, Full URL, UTM source, UTM medium, UTM campaign
Device & GeoDevice type (Mobile or Desktop), Country, Continent, Located in the EU, Located outside the EU
Visitor lifecycleFirst-time visitor, Returning visitor, Subscribed visitor (signed up via a form), Any unsubscribed visitor
This formHas not completed this form — hide a form from people who already finished it
IntegrationsKlaviyo segment, Shopify segment — see segment targeting
StorageCookie, Local storage, Session storage — you provide the key (the cookie or storage entry name) to read

Lifecycle options like First-time visitor or Located in the EU are complete conditions on their own — pick one and you're done. The rest take an operator and a value.

Operators

Depending on the condition, you can use:

  • equals / does not equal
  • contains / does not contain — substring match, great for paths and URLs
  • is one of / is not one of — match against a list (devices, countries, continents, segments)
  • is set / is not set — the value exists at all (UTM parameters, cookies, storage entries)

A few examples:

  • Show a welcome offer only when First-time visitor and Page path equals /.
  • Show a campaign form only when UTM campaign contains spring-sale.
  • Hide a form from VIPs who carry a vip cookie: Cookie with key vip and is not set — only visitors without the cookie match.

Combining rules

Each group opens with a sentence — Show to visitors who match all of these rules — and the all / any chip in it decides how the rules below combine: all (AND) means a visitor must match every rule, any (OR) means one is enough. The choice applies to the whole group; the and / or between rows just reads it back.

To mix the two, use a group. Add “any of” group (or “all of”) nests a sub-group with the opposite setting, so you can express things like:

Unsubscribed visitor AND Full URL does not contain /checkout AND (Country is Australia OR Country is New Zealand)

To keep visitors out — hide the form on checkout or cart pages — use does not contain rules in an all group. In an any group a visitor only has to pass one rule, so two “does not contain” rules let almost everyone through; the editor flags this and offers Match all rules instead. It likewise flags an all group that asks for two values of the same thing at once (Country is Australia AND Country is New Zealand), which no visitor can match.

As you edit, the dashed Targeting box below the rules restates the whole audience in plain English — read it back to confirm the logic says what you mean. Clear all removes every rule, which means show to all visitors.

Target Klaviyo and Shopify segments

You can gate a form on membership in a Klaviyo segment or a Shopify customer segment — show a VIP-only offer, or hide a winback form from your engaged segment.

  • Pick segments by name: the value field is a searchable multiselect that lists your segments; selected ones appear as removable chips. If the list can't load, you can still type a segment ID and press Enter to add it.
  • Klaviyo segment only appears in the dropdown once Klaviyo is connected. Membership is resolved for visitors Klaviyo already recognizes on your site (their Klaviyo cookie).
  • Shopify segment membership is only evaluated for logged-in customers. A guest browsing your store can't be matched to a Shopify segment.

When membership can't be checked — the visitor isn't recognized by Klaviyo, isn't logged in to Shopify, or the lookup fails — an is one of rule treats the visitor as not matching, so a members-only form stays hidden rather than leaking to everyone. An is not one of rule does the opposite and keeps showing the form, so an exclusion never accidentally suppresses your whole audience.

Saved audiences

Build a rule set once and reuse it across forms:

  • Save as audience stores the current rules under a name.
  • The Saved audience dropdown loads any saved audience into the editor. Once selected, you can rename it, delete it, or Detach to keep the rules on this form only, no longer linked to the library entry.
  • An audience that's linked to a form can't be deleted — detach it first.

How it runs

When a shopper loads a page, the storefront widget asks Formtoro whether the form is eligible. Formtoro evaluates the audience server-side using the visitor's context — page, device, location, visit and subscription history, segment membership. Cookie, Local storage, and Session storage rules are the exception: those values only exist in the shopper's browser, so they're checked there.

Test your audience

Click Test audience at the bottom of the sheet to open the Test visitor panel. It shows input fields only for the conditions your rules actually use — a page path, a device, a country, segment IDs — you fill in the values a real visitor would have. There are no preset visitor profiles; you always describe the test visitor yourself.

The result updates live: a Visitor matches / Visitor does not match banner plus a per-rule breakdown showing exactly which conditions passed and failed, with the value each one saw. For segment rules, enter segment IDs comma-separated — or leave the field empty to simulate a visitor whose membership couldn't be checked.

Audiences and experiments

In an A/B experiment, both arms must target the same audience — otherwise you'd be comparing different visitors, not different forms. Edit the audience on the control form and it mirrors to the variant automatically; the variant's audience is locked while the experiment is set up.

Next steps