Spin the Wheel
Capture emails by offering visitors a chance to win discounts
Is this for me?
You run a Shopify store, you'd like more email subscribers, and you've noticed first-time visitors leave without buying. Spin the Wheel turns your discount opt-in into a game: visitors enter their email, spin a prize wheel, and walk away with a discount code. They feel like they won something. You get an email and a more motivated shopper.
It's a stronger hook than a plain "10% off, sign up" banner because the game element raises participation. The trade-off: every visitor who spins wins a coupon, so you're essentially giving a discount to everyone who hands over an email. If your margins can't absorb that, this app isn't for you.
Before you start: Every spin lands on a winning slice. The "losing" slices exist to make the wheel feel like real chance, but no visitor actually loses. Set your coupon values accordingly.
Key Features
Interactive prize wheel with up to 12 slices
The wheel ships with 12 slices that alternate between coupon and "no luck" labels. You decide what each slice says, which ones are winners, and what discount code goes with each. Every spin lands on a winner, so the experience always feels positive.
Automatic discount code creation in Shopify
When you name a coupon slice with a code like 20OFF or 50OFF , Vitals creates the matching percentage discount in your Shopify discounts for you. Codes must follow the pattern of a number from 1 to 99 followed by OFF (so 10OFF , 25OFF , 50OFF ). Each generated discount applies to all products, can be used once per customer, and combines with shipping discounts.
Multiple ways to trigger the wheel
You can have the wheel open on its own (after a delay, on exit intent, or on scroll up), or only when a visitor clicks a small floating banner. Mix triggers to suit your store.
When to use which: Use a timed or exit-intent trigger if you want maximum email captures. Use the manual trigger banner alone if you'd rather not interrupt browsing — visitors who want a discount will click it themselves. Combine both if you want the pop-up to appear once, then leave the banner available for visitors who dismissed it.
Floating coupon code after winning
After a visitor wins and closes the wheel, the discount code can stick around in a small floating box for the rest of their session. It's a reminder to apply the code at checkout, and they can copy it again with one click.
Email capture synced to Shopify Customers
Every email entered into the wheel is added to your Shopify Customers list. If you turn on the email marketing consent checkbox and the visitor ticks it, they're also tagged as "Email Marketing Subscribed" in Shopify and ready for your email campaigns.
GDPR consent flow
For visitors in EU countries, you can require a Privacy Policy checkbox before they can spin. The consent text supports a {{ privacy_policy }} variable that auto-links to a URL you set.
Bot protection
Turn on the CAPTCHA filter to validate real visitors before submitting the form. Useful if you start seeing junk emails in your customer list.
13 color themes and full translations
Pick from 13 ready-made themes (Blue, Cyan, Green, Orange, Pink, Violet, Black, Royal Blue, Yellow, Candy, Ocean Blue, Nude, Halloween) or fine-tune individual colors. Every customer-facing text — welcome title, button labels, error messages — can be translated. Default translations ship for English, Dutch, German, Spanish, French, Italian, Russian, Japanese, Chinese (Simplified and Traditional), Danish, Romanian, Arabic, Portuguese, Norwegian, and Swedish.
How It Works
What the visitor sees
The wheel appears as a centered pop-up on your home page, product pages, and collection pages. The page dims behind it and the wheel slides in.
- The visitor types their email (and, if required, ticks the Privacy Policy and marketing consent checkboxes).
- They click the call-to-action button to spin.
- The wheel spins for a few seconds and lands on a winning slice.
- The discount code appears in a copyable field. Clicking Copy & Use Discount copies it to the clipboard.
- After they close the wheel, a small floating coupon box can stay on screen as a reminder.
By default, the same visitor won't see the wheel again for 30 days after they've seen it once.
What you configure in the Vitals dashboard
From the Spin the Wheel app inside Vitals you can:
- Pick a color theme or customize individual colors
- Edit each slice's label and discount code
- Choose which triggers fire (delay, exit intent, scroll up, manual banner)
- Set device targeting (desktop, mobile, or both) and the cooldown period
- Toggle GDPR consent, marketing consent, and CAPTCHA
- Edit every translation string
When you turn a slice into a coupon slice, the discount is created in Shopify automatically. When you turn a winning slice into a losing one, the matching code is removed.
Setup, Step by Step
- Open Vitals and enable the Spin the Wheel app.
- Open the wheel's settings and pick a color theme that matches your brand.
-
Edit the 12 slices. For each coupon slice, set its visible label (e.g., "20% off") and a discount code in the number + OFF format (e.g.,
20OFF). The discounts are created in your Shopify discounts automatically.Alternatively, you can manually create the discount codes in your Shopify Admin -> Discounts section, and then place them in the slices.
- Decide how visitors should see the wheel:
- Turn on Enable After for a timed pop-up
- Turn on Show the Wheel when the customer's intent is to leave the page for exit-intent
- Turn on Enable Manual Trigger for a clickable floating banner
- Set Block days so returning visitors aren't shown the wheel too often (default is 30 days).
- If you serve EU shoppers, turn on Request consent from European customers and fill in your Privacy Policy URL.
- If you want subscribers added to your email marketing list, turn on Collect email marketing consent.
- (Optional) Turn on Enable bot filter (CAPTCHA) if you start seeing spam emails.
- Tweak any customer-facing text and translations under the wording settings.
- Save and open your storefront to confirm the wheel appears the way you want.
Tips for Getting the Most Out of It
- Make every prize feel worth winning. Since every spin wins, even your "smallest" prize is a discount you're handing out. Don't set a 5% slice and an 80% slice on the same wheel — visitors who get 5% will feel cheated when they realize friends got more.
- Match the wheel to your brand. The 13 themes are a starting point. Fine-tune the background, button, and text colors so the pop-up doesn't look like a generic plugin pasted onto your store.
- Test on mobile. Most Shopify traffic is mobile. Spin the wheel on your phone before you launch — check that the pop-up isn't cut off and the email field is easy to tap.
- Be honest in the copy. "You have a chance to win" is fine even though everyone wins, but don't promise prizes you won't honor (like "free product" if you don't actually issue one). Returning shoppers will notice.
- Don't pile on triggers. A delayed pop-up plus exit intent plus manual trigger is overkill. Pick the trigger that fits your store and leave the others off — interruptions kill conversion.
- Watch your discount stacking. Generated codes combine with shipping discounts, but check whether they collide with any other promotions you're running so customers don't get unexpected stacked savings (or unexpected failures at checkout).
Frequently Asked Questions
Do customers always win a discount?
Yes. The wheel always lands on a coupon slice you've configured, so every visitor who spins gets a discount code. The "losing" slices are visual only — they're never the actual outcome.
How are the discount codes created?
When you set up a coupon slice, Vitals automatically creates a matching percentage discount in your Shopify store. The code must follow the number + OFF pattern (15OFF creates a 15% discount). Each code can be used once per customer and applies to all products.
Where does the wheel show up?
On your home page, product pages, and collection pages. It does not appear on the cart, checkout, or other pages.
Can I show the wheel only on mobile, or only on desktop?
Yes. Under Device, pick "Desktop and Mobile", "Desktop", or "Mobile".
How often will the same visitor see the wheel?
By default, not again for 30 days after they've seen it once. Change this under Block days — lower for more frequent show, higher for less.
What happens to the emails I capture?
They're added to your Shopify Customers list. If Collect email marketing consent is on and the visitor ticks the marketing checkbox, they're also tagged as "Email Marketing Subscribed" so you can include them in email campaigns.
Does Spin the Wheel support GDPR?
Yes. Turn on Request consent from European customers to show a Privacy Policy checkbox to EU visitors. They must tick it before they can spin. You can also set a custom Privacy Policy URL for the consent link.
Can I translate the wheel?
Yes. Every customer-facing string — welcome title, button labels, error messages, slice text — can be translated. Default translations ship for English, German, French, Spanish, Italian, Portuguese, Dutch, Russian, Japanese, Chinese, Arabic, and several Nordic languages.
Why isn't the wheel showing on my store?
Check the basics: the app is enabled, you're on the home/product/collection page, and you haven't already been shown the wheel within your Block days window. Also confirm at least one slice is set as a coupon (winning) slice and that your device targeting matches the device you're testing on. If you're using the Manual Trigger, the wheel only opens when you click the floating banner.
What's the difference between the automatic pop-up and the Manual Trigger?
The automatic pop-up opens on its own based on your trigger settings (delay, exit intent, scroll up). The Manual Trigger is a small icon that sits on the side of the page and opens the wheel only when a visitor clicks it. It's good for shoppers who closed the pop-up but want a second chance. When the Manual Trigger is on, the "After seconds" delay is ignored.
How does the CAPTCHA option work?
When Enable bot filter (CAPTCHA) is on, Vitals validates each submission with a CAPTCHA check before adding the email to your customer list. It filters out automated bots.
Can I change the colors or theme?
Yes. Pick from 13 ready-made themes (Blue, Cyan, Green, Orange, Pink, Violet, Black, Royal Blue, Yellow, Candy, Ocean Blue, Nude, Halloween), or fine-tune individual colors — background, button, text, and rules text — with the dedicated color settings.
Settings Reference
Display & Targeting
| Setting | Type | Description |
|---|---|---|
| Device | Dropdown | Where the wheel appears: Desktop and Mobile, Desktop, or Mobile. |
| Show the Wheel when the customer's intent is to leave the page | On/Off toggle | Trigger on exit intent — mouse-out on desktop, scroll-up on mobile. |
| Enable After | On/Off toggle | Turn on the timed trigger. Ignored if Manual Trigger is on. |
| After seconds | Number field | Seconds to wait after page load before showing the wheel. |
| Show on scroll up | On/Off toggle | Show the wheel when desktop visitors scroll up. |
| Enable Manual Trigger | On/Off toggle | Show a floating banner that opens the wheel when clicked. Overrides the timed trigger. |
| Block days | Number field | Days before the same visitor can see the wheel again (default 30). |
| Distance from top (pixels) | Number field | How far down the Manual Trigger banner sits from the top of the page. |
Appearance
| Setting | Type | Description |
|---|---|---|
| Spin the Wheel Theme | Dropdown | Color theme for the wheel (13 options). |
| Manual Trigger Theme | Dropdown | Color theme for the manual trigger banner. |
| Background Color | Color picker | Background of the wheel pop-up. |
| Call To Action Button Color | Color picker | Main button background. |
| Call To Action Text Color | Color picker | Main button text. |
| Welcome title color | Color picker | Title at the top of the wheel. |
| Welcome message color | Color picker | Subtext under the title. |
| Close button text color | Color picker | "Not today" link. |
| Rules text color | Color picker | Rules and consent text below the form. |
Coupon & Countdown
| Setting | Type | Description |
|---|---|---|
| Countdown timer | Number field | Minutes the coupon countdown runs after winning (default 10). |
| Keep the discount code on screen after closing the wheel | On/Off toggle | Show a small floating coupon box after the visitor closes the wheel. |
Email Capture & Consent
| Setting | Type | Description |
|---|---|---|
| Email Placeholder | Text field | Placeholder text inside the email input. |
| Request consent from European customers | On/Off toggle | Show a Privacy Policy checkbox to EU visitors. They must tick it to spin. |
| Privacy Policy URL | Text field | URL the consent text links to. Defaults to your store domain if blank. |
| Privacy Policy Acceptance | Text field | Consent line wording. Leave {{ privacy_policy }} in place — it links to your policy. |
| Collect email marketing consent | On/Off toggle | Add a marketing-consent checkbox. Visitors who tick it are flagged as Email Marketing Subscribed in Shopify. |
| Text | Text field | Wording on the marketing consent checkbox (default: "Email me with news and offers"). |
| Enable bot filter (CAPTCHA) | On/Off toggle | Validate each submission with CAPTCHA to filter bots. |
Wheel Text & Translations
Each text string supports translations into every language your Vitals store has enabled. The settings include the welcome title, welcome message, call-to-action button, close button, email placeholder, rules text, success screen text, countdown label, and all error messages (invalid email, email already used, consent missing).