Skip to main content

Lucky Wheel

Lucky Wheel is a gamified prize draw - admins set up a wheel with prize slots, assign spin chances to chosen staff, and staff spin to win diamonds, cash, rewards, or badges.

What is it?โ€‹

Lucky Wheel is vimigo's engagement game. Where most vimigo rewards are rule-based (do X, earn Y), Lucky Wheel is random - the staff member presses "Spin", the wheel turns, and a prize is chosen by weighted probability. This makes it useful for campaigns where you want anticipation and novelty rather than just predictable payouts.

Each wheel has:

  • A name and a lifecycle (Draft โ†’ Active โ†’ Ended).
  • A set of prize slots - each slot has a prize type (no-reward / text voucher / vimiBank cash / Diamond / Badge / vimiReward item), a probability weight, a per-win quantity, and a stock cap ("Total").
  • A list of participants, each with an individual chance count (how many spins they're allowed).
  • Optionally, a Diamond Price - the cost in diamonds for a staff member to buy extra spins themselves.

Common use cases:

  • Sales Champion Draw - top 20 salespeople each get 5 spins, prizes are cash and diamonds.
  • Company Anniversary Spin - every employee gets 1 spin, prizes are vouchers and small cash rewards.
  • Attendance Perfect Month - staff with 100% attendance in March each get 3 spins on a special wheel.
  • Onboarding Welcome Wheel - new joiners get 1 spin on their first week.

Lucky Wheel runs as a separate service from the rest of vimigo - the wheel configuration and spin logic live in a dedicated microservice, while prizes (diamonds, cash, rewards, badges) are fulfilled by the core platform. You manage everything from a single dashboard; the split is invisible in day-to-day use.

Quick Startโ€‹

If you're running your first wheel, do these five things.

  1. Make sure the "Lucky Wheel" module is enabled for your company (contact vimigo support if the menu item is missing).
  2. Go to the Lucky Wheel dashboard and click "Create Wheel". Give it a name (e.g. April Sales Champion Wheel).
  3. Add at least 3โ€“5 prize slots - one must be "No Reward" to control win frequency. Set probability weights and stock caps.
  4. Add participants (your eligible staff) and set each person's "Chance" count.
  5. Click "Save" (the wheel is a Draft), then "Activate" to launch.

Once active, staff can spin from their vimigo app. Watch the spin history and top up reward stock if needed. When the campaign ends, click "End" to close it.

For Admins (Employer / HR / Manager)โ€‹

How to create a new wheelโ€‹

  1. Navigate to "Rewards" โ†’ "Lucky Wheel" in the vimigo admin.
  2. Click "Create Wheel".
  3. Enter "Wheel Name" (e.g. Q2 Top Performer Wheel).
  4. Optionally set "Diamond Price" - the diamond cost for staff to buy extra spins. Leave blank if only admin-granted spins are allowed.
  5. Under "Rewards", click "Add Reward" for each prize slot. For each:
    • Pick a "Type" (see Prize Types below).
    • Set the "Prize" value (text for coupons, wallet type for bank/diamond, badge/reward ID for badge/vimiReward).
    • Set "Probability" (higher = more likely).
    • Set "Quantity" (how much per win).
    • Set "Total" (stock cap - how many times this prize can ever be won).
  6. Under "Users", add participants and set each person's "Chance" count.
  7. Click "Save" - the wheel is a Draft.
  8. Review everything, then click "Activate" to launch.

Once Active, you cannot remove reward slots or change their types/probabilities. You can still top up reward stock and adjust user chances.

Prize types - the complete menuโ€‹

TypeWhat it isWhen to use
"No Reward"Blank slot - the user sees a "no win" resultEvery wheel should have at least one; controls overall win rate
"Text"A string displayed to the winner (e.g. a coupon code)Physical vouchers or manual-fulfilment prizes
"Bank"Cash credited to vimiBank (Bank A or Bank B)Monetary rewards that feed into payroll
"Diamond"Diamond credited to the user's walletIn-app currency - spendable in vimiRewards or buying more spins
"Badge"A vimiBadge awarded to the winnerRecognition without cost
"vimiReward"A specific item from the vimiRewards cataloguePhysical or digital reward from your catalogue

A general-purpose wheel usually works best with something like:

SlotTypeProbability weight
No PrizeNo Reward50
Small PrizeDiamond (5 diamonds)25
Medium PrizeDiamond (20 diamonds)15
Big PrizeBank A (RM 50)8
JackpotBank A (RM 200)2

This gives each staff member a 50% chance of winning something, with big prizes rare but achievable. The probability numbers are relative weights, not absolute percentages - if you have three slots with weights 50, 30, 20, the effective chances are 50%, 30%, 20% of the total. If a slot runs out of stock, its effective weight drops to zero and the remaining slots redistribute.

Warning: Before launching a wheel with "Bank" or "Diamond" prizes, check that your company's Principal balance is large enough to cover the expected wins. The system doesn't pre-reserve funds; it deducts at spin time. If the principal runs out mid-campaign, prize deliveries fail silently and the employee sees a "Reward Lucky Wheel Unsuccessful" notification.

How to grant extra spins to staffโ€‹

Scenario: You want to give your top 3 performers an extra 5 spins each on the current wheel.

  1. Open the active wheel.
  2. Click "Edit Users" (or the equivalent user list action).
  3. For each of the 3 staff, increase their "Chance" value.
  4. Save.

Important: When saving user changes on an Active wheel, you must include ALL existing participants in the save - you can't send only the changed ones. If you omit someone who was already on the wheel, the save fails.

How to top up reward stock on an active wheelโ€‹

When a popular prize runs low, top it up without ending the wheel.

  1. Open the active wheel.
  2. Click "Edit" or open the rewards section.
  3. Update the "Total" value for the reward you want to top up.
  4. Save.

The system recalculates available stock as new_total โˆ’ already_given_out. Example: a reward started with Total = 100 and 20 have been given out (available = 80). If you raise Total to 150, new available = 130.

You cannot reduce Total below the number already given out.

How to enable diamond purchase for extra spinsโ€‹

If you want staff to be able to buy their own extra spins using their diamond balance:

  1. On the wheel's create or edit form, find "Diamond Price".
  2. Enter the cost per spin (e.g. 12 diamonds).
  3. Save.

Staff see a "Buy Spins" option and can purchase extra chances by spending their diamond balance. The cost per transaction is diamond_price ร— quantity. To disable purchase later, clear the field and save.

How to end a wheelโ€‹

  1. Open the active wheel.
  2. Click "End" (or "Update Status" โ†’ select Ended).
  3. Confirm.

Ended wheels are final - no more spins, no more updates, no reactivation. Any unused chances the participants had are forfeit. View the final "Spin History" to see all winners.

How to view spin historyโ€‹

  1. Open any wheel (Active or Ended).
  2. Click the "Spin History" tab.
  3. The list shows who spun, what they won, and when.
  4. Export or report as needed for accounting (bank payouts), HR records (diamond/badge awards), or campaign review.

How to delete a draft wheelโ€‹

Only Draft wheels can be deleted. Active or Ended wheels are permanent records.

  1. Open the Draft wheel.
  2. Click "Delete".
  3. Confirm.

For Employeesโ€‹

How to spin the wheelโ€‹

  1. Log in to the vimigo app.
  2. Navigate to "Lucky Wheel" in the Rewards section.
  3. You'll see wheels you've been added to and your current spin count for each.
  4. Tap "Spin" on a wheel where you have chances remaining.
  5. Watch the wheel animate. The prize reveals when it stops.
  6. If you won a prize, it's delivered to the right place automatically within a few moments - diamonds to your diamond wallet, cash to vimiBank, a badge to your profile, a reward item to your vimiRewards inventory.

How to check your spin countโ€‹

Your current spin count shows on each wheel card. When it reaches 0, the "Spin" button is disabled.

How to buy extra spins with diamondsโ€‹

If the admin has enabled diamond purchase on the wheel:

  1. Tap "Buy Spins" (or "Purchase Chances").
  2. Enter the number of spins you want.
  3. The total cost shows: diamond_price_per_spin ร— quantity.
  4. Confirm. Your diamond balance is deducted and your spin count increases.

How to view your prize historyโ€‹

Navigate to "My Prizes" or the wheel's transaction history to see everything you've won. Each entry shows the prize type, the amount, and the date.

Settings & Configurationโ€‹

SettingWhat it doesDefaultWhere
Lucky Wheel moduleMaster switchOff (needs enabling)Contact vimigo support
"Wheel Name"Campaign name shown to staffRequiredWheel create/edit form
"Diamond Price"Diamond cost per extra spin; blank = no purchaseBlankWheel create/edit form
"Probability" per slotRelative selection weight (not an absolute %)RequiredPer-reward configuration
"Total" per slotStock cap - max times this prize can be wonRequiredPer-reward configuration
"Chance" per userNumber of spins allowed for this person on this wheelRequired (โ‰ฅ 1 on create)Per-user configuration

Wheel statusesโ€‹

StatusMeaning
"Draft"Setup mode - can edit everything; staff cannot spin
"Active"Live - staff can spin; only stock and user chances can still be updated
"Ended"Closed - no further spins or edits; read-only

Prize value vs probability - suggested rangesโ€‹

Prize valueSuggested probability weight
Very small (e.g. 5 diamonds)20โ€“40
Small (e.g. 20 diamonds, RM 5)10โ€“20
Medium (e.g. 50 diamonds, RM 20)5โ€“10
Large (e.g. RM 100 bank)2โ€“5
Jackpot (e.g. RM 500, premium item)0.5โ€“1

FAQโ€‹

Q: The Lucky Wheel menu item isn't showing for our company.

A: The module_lucky feature flag isn't enabled. Contact your vimigo admin or support to turn it on.

Q: A staff member gets "You are not a participant" when they try to spin.

A: Their user ID isn't in the wheel's participant list. Edit the wheel and add them with "Chance" โ‰ฅ 1.

Q: A staff member gets "You used all your chance(s)".

A: Their spin count is 0. Either update the wheel to give them more chances, or - if you've set a "Diamond Price" - let them buy more spins with their diamond balance.

Q: An employee won a diamond or cash prize but it didn't appear in their wallet. What happened?

A: Delivery probably failed. The most common cause is an insufficient Principal balance - diamonds and bank prizes are paid from the company's Principal account. The employee should have received a "Reward Lucky Wheel Unsuccessful" notification. Top up the Principal and contact vimigo support to re-issue.

Q: Can I undo a spin?

A: Not through the UI. Spins are final once made. If something has gone clearly wrong (e.g. delivery failure, a wrongful participant), contact vimigo support with the transaction ID from spin history.

Q: Can I decrease a reward's Total below what's already been won?

A: No. If 20 prizes have been given out, you cannot set Total below 20. You can effectively freeze a prize by setting Total equal to the already-given-out count.

Q: Can I change a reward's type after the wheel is Active?

A: No. Once Active, you can only change the "Total" stock on existing rewards. Type, prize, probability, and quantity are locked. Plan carefully before activating.

Q: What happens to unused spin chances when I end a wheel?

A: They expire. Staff can't spin an Ended wheel, and leftover chances have no value.

Q: Can the same staff member be on multiple active wheels at once?

A: Yes. A staff member can be a participant on any number of wheels simultaneously, and their chances are tracked separately for each.

Q: Do staff see the prize slots and their probabilities?

A: Wheel details (including prize types, values, and probability weights) are returned to the employee app - whether the UI chooses to display probabilities openly is configurable per deployment. Most companies show the prizes visibly but keep the exact probability weights internal so the wheel retains surprise.

Q: What happens if the Principal balance runs out mid-campaign?

A: The spin still records a transaction and the user's chance is still consumed, but the prize delivery fails silently. The employee gets a "Reward Lucky Wheel Unsuccessful" notification. Top up the Principal and re-issue affected prizes manually.

  • Diamond - diamond prizes come from the company Principal; buying extra spins spends from the staff wallet
  • vimiBank - bank-cash prizes create commission payout records (Team Payouts A or B)
  • vimiRewards - vimiReward prize slots dispense catalogue items to winners
  • vimiBadge - badge prizes award vimigo badges automatically
  • vimiChallenge - Challenge winners often get wheel tickets.