Wheel of Fortune (spin to win)
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
- The visitor starts a spin in one of three ways (see Starting a spin): by submitting a form, by clicking a button or image, or by clicking the wheel.
- The wheel spins and lands on a segment chosen at random, using the segments' weights as odds.
- 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.
- 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, 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 element.
Segment automations
Each segment can run its own Widget automations 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 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 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).
- 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.