The inside story of building viral #ATMwithCash

And how Walnut app scaled from 1m-5m users in 2 months in a Pre-Jio world, went viral and was covered by all major news and media orgs.

And how we built a viral feature & went mainstream. Image courtesy: Walnut blog

With essentials in short supply, buying groceries is occupying a huge amount of our mental space. To help solve this issue, Walnut app recently announced a new feature to help anyone find an open store near them. I thought it was an apt time to time to tell an old story. How we(the team then at Walnut) had built a similar feature — to find an 🏧 with cash during demonetization back in Nov 2016. And unlike Google Maps which just told you about the ATMs, we told you the ATM location, the last time someone withdrew cash from it, the currency available and the length of the queue!

It went viral with our app going from 1m to 5m users in 2 months. We rose to 25 on the top charts.

To give people unfamiliar with demonetization — Prime Minister Modi on Nov 8th announced that all 100, 500, 1000 rupee notes were being invalidated & any existing currency had to be replaced at the earliest.

25th on the Top charts for a personal finance app was crazy!

Here’s the coverage in Hindu

When the prime minister announced demonetization of all currency on Nov 8th, we imagined there’ll be an immediate cash crunch. And considered a few solutions we could build for our users. The prime among them was a quick way to find ATMs which had cash near them. However there we few issues:

  1. We didn’t know how long such a crunch would last — a week, a month?
  2. Was it worth the effort of building an entirely new feature?

However we were in a unique position, we were among the few apps to have live information on user transactions. So we decided to quickly launch a version. However at the time we didn’t log location information for ATM transactions as it wasn’t necessary to mark as a unique merchant. So within a few hours, we pushed out a change to log location. And within a record day and half thanks to our very awesome dev team, we had pushed the UI layer to help users find an ATM near them.

Here are the first sketches of the design I had drawn(we loved quick sketches!)—

A very simple & quick first sketch.

How it actually turned out

The final version — get info on queues, verified info, get notified!

And here’s how it turned out.

However we quickly realised that the problem wasn’t so simple. Google didn’t have a lot of ATM data and thus we had to find other ways to map the ATM information with location data from txns.

Finding ATMs?

The process of marking each ATM involved several steps. Every time one of Walnut’s users withdrew cash from the ATM, they would get a sms. We would use this info to get the user’s current location. Thus we would know that money was available at a certain location. The ATM name was derived using an algorithm with the text message, google maps and other sources as inputs. In some cases where it was unavailable, we would crowd-source this information.

As more people used the app, we obtained more information about ATM locations & this meant we provided better ATM coverage to our users. The best part — it was the only app which had validated, near real-time information!

Finding an #ATMwithCash

Testing the accuracy of data

There were errors in different parts of the process — delay in capturing location, coarse location, user leaving phone at home & thus capturing incorrect location, incorrect name mapped to the ATM, incorrect location mapped to the correct ATM. However since we didn’t have a quick way to verify the location of the ATM, we would physically drive down to locations in Pune to verify & then debug issues!

Over time we added more information like the length of the queue, the type of notes available at the location, verification by the number of times the ATM was accessed.

Collecting additional information from users — click through from a notification.

Color coding of ATMs

How do we help users find the best ATM? We simply color coded them. ATMs that were recently used with 30 mins to 1 hr were color coded green, between 1 hr to 3 hrs were coded as orange and the rest were coded gray. This helped users quickly identify the nearest operational ATM near them.

Proximity & Grouping of ATMs

If you’ve ever paid attention to ATM locations in India, you’ll realize that ATMs are clustered in one location. This presented a unique problem as users would have to try out all ATMs in-case we got the location wrong. We solved this by trying to reduce error in the name.

Clustering of atms — 3/4 atms very close to each other.

The epic share message:

We spent a few hours trying to find the perfect hashtag till Himanshu, our then marketing head came up with #ATMWithCash. We initially felt it would be lost in the deluge of hashtags. As it turned out, this message became really popular.

Share message — showed atms.

Crowd-sourcing data & it’s pit falls

While we tried our best, ATMs ran out of cash quickly and thus our users were unhappy about inaccurate information. We thought why not let users mark an ATM as inactive if he’s in the vicinity?

However this approach didn’t work out that well. It turned out users started marking an ATM as inactive so other people wouldn’t crowd and empty the ATM. Then we had some users trying to spam ATMs. We quickly realised this and stopped using crowdsourced information to augment our data. However we took active feedback from users to pinpoint areas where we were facing more issues with data.

User Feedback — taking quick feedback using a list of options helped us identify the areas which had issues.

In the end the cash crunch lasted for more than 2 months and we ended up acquiring more than 4 million users for free! While a few million users might seem small right now but back then even the biggest music app in the country had close to 4–5m active users only.

The best part? Walnut was listed as an Editor’s choice app! And Sundar Pichai applauded the app as a unique case of using Android data.

Pichai presenting Walnut app!

In all, it was a crazy experience seeing product metrics zoom, shipping major changes everyday. A bit like we’re seeing the ‘Aarogya Setu’ team ship changes multiple times everyday. In the end it was the perfect mix of 3 things that led to the product going viral 1. Big & urgent user problem 2. Product that met user need fast & kept improving 3. Smart share built into the app that helped it easy to spread the message & co-ordinated marketing efforts.

If you found this story interesting, do read my blog on principles for building internet products. If you’re interested in product or tech positions, we’re hiring at OneScore.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: