Set up PopupLift — from installation to your first live popup
This guide walks you through the entire setup: installation, the one-time settings, every step in the popup builder, and finally the best practices that help your first popup do more than simply work — they help it perform well. Keep it open as you go — the subheadings in section 3 match the six builder steps exactly.
1. Installation (2 minutes)
- Open the installation link (we will send it to you) and click Install in your Shopify admin.
- The app then shows Activate in Theme Editor. Click it, enable the PopupLift toggle in the theme editor, and click Save in the top right.
No popup can appear without this toggle — it is the master switch. Likewise, turning it off is the quickest way to stop ALL popups at once without deleting anything.
Good to know: nothing is visible in your shop immediately after installation. A popup only appears once it is published AND its campaign is active (the last item in step 3). You can take your time setting things up.
2. One-time settings (the “Settings” tab)
Take care of these four things once and you are set:
Connect Klaviyo. Click “Connect with Klaviyo” and approve the connection on the Klaviyo login screen. First, quickly check which Klaviyo account you are currently signed in to — if you manage several accounts, it is easy to authorize the wrong one with a single click. The message “This app has not been reviewed by Klaviyo” is normal until we are listed in the Klaviyo Marketplace.
Complete Shop & Legal. Add your legal company name, the URLs of your privacy policy and terms and conditions, and your logo. These fields supply the small print in the popup — without them, its privacy notice leads nowhere. A proven text for the “Privacy small print” field is:
By signing up, you agree to receive marketing emails from us and accept our privacy policy. You can unsubscribe at any time using the link in our emails. New customers only.
Check your sending setup in Klaviyo (only relevant when the discount code will arrive by email): In Klaviyo, Settings → Email → Sender information must contain a sender name, a sender address on your own domain, and your company address. Under Settings → Account → Domains, your sending domain must be verified AND activated — “Activate” is a separate click that is easy to miss. An account without a sender does not send anything, without even showing an error.
Add your Shopify branding (optional but useful): In Shopify, enter your logo and brand colors under Settings → Brand. The builder then picks them up automatically, so you do not have to set colors and a logo for every popup.
3. Build a popup — the builder's six steps
At the top of the builder, you will see: Design → Content → Reward → Klaviyo list → Triggers → Targeting. Complete them once; afterward, the checkmarks let you move freely between steps.
Design
Choose a template — there are currently three mechanics:
- Quiz — one question with answer options, followed by email entry. Every answer automatically becomes a Klaviyo segment (more on that below).
- Spin to win — spin the wheel, reveal the prize, enter an email address.
- Scratch off — scratch to reveal the prize, enter an email address.
Then adjust colors, the logo, and the image. A small trick for the Scratch off preview: If you have already scratched the area and want to reset it, switch between desktop and mobile view once.
Content
This is where you set the copy for every popup view: the opening screen, email entry, reward display — and the Floating Button (the small element at the edge of the page that lets visitors reopen the popup). Place it at the bottom left or bottom right, or turn it off entirely.
Reward
Use + New reward to create the offer. There are four types:
| Type (as labelled in the app) | Best for |
|---|---|
| Percentage | “10% off everything” — PopupLift creates the codes in Shopify |
| Fixed amount | “€10 off orders over €50” |
| Free shipping | Free delivery |
| Static code | A code that already exists in Shopify (for example, SUMMER15 for everyone). PopupLift only displays it; it never creates or deletes it |
Our recommendation: single-use codes (the first three types). Every visitor gets a personal code that cannot be shared, and the reports show exactly which popup lead generated which revenue. A Static code is the right choice when you intentionally want everyone to receive the same code; revenue attribution is less precise in that case. Note: The code must exist in Shopify — the app does not currently catch typos.
Below that is Code delivery — the fundamental choice:
- Right away in the popup: The code appears directly in the popup at the end. It always works and does not require email delivery.
- By email, after the opt-in is confirmed: The code arrives by email only after the visitor confirms their signup (double opt-in). Confirmation stops being a chore and becomes the key that unlocks the offer — while keeping your list clean. Requires a double-opt-in list and a flow that delivers the code — either our reward flow (next step) or your own flow using
{{ person.popuplift_offer }}(section 6).
Klaviyo list
Choose the list that receives new signups. For email delivery, it must use double opt-in. Whether you choose your existing list or one dedicated to the popup is a real decision; see section 5.
In email mode, also click Create reward flow in Klaviyo. PopupLift creates a ready-made flow with a branded code email in your Klaviyo account — as a draft, so nothing goes out on its own. Open the flow in Klaviyo, review it (and restyle it if you like), then set it to Live. The status lights in the builder show whether everything is ready: “Reward flow: Live ✓” and “Code variable: present ✓”. For details and the part of the email you must never delete, see The reward email.
If a yellow card appears here (“Another Klaviyo flow can send a second reward”), PopupLift has found one of your existing flows responding to the same list. Here is what to do: Popups and your existing welcome flow.
Triggers
When should the popup appear?
- Time on page — after X seconds on the page
- Scroll depth — after the visitor scrolls X% down the page
- Exit intent — when the visitor is about to leave (configured separately for desktop and mobile)
You can combine triggers — whichever occurs first wins. Frequency rules also control how often a visitor sees the popup at all, and ensure it does not return after they complete or dismiss it.
Targeting — and going live
Two switches must be set correctly at the end, and this is the most common stumbling block:
- Publish — publishes the current version of the popup.
- Campaign active — activates the campaign.
You need both. A published popup in an inactive campaign does not appear. If “the popup isn't showing,” check here first — then check the theme toggle from step 1.
Under Conditions, you can limit the popup to specific pages — product pages only, the home page only, or different popups for different areas of your shop.
4. Test without customers seeing anything
The builder preview shows how the popup looks, but a complete journey (signup, confirmation email, code, and flow) needs to be tested in the actual shop. Here is how to do that discreetly:
- Under Conditions in Targeting, enter a page that is not linked anywhere (an unpublished test page or your legal notice page).
- Publish + Campaign active.
- Open the page in an incognito window and complete the entire popup with a real email address of your own, all the way through to receiving the code.
- Remove (or adjust) the condition afterward and publish again.
5. List strategy: a separate popup list or your existing one?
This question matters as soon as you already have a welcome flow — otherwise, a popup visitor would receive two discounts: the personal popup code and your general welcome offer. There are two clean approaches:
Option A — a separate popup list (the fastest start). Create a new list in Klaviyo (for example, “Popup signups,” with double opt-in enabled) and select it in the builder. Your existing welcome flow remains completely untouched because it listens to the old list. There is no risk of breaking anything already in place.
If you want popup signups to receive your welcome series too, clone the existing flow in Klaviyo, select the new list as the trigger while cloning, and remove the coupon email from the clone (the reward flow already delivers the code). All other emails remain intact — you do not need to rebuild them.
There is one catch worth knowing: Your signups now live on two lists, so campaigns must go to both. The easiest solution is to create an “all newsletter signups” segment across both lists in Klaviyo and always send campaigns to that segment. Forget this, and you will collect popup leads who never hear from you again.
Option B — the same list plus a split (the cleanest long-term setup). All signups stay on one list, and a single condition in your existing welcome flow makes popup signups skip the coupon email. Follow the guide: Popups and your existing welcome flow.
Check what your welcome flow reacts to first: with Added to list, option A works reliably. If it runs on Added to segment, a condition applies instead of a membership — popup signups can then qualify despite the separate list, and you need option B.
Two Klaviyo facts can help you decide:
- The trigger of an existing flow cannot be changed later — not even by cloning if you want to switch from a list to an event. Cloning from one list to another works without a problem.
- Klaviyo does not support email attachments. Upload a PDF (such as a guide offered as a signup bonus) to Shopify under Content → Files and link to it with a button in the email — that is also the more reliable way to deliver it.
6. Custom flows and segments using PopupLift data
You do not have to use our standard email — any custom Klaviyo flow can react to PopupLift:
Path 1 — event trigger. The metric PopupLift Reward Released appears in your trigger selection once the reward flow has been created and fires whenever a code is released. Event variables exist only in a flow with that trigger:
| Variable | Content |
|---|---|
{{ event.code }} | the personal discount code |
{{ event.discount_url }} | one-click link that applies the code and opens the shop |
{{ event.reward_name }} | name of the offer |
{{ event.expires_at }} | expiration date of the code |
Path 2 — profile property, works in ANY flow. The code is also stored on the contact's Klaviyo profile. That lets you print it in a list-triggered flow too — for example in your own welcome series, without using our reward flow:
| Property | Content |
|---|---|
{{ person.popuplift_offer }} | the personal discount code |
{{ person.popuplift_offer_text }} | name of the offer |
Two things make this reliable:
- Put a short delay at the top of the flow (a few minutes). The property travels with the signup; an email that starts instantly can outrun the data.
- The property always holds the most recent code. For a welcome series that runs once, that is exactly right.
Event variables ({{ event.… }}) stay empty in a list-triggered flow — they only exist in the flow the event itself started. If you want both in one flow, use the event trigger.
The segments: for a quiz, every signup also stores the selected answer on the profile. PopupLift automatically turns these into one segment per answer option plus the “All popup leads” catch-all segment (everyone who received a code through a popup — signups from a popup without a reward are not included). You can tailor flows and campaigns by interest — for example, someone who answers “sensitive ears” can receive a different follow-up flow than someone looking for “waterproof jewelry.” Details: Quiz answers become Klaviyo segments.
7. Best practices
- One question is enough to start. Every additional question reduces the completion rate; every answer adds segment data. Begin with the one question whose answer you will actually use in your marketing. (Support for multiple consecutive questions is in development.)
- Do not rephrase answers after going live. A renamed answer starts a new segment; the old one stops growing. Check for typos beforehand.
- Use double opt-in where required. Delivering the code only after confirmation increases the confirmation rate because the click unlocks something of value.
- One offer, one message. If your footer form and popup promise the same thing (for example, 10% off), both can stay. Never run two competing popups side by side (such as a Klaviyo form and PopupLift).
- Set up the sending domain before using email delivery. Without a verified, activated domain of your own, confirmation and code emails land in spam — or never go out. When in doubt, start with “Code in popup.”
- Watch the first 48 hours. Are signups arriving under Leads? Under Analytics for each popup: Are enough visitors seeing it, and how many complete it? Measure first, then optimize.