vimiRewards
vimiRewards is your company's in-app reward shop - admins stock the shelves, staff browse and redeem using their Diamond balance.
What is it?โ
vimiRewards is a built-in corporate reward catalogue. Your HR or admin team creates reward items (vouchers, gift cards, merchandise, experiences, extra leave days - anything you want to offer) and sets each one up with a stock quantity, a Diamond price, and a visibility setting. Staff then browse the shop in the vimigo app and either request a reward (for admin approval) or buy it outright with their diamonds.
Rewards are also the endpoint for several automatic flows in vimigo:
- A vimiGoal can pay out a reward automatically when someone hits their target.
- A vimiClass medal cycle can attach a reward to each medal.
- A Lucky Wheel prize slot can hold a reward item.
Whichever way a staff member gets a reward - admin-assigned, self-purchased with diamonds, goal-earned, class-earned, or Lucky Wheel-won - it lands in the same place: their "My Employee Reward" list, with a reward code ready to use.
A healthy vimiRewards setup usually runs a monthly rhythm - often called vimiRewards Day - where the boss refreshes the catalogue, promotes featured rewards, and encourages staff to spend what they've earned. This gives diamonds a reason to exist.
Quick Startโ
If your company has just enabled vimiRewards, do these five things first.
- Go to "Rewards" in the top navigation โ "My Company Rewards".
- Click "Create New Reward" and create one starter reward (e.g.
Grab Food RM50 Voucher, quantity20, Diamond price5000, visibility "Public"). - Set "Start Date" to today and "End Date" 3 months out.
- Click "Publish" so staff can see it immediately in "Shop for Rewards".
- Make sure Diamond is configured and some staff already have balances - without diamonds, the shop is unused.
After this, staff can browse the shop. Repeat for 3โ5 more rewards at different price points (a mix of small and big, RM values aligned with what your typical employee earns in diamonds per month). Plan your first vimiRewards Day for month-end to build the habit.
For Admins (Employer / HR / Manager)โ
How to create a reward from scratchโ
- Go to "Rewards" โ "Create New Reward".
- Fill in the form:
- "Business Name" - the provider (e.g.
Petronas) - "Reward Title" - what staff see (e.g.
Petronas Gift Card RM100) - "Upload Thumbnail Image" - a square thumbnail
- "Reward Banner Image" - a 355 ร 200 px banner for the detail view
- "Start Date" / "End Date" - when the reward is available
- "Discounted Price (RM)" - the display price
- "Original Price (RM)" - the retail value (for show-crossed-out effect)
- "Category" - pick from the dropdown (Food, Electronics, Travel, etc.)
- "Quantity" - total stock units available (e.g.
50) - "Reward Price (Diamond)" - how many diamonds to spend to self-purchase; leave blank for admin-assigned only
- "Visibility" - "Public" for the shop, "Private" for admin-only
- "Highlight" - a short 1-line summary
- "Location" - where the reward can be redeemed (online, a store, the office)
- "Description" - full details
- "Terms & Conditions" - usage rules
- "Business Name" - the provider (e.g.
- Click "Publish" to go live, or "Save as Draft" to finish later.
The new reward appears in the "Company Reward Published" list on the main rewards page.
Tip: Set Diamond prices that align with your typical monthly earn. If Ahmad earns ~300 diamonds a month from goals, keep your mid-tier rewards around 500โ1500 diamonds so he can redeem every 2โ4 months without feeling priced out.
How to assign a reward directly to staffโ
Scenario: You want to give Aisha a "Hari Raya Hamper" as recognition without making her spend diamonds.
- Open the reward's detail page via "My Company Rewards" โ click the reward title.
- Click "Assign vimiReward".
- Use the department filter and "Search by Name" to find Aisha.
- Click her photo to select her (or use "Select All" to assign to everyone filtered).
- Confirm the assignment.
Aisha gets a push notification, the reward appears in her "My Employee Reward" list with a reward code, and the stock quantity decreases.
How to approve or reject an employee's reward requestโ
When a reward has no Diamond price (request-only), staff submit requests that sit in your queue for review.
- Go to "Rewards" โ "Employee Requests" tab.
- Find pending requests in the table (columns: "Applied On", "Requested By", "Reward Title", "Quantity", "Availability", "Period", "Request Status", "Action").
- In the "Action" column, click "Approve" or "Reject".
- On approve: a reward code is generated and the staff member is notified.
- On reject: the staff member is notified (add a reason in the remark if your UI exposes one).
How to attach a reward to a vimiGoal payoutโ
Scenario: Staff who hit 100% of their Q1 sales goal should automatically get a RM500 Gift Card.
- Make sure the reward exists in vimiRewards with enough stock for the expected winners.
- Open the goal in vimiGoal settings.
- In the goal's reward tier section, choose "vimiReward" as the reward type.
- Select your
RM500 Gift Cardreward from the dropdown. - Set the completion threshold (e.g.
100%). - Save.
At the end of the goal period, qualifying staff automatically receive the reward - their "Acquired From" column shows goal_reward.
How to run the monthly vimiRewards Day ritualโ
vimiRewards Day is a recurring monthly anchor that gives your diamond economy a reason to run. A typical cadence:
- Week before: Check stock levels. Top up popular rewards. Add 1โ2 new items so the shop feels fresh.
- Day before: Send a company-wide announcement: "Tomorrow is vimiRewards Day - check your diamond balance and browse new items in the shop."
- The day itself: Pair it with Diamond awards (see Diamond Day in that guide). Award monthly performance diamonds first, then let staff spend.
- Week after: Review the "Employee Requests" queue and approve promptly - a long pending queue kills the momentum.
The exact date doesn't matter as long as it's consistent. Many companies pick the last Friday of each month or the pay day, so diamond recognition lines up with salary.
How to handle an expiring or expired rewardโ
Before expiry - extending the reward:
- Open the reward and click the edit pencil.
- Change "End Date" to a future date.
- Update "Quantity" if more stock is needed.
- Click "Update" or "Publish".
After expiry - reactivating:
- The reward appears in the list with status "Expired".
- Staff who already redeemed it keep their codes (but those may also be expired per the reward's terms).
- To bring it back, edit "End Date" to a future date and publish again.
Pending requests for an expired reward are automatically cancelled.
How to restrict who can transfer rewards between staffโ
If you allow staff-to-staff reward transfers but want to exclude certain people, use the "Restrict Reward Transfer" option on the rewards index page. Add the users who should NOT be allowed to transfer, and save.
For Employeesโ
How to browse the reward shopโ
- Tap "Rewards" in the app.
- You land on "Shop for Rewards" - a grid of reward cards.
- Each card shows a thumbnail, the reward title, and the validity period.
- Use "Sort" (newest / oldest / popular) and "Search" to narrow down.
- Tap a card to see the full details: description, highlights, terms, location, and pricing.
How to buy a reward with diamondsโ
- Open the reward card.
- Check the "Reward Price (Diamond)" and confirm your balance is enough (your balance is shown in your profile).
- Tap "Purchase" - diamonds are deducted immediately.
- On success, your reward code appears and the reward is added to "My Employee Reward".
- If you don't have enough diamonds, you'll see an insufficient-balance notification.
How to request a reward (no Diamond price)โ
Some rewards are request-only - no diamonds charged, but admin approval required.
- Tap the reward card.
- Check availability (stock > 0).
- Tap "Request".
- Your request appears as "Pending" in your request history.
- Wait for admin approval. You'll get a push notification when it's approved or rejected.
How to use your rewardโ
- Go to "Rewards" โ "My Employee Reward".
- Find the reward you want to redeem.
- Tap "View Code" (or similar) to reveal the redemption code.
- For online vouchers: copy the code and paste it at the vendor's checkout.
- For physical rewards: show the code to the venue staff or the admin handling redemption.
How to see where your rewards came fromโ
In "Rewards" โ "History", the "Acquired From" column tells you the source:
admin_assign- your admin pushed it to youself_request- you requested it from the shopdiamond_purchase- you bought it with diamondsgoal_reward- you earned it from a vimiGoalclass_reward- you earned it from a vimiClass medallucky_wheel- you won it from Lucky Wheel
Settings & Configurationโ
| Setting | What it does | Default | Where |
|---|---|---|---|
| vimiRewards module | Master switch | On | Company module settings |
| "Visibility" | "Public" = in the staff shop; "Private" = admin-assign only | Private | Reward edit form |
| "Reward Price (Diamond)" | Diamond cost for self-purchase; blank = admin-assign or approval-only | Blank | Reward edit form |
| "Quantity" | Total stock units (1 โ 999,999) | Required | Reward create/edit form |
| "Start Date" / "End Date" | Validity window; auto-expires after End Date | Required | Reward create/edit form |
| "Restrict Reward Transfer" | Block specific staff from transferring rewards | Empty | "My Company Rewards" โ "Restrict Reward Transfer" |
| vimiClass reward integration | Attach rewards to medal tiers | On | Enabled by default; configured in vimiClass |
FAQโ
Q: Why can't my staff see a reward I just created?
A: Two common causes: (1) "Visibility" is set to "Private" - change to "Public" so it shows in the staff shop. (2) The reward is still a Draft - use the "Company Reward Draft" toggle to find drafts and publish them.
Q: A staff member has enough diamonds but can't buy a reward. Why?
A: Check: (1) The reward has "Reward Price (Diamond)" set (not blank). (2) It's Active, not Expired or Deleted. (3) It has stock > 0 in the "Availability" column. (4) "Visibility" is "Public".
Q: The "Availability" shows 0 - is the reward out of stock?
A: Yes. Edit the reward and increase "Quantity", then save. All existing redemptions (including pending requests) stay intact.
Q: I deleted a reward but staff still have it in their inventory. Why?
A: Deletion is a soft-delete - it removes the reward from the admin list and invalidates new codes, but it does not revoke rewards already in staff inventories. If you need to revoke, unassign before deleting.
Q: A pending request has been sitting there for weeks. What happened?
A: Admin has to manually approve or reject requests - there's no auto-approval. Go to "Employee Requests", find the pending row, check that the reward is still active and in stock, and click "Approve" or "Reject".
Q: Why is a reward showing "processing" and blocking my edits?
A: When you assign a reward to many staff at once, the system runs async jobs. The "processing" flag protects against race conditions. Wait a few minutes for the jobs to finish, then the flag clears.
Q: Can staff transfer rewards to each other?
A: Yes, unless you've restricted them via "Restrict Reward Transfer". Staff-to-staff transfers move the reward (and code) from one inventory to another.
Q: Can I run a rewards catalogue without using Diamonds?
A: Yes - leave "Reward Price (Diamond)" blank on every reward and use request-and-approval only, or admin-direct-assign. You won't need the Diamond module at all. But most companies find the diamond economy is what drives engagement with the shop.
Related Guidesโ
- Diamond - the currency staff spend in the shop
- vimiGoal - configure goals that pay out rewards automatically on completion
- vimiClass - attach rewards to medal cycles for class achievements
- Lucky Wheel - use rewards as prize slots in a prize wheel
- EWF - categorised welfare wallets; separate from the rewards shop but sometimes paired for goal payouts
- vimiBank - real-money commissions; paired with vimiRewards for blended monetary + product rewards
- vimiBadge - Some badges are pre-built into the rewards catalog.