Skip to main content

How to use bulk CSV upload for the Spin the Wheel popup and game

Learn how to upload prizes and unique coupon codes in bulk using a CSV file for the Spin the Wheel popup and game widget.

Written by Karan Bhakuni

How to use bulk CSV upload for the Spin the Wheel popup and game

Bulk CSV upload lets you add many Spin the Wheel prizes and coupon codes at once. Instead of creating each prize manually, you can upload one CSV file with your prize names, coupon codes, colors, winning chances, and win/loss settings.

Sample CSV

Use this format for your CSV file:

prize_name,unique_code,prize_bg_color (hex),prize_text_color (hex),weightage (number),is_win

10% OFF,WELCOME10-A1,#F14A16,#FFFFFF,8,true

10% OFF,WELCOME10-A2,#F14A16,#FFFFFF,8,true

10% OFF,WELCOME10-A3,#F14A16,#FFFFFF,8,true

FREE SHIPPING,FREESHIP-A1,#2563EB,#FFFFFF,4,true

FREE SHIPPING,FREESHIP-A2,#2563EB,#FFFFFF,4,true

FREE GIFT,GIFT-A1,#0B0B0B,#FFFFFF,2,true

TRY AGAIN,,#FFFFFF,#111827,5,false

BETTER LUCK NEXT TIME,,#F4F4F5,#111827,3,false

What each column means

prize_name

The name shown on the wheel slice, such as “10% OFF” or “TRY AGAIN”.

unique_code

The coupon code given to the visitor. This is required for winning prizes. Leave it empty for losing prizes.

prize_bg_color (hex)

The background color of the wheel slice.

prize_text_color (hex)

The text color of the wheel slice.

weightage (number)

The chance weight for that prize. A higher number means the prize is more likely to be selected.

is_win

Use true for winning prizes and false for losing prizes.

Step 1: Create or edit your Spin the Wheel widget

Open your Spin the Wheel popup or Spin the Wheel game in the editor.

or

Step 2: Save the widget first

Before uploading the CSV file, save the widget once.

This is important because the CSV prizes need to be connected to a saved widget. If the widget is not saved yet, the upload cannot safely store the prizes and coupon codes.

for popup -

for game -

Step 3: Switch from Manual mode to Bulk CSV mode

In the prize settings area, choose Bulk CSV mode.

In Manual mode, you can add prizes one by one. In Bulk CSV mode, you can upload a CSV file and let the system create the wheel slices for you.

for popup -

for game -

Step 4: Download or prepare the sample CSV

Use the sample CSV format shown in the editor.

You can download the sample CSV, update the prize names, coupon codes, colors, weightage, and win/loss values, then upload it.

Step 5: Upload the CSV file

Click the CSV upload option and select your completed CSV file.

After upload, the system reads the CSV and groups rows with the same prize_name into one visual wheel slice. For example, if you add 500 rows for “10% OFF”, the wheel still shows one “10% OFF” slice, but stores all 500 unique codes in the background.

Step 6: Check the auto-rendered wheel preview

After the upload is complete, the wheel preview updates automatically.

You should see the uploaded prize names, colors, and chances reflected in the preview. Winning prizes may show a placeholder code in the editor, but real visitors will receive actual unique coupon codes from your uploaded CSV.

for game -

for popup -

Step 7: Save the widget again

After confirming the uploaded prizes look correct, save the widget again.

for popup -

for game -

How winning and losing prizes work

Winning prizes should have:

- is_win set to true

- a valid unique_code

Losing prizes should have:

- is_win set to false

- an empty unique_code

Example losing row:

TRY AGAIN,,#FFFFFF,#111827,5,false

When a visitor lands on a losing slice, no coupon code is shown.

How unique coupon codes are handled

Each uploaded coupon code is stored safely and marked as unused.

When a visitor wins a prize, the system assigns one unused code for that prize and marks it as used. Once a code has been assigned, it will not be given to another visitor again.

If multiple visitors spin at the same time, the system still protects the coupon pool so the same code is not assigned twice.

What happens if a code is not available?

If the selected winning prize has no unused codes left, the visitor will not receive a fake or duplicate coupon.

Instead, the widget handles it safely and treats the result as unavailable, so the visitor is not shown the editor placeholder or an already-used code.

This protects your real coupon codes and avoids duplicate coupon distribution.

Brief implementation details

The Bulk CSV feature works in three main parts:

1. CSV upload in the editor

The editor sends the uploaded CSV file to the backend.

2. Backend storage

The backend reads the CSV, groups rows by prize_name, creates the visual wheel prizes, and stores each unique coupon code separately.

3. Live visitor spin

When a visitor spins the wheel, the widget asks the backend for one unused code for the selected prize. The backend marks that code as used before returning it, so the same coupon cannot be reused by another visitor.

The widget also waits for the real coupon code before showing the final result, so visitors do not see temporary editor placeholders.

Best practices

- Always save the widget before uploading a CSV.

- Use unique coupon codes for winning prizes.

- Leave unique_code empty for losing prizes.

- Use is_win=false for “Try again”, “Sorry”, or “Better luck next time” slices.

- Keep the CSV column names exactly as shown in the sample.

- Upload a fresh CSV if you want to replace or refresh the prize pool.

Did this answer your question?