---
title: Wheel of Fortune (spin to win)
slug: wheel-of-fortune
description: How the Wheel of Fortune works in Personizely: segments and weighted odds, outcomes, email-gated spins, locking and frequency for spin-to-win popups.
docTags: 
createdAt: 2026-10-16T20:18:42.004Z
---

The Wheel of Fortune element turns a widget into a spin-to-win game. The visitor spins a prize wheel, often after entering their email, and the segment it lands on decides what happens next: show a discount code, try again, or show a "better luck next time" message. You set the prizes, their odds and what each outcome does.

**Available on:** all platforms. Unique discount codes for prizes: Shopify.

## How it works

1. **The visitor starts a spin** in one of three ways (see [Starting a spin](docId\:JcWZSU62Aey_O6TOlpQah)): by submitting a form, by clicking a button or image, or by clicking the wheel.
2. **The wheel spins and lands on a segment** chosen at random, using the segments' weights as odds.
3. **After the result delay**, the landed segment's automations run, a spin is recorded with the segment's label, and its **Outcome** runs: nothing, spin again, or an action such as going to that prize's step.
4. **The wheel locks.** Unless the outcome was **Spin again**, the wheel can't be spun again during that page view.

The easiest start is the **Wheel** template: it builds a spin step, one reward step per prize with a [Coupon and discount codes](docId\:QXkBRk16fS8GFWjEqbW2q), a shared "No luck" step and a "Try again" segment, with or without an email form.

## Segments and odds

Each segment has a label, colors, a **Weight**, an **Outcome** and its own **Automations**. A wheel needs at least 2 segments; new wheels have 6.

**Weight** is the segment's relative chance of being landed on. The chance of a segment is its weight divided by the sum of all weights:

| Segment       | Weight | Chance        |
| ------------- | ------ | ------------- |
| 10% OFF       | 10     | 10 / 50 = 20% |
| No prize      | 25     | 50%           |
| Free shipping | 5      | 10%           |
| Try again     | 10     | 20%           |

- A weight of **0** means the segment is never landed on.
- If every weight is 0, all segments have equal odds.
- Segment size on the wheel is always equal. Odds come from weights only, so a segment's size says nothing about its chance.

### Outcomes

| Outcome        | What happens                                                                                                         | Wheel afterwards |
| -------------- | -------------------------------------------------------------------------------------------------------------------- | ---------------- |
| **None**       | Only the segment's automations run. The visitor stays on the current step                                            | Locked           |
| **Spin again** | Nothing else happens; the visitor can spin again                                                                     | Unlocked         |
| **Action**     | Runs **Go to step**, **Open URL** or **Close widget**, with optional **Conditional actions** based on visitor fields | Locked           |

Use **Action** → **Go to step** to show each prize on its own step, with the code in a [Coupon and discount codes](docId\:QXkBRk16fS8GFWjEqbW2q) element.

### Segment automations

Each segment can run its own [Widget automations](docId\:J2UM-jhfDgQFopQlTvf_l) when the wheel lands on it, such as **Track widget conversion**, **Track widget completion**, **Apply discount** (Shopify), **Send alert**, **Send webhook** or an email platform's tag or list action. This is how you tag winners differently from losers in Klaviyo, for example.

## Starting a spin

| Spin source            | How to set it up                                                                                            | Typical use                                 |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| **Form** (email-gated) | Put a [Form element](docId:_32XhaAm6KMwlL3_ZIH25) on the same step and set its action to **Spin the wheel** | Lead capture: no spin without a valid email |
| **Button or image**    | Set the element's action to **Spin the wheel**                                                              | A "SPIN" button below the wheel             |
| **The wheel itself**   | Nothing to set up; clicking the wheel spins it when no gating form is on the step                           | Fast, no-email games                        |

**Spin the wheel** is offered as an action only when the wheel is on the same step. With a gating form, clicking the wheel submits the form, so visitors can't skip it. The form records the lead on the first submit only: if the wheel lands on **Spin again**, the next spin doesn't create a second submission.

## Configuration

**Settings** tab:

| Option                       | What it does                                                                     | Values / default                               |
| ---------------------------- | -------------------------------------------------------------------------------- | ---------------------------------------------- |
| **Segments**                 | Add, edit, reorder and delete segments                                           | 6 segments to start, minimum 2                 |
| Segment: **Label**           | Text on the segment; also recorded with the spin and announced to screen readers | Required                                       |
| Segment: **Weight**          | Relative chance of landing on it                                                 | Number ≥ 0, default **10**                     |
| Segment: **Color**, **Text** | Segment fill and label colors                                                    | Alternating brand colors                       |
| Segment: **Outcome**         | What happens after landing                                                       | **None** (default), **Spin again**, **Action** |
| Segment: **Automations**     | Automations run when landing on it                                               | None by default                                |
| **Spin duration**            | How long the spin animation lasts                                                | 1,000–12,000 ms, default **6,000**             |
| **Result delay**             | Pause between the wheel stopping and the outcome                                 | 0–3,000 ms, default **800**                    |
| **Accessibility label**      | The wheel's name for screen readers                                              | "Spin the wheel"                               |

**Style** tab: **Size** (120–600 px, default 320 px, never wider than its container), style and position.

### Components

| Component   | Options                                                                                                                             |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| **Labels**  | Font, size, style, transform, letter spacing                                                                                        |
| **Rim**     | Color and width (0–25% of the wheel's radius)                                                                                       |
| **Dots**    | Color; can be turned off                                                                                                            |
| **Pointer** | Position **Top** or **Right**, color                                                                                                |
| **Hub**     | Type **Icon** (Gift, Star, Sparkles, Trophy), **Text** (for example "SPIN") or **None**; size, background, color; can be turned off |

## Frequency and fairness

The wheel locks only for the current page view. If the visitor reloads the page or comes back later, the widget can show again with a fresh wheel. Control repeat plays with the widget's rules:

- **Stop after converted.** Add a [Frequency rule](docId\:hmqkmmX7AxOR2P7e07VaF) rule that stops the widget once it's converted. With a gating form, the form's **Track widget conversion** counts every player. Without a form, add **Track widget conversion** to prize segments (the Wheel template does this).
- **Also stop losers.** Frequency can't react to **Track widget completion**, so for no-form wheels also stop the widget after it's been viewed once or closed.
- **One prize per customer.** Frequency is tracked per browser, so a visitor on another device or in a private window can play again. Use unique Shopify codes and set **Limit to one use per customer** on the Shopify discount.
- **Show only prizes you can award.** A segment with weight 0 is never landed on, so don't use it for an advertised prize. Many regions regulate games of chance in marketing; check local rules before advertising specific odds or prizes.

## Behavior details and limitations

- **Spins are recorded per landed segment.** Each spin is recorded with the segment's label, and you can react to it on your site with the `personizely:widget:spin` event. See [JavaScript API (window.ply)](docId\:d64TegyOiwNA2GFG1eXPm).
- **Buttons that spin don't record a click.** A button whose action is **Spin the wheel** and that has no automations doesn't count as a widget click; the spin is recorded instead.
- **Same-tab redirects wait.** If a segment's action is **Open URL** in the same tab, the redirect waits until the spin has been recorded.
- **Reduced motion.** Visitors whose device asks for reduced motion see the wheel jump straight to the result, with no spinning animation.
- **Screen readers** hear the landed segment's label when the wheel stops.
- **One wheel per step.** Spin actions on a step start the wheel on that step.

## Examples

- **Email-gated spin-to-win (classic):** Wheel template with form, prizes 10% OFF (weight 10), 5% OFF (15), Free shipping (10), No prize (20), Try again (5). Each prize goes to a step with a unique Shopify code and auto-apply. Frequency: stop after converted.
- **No-email game on mobile:** Wheel template without form in a popup with **Ergonomic** on; hub text "SPIN"; prize segments with **Track widget conversion**; Frequency: stop after 1 view.
- **Tag winners in your ESP:** on each prize segment, add your email platform's "add tag" automation with the prize name, so post-purchase flows know who won what.

## Related

- [Coupon and discount codes](docId\:QXkBRk16fS8GFWjEqbW2q)
- [Form element](docId:_32XhaAm6KMwlL3_ZIH25)
- [Frequency rule](docId\:hmqkmmX7AxOR2P7e07VaF)
- [Widget steps (multi-step widgets)](docId\:dK68ym_gsf5r4k-clqZcl)
- [Widget automations](docId\:J2UM-jhfDgQFopQlTvf_l)
- [Branding, templates and themes](docId\:tj8w-HDr8smpbtNyCh2lz)
