Vi Run-Utsav

A modular game engine layer built inside the Vi app to drive engagement that the business teams can reuse for any future campaign, without touching the design.

00

Turning a utility app into a daily habit…

Vi's app had 200 million users. Most of them opened it once a month, recharged, and left. Cricket season was the window to change that.

The reality of a telco app.

The Vi app is a utility. People open it when they need to recharge, pay a bill, or check their data balance. That's it. They're not browsing. They're not exploring. They do what they came to do and they leave.

That's the nature of a telecom app. The product does exactly what it's supposed to do.

But from a business perspective, a user who opens your app once a month and leaves is a user you barely know. No daily signals. No behavioral data. No opportunity to build loyalty, cross-sell, or create any kind of relationship beyond the basic service.

The question Vi was sitting with: is there a moment, a context, where users might actually want to open the app more?

T20 cricket season was that moment.


The opportunity and the constraint nobody said out loud.

During T20 season, cricket is everywhere. It's in conversations, on screens, in every office and living room. The emotional energy is real and it's high. Vi had 200 million users sitting right in the middle of it.

The idea: build a cricket-themed campaign inside the app. Give users a reason to open it daily not to recharge, but to play.

It wasn't this straightforward.

The constraint that made this genuinely hard: the campaign couldn't get in the way of why people actually opened the app. A user who needed to recharge couldn't be blocked, distracted, or slowed down to get there. The solution had to be something the user opted into, not something you walked through to get to your balance.

And there was one more layer to this. The business didn't want just a campaign. They wanted a scalable engine, a foundation that any future campaign could run on top of, without a full design cycle each time.

WHAT I WAS DESIGNING

Not a campaign. A scalable engagement system that happened to launch during T20 season, with cricket as the context and IPL tickets as the prize. The campaign was the use case. The engine was the real deliverable.


The design challenge underneath it all.

Gamification was easy to get wrong in two directions.

Too forced: Users feel manipulated. The mechanics are obvious, the rewards feel hollow, and the whole thing reads as a desperate push notification in UI form. Users play once, collect whatever they can, and leave.

Too subtle: Nobody notices. The campaign launches, the entry rate is low, the business asks why the numbers aren't moving.

The sweet spot is a game that feels like it's rewarding you for things you were already going to do. Recharge your plan? That counts. Check your data? That counts too. The campaign wraps itself around existing behavior and doesn't demand new behavior.


Decision 1: The entry had to do emotional work first.

Before a user participates in anything, they need to feel something. Not informed but excited. The entry screen wasn't just a campaign landing page. It was designed to prime the user emotionally. It connected the energy of cricket season to the idea of winning, and then give them an easy, immediate first action.

Two things drove this: scarcity and identity. IPL tickets as the reward created genuine desire. And speaking in cricket's language; runs, wickets, innings made the campaign feel like it belonged to the same conversation users were already having, not a brand trying to borrow excitement from somewhere else.

The first tap had to cost almost nothing. Low friction at entry means more users actually start and users who start are more likely to build the habit.


Decision 2: Make everyday actions score-worthy.

This is the mechanism that separates a campaign from a habit loop.

Most engagement campaigns ask users to do something new like; answer a quiz, play a mini-game, share something. The drop-off comes fast because the new behavior has no momentum.

Vi Run Mahotsav was designed differently. Every action a user was already going to take like a recharge, a bill payment, checking their data usage was assigned a score. These became "runs" which moved the leaderboard.

WHY IT MATTERS

The leaderboard and progress bar do more work than the IPL ticket. Seeing yourself move from rank 340 to rank 210 is immediately satisfying. The ticket is the distant goal, the daily rank movement is the reason you come back tomorrow.


Decision 3: Layer the rewards so there's always something to win.

A single grand prize at the end of a campaign is a motivation trap. Users who fall behind early stop playing and there's no reason to keep going if the top prize feels out of reach.

The reward structure was built in two layers: micro and macro.

Micro rewards: small, frequent, immediate. Badge for your first check-in. Points milestone celebration. Streak acknowledgment. These land constantly and keep the feedback loop tight. Every session ends with something positive.

Macro rewards: IPL tickets, weekly draws, top-rank prizes. These are the aspirational goals that drive the bigger behavior of the plan renewals, the daily returns.

The combination means a user who will never win an IPL ticket still has a reason to play.


Decision 4: Build the engine, not just the campaign.

The brief was to not "design a cricket campaign" but a system that any future campaign can run on.

The game engine was built so that no single piece was load-bearing for the others.
What actions earn points > configurable.
How much they're worth > configurable.
What the prizes are > swappable
without touching the underlying logic. The campaign looks like a different theme entirely next time with the same skeleton underneath.

WHY THIS MATTERS

Most campaign UX is disposable; built for one moment, thrown away after. This engine is infrastructure. Every future engagement campaign Vi runs sits on top of what was designed here. The design cost is paid once. The value compounds.


After the launch.


What I took away from this.

The thing about gamification is that everyone thinks they understand it until they try to design it. Points and badges are easy. Genuine motivation is hard.

  1. What I learned on this project is that the best engagement design is invisible. Users shouldn't feel like they're being gamified, they should just feel like the app is suddenly more satisfying to use. The moment it feels like a manipulation, you've lost them

  2. Designing for scale from day one changes every decision. If I had designed a campaign, I would have made different choices, more specific, more tailored to cricket, more disposable. Designing an engine meant asking what stays constant across every future use case.

  3. This one even I didn't expect: the constraint was the creative input. Not being able to disrupt the utility experience forced every engagement decision to work with existing behavior rather than against it. That constraint made the design better. A campaign that asks nothing extra of the user is a campaign that actually runs.

year

2025

timeframe

14 days

tools

Figma

category

UX/UI

.say hello

If you’ve got a cool idea brewing, hit me up! Drop me an email and let’s talk. 👋🏻

.say hello

If you’ve got a cool idea brewing, hit me up! Drop me an email and let’s talk. 👋🏻

Create a free website with Framer, the website builder loved by startups, designers and agencies.