Credits to Yin Yin Chan, Deborah Kay, and Walter Oh for proofreading and feedback for this article.
Hi, I’m Abhilash and I am one of the creators of the Bus Uncle chatbot. In this article, I will be sharing with you about how I was able to leave my job as a software engineer and earn a full-time income by building a bus timing chatbot in Singapore.
Table of Contents
Early days
When my co-founder Yin Yin and I launched Bus Uncle on Facebook Messenger in late 2016, it grew unexpectedly viral. Chatbots were novel, and the audience could relate to Bus Uncle’s personality of a quirky Singaporean uncle who was guai lan (snarky), told uncle jokes, and spoke fluent Singlish (Singaporean English). Users shared screenshots of their Bus Uncle chats with their friends and our user base grew quickly. Just one post from Mothership, the country’s largest social journalism website, and our user base skyrocketed.
The tech was simple
I had zero experience in building chatbots before. I remember googling "How to make a chatbot say hi" around August 2016. The first version of Bus Uncle was made on a scrappy NodeJS express-server connected to the Facebook Messenger APIs. I didn't like to use chatbot libraries like node-telegram-bot-api or python-telegram-bot for various reasons. I got my bus timings from the LTA DataMall API, and used a bit of the Wit.ai API for NLP (Natural Language Processing). Using Wit.ai allowed people to speak freely with the bot instead of having to type slash commands like "/start". I hosted the Bus Uncle codebase on the free plan of my then favourite PaaS Heroku. It took me a whole weekend, almost 48 hours, to set up the first functioning prototype.
It started costing me money
As the chatbot’s audience grew to about 22,000+ unique users in under 2 months, the load on computing resources also grew, so I had to upgrade my free Heroku plan. I first upgraded it to the SGD 10/month plan, then to SGD 85/month plan with some plugins. I was paying this out of my own pocket, but since it was a passion project, the cost didn’t matter much.
We actively grew the community
Here’s the difficult thing most people didn't know about; Yin Yin and I spent a good deal of effort growing our follower count on the Bus Uncle Facebook Page itself. Weird, but why? For virality; Publishing funny content lead to being visible in more people's news feeds, which lead to more people trying the chatbot. We had a cadence of publishing 1 new Facebook Post in Bus Uncle's first-person point-of-view every single day. As a result, our Page followers grew quite significantly.
Business opportunities streamed in
About 2 months later, the digital agency for BBC Worldwide (BBCW) reached me on my personal email, and shared that they had installed Out-of-home (OOH) advertising media to promote the BBC Player, i.e. their own Netflix-like app. OOH media typically involves setting up digital and print ads on bus stop panels and bus exteriors like this
What’s interesting about OOH is that it is not easily measurable. Most brands inject money into it and hope for successful results with both eyes shut. BBCW’s agency knew that Bus Uncle’s audience was growing, so they asked me if the Bus Uncle chatbot could promote their app to our users. We said yes, and this was the outcome of our first advertising campaign with BBCW
We targeted those users who were getting their timings for buses with BBCW’s OOH media painted on them - and not everyone. This made BBCW’s OOH ads measurable - we captured impressions and link clicks, and could present a generic Clickthrough Rate (CTR) for them. As a developer, it was my first time charging someone advertising money, so we got about SGD 1.5 - 3K for putting this up on the Bus Uncle chatbot for 8 days.
We created Conversational Advertising
Sharing sponsored content within the chatbot itself was a brand new opportunity for us to monetize the Bus Uncle chatbot. Most people hated unsolicited pop-up ads, so we had to seamlessly integrate it to Bus Uncle's own story. Our main concern however was maintaining the confidentiality of our users’ data. We have an obligation to protect our user’s data and abide by Singapore’s Personal Data Protection Act (PDPA). We quickly deployed our Privacy Policy into the main menu of the chatbot like this
Our Privacy Policy stated explicitly to our users the kind of data we collected and its purposes, similar to our what it is today. It said that we would never sell anyone’s personal data, or target personally identifiable individuals or groups. Rather, we would only target behaviour, i.e. how people use the Bus Uncle chatbot, and not who. We even added in quirky new responses if our users questioned this in the chatbot
How Conversational Advertising works
Over the next few months, more inbound requests came in from other brands to advertise on the Bus Uncle chatbot. We started rolling out ads to our users based on usage segments such as their
- Geography if they were within proximity to a promoted event/product
- Sentiments if they indicated stress, hunger, or exhaustion to the Bus Uncle chatbot (a lot of people still do this!)
- Time of Day if they were taking the bus on the way to work/school, or on the way back home
Since our Facebook Page audience was growing simultaneously, which had about 21,500 followers in 3 months, we could publish sponsored content on it as well
Some of the past chatbot advertising work looked like this
and some of the Facebook Page ads looked like this:
As we implemented more conversational ads, we created more tools and deeper integrations for brands to work with. We charged SGD 6 - 10K per month-long campaign, where we delivered multiple formats of advertising including bespoke creative content on the Facebook Page and customized interactive flows in the Messenger chatbot.
What we measured
Most brands' marketers request for 3 metrics - impressions, clicks, and funnels. They use these to calculate conversion rates. We adapted our technology to these metrics, so our sponsors could measure the conversion rates of their Bus Uncle Messenger chatbot ads with data like this
and of course, the typical Facebook Page sponsored posts with stats like this
According to Smart Insights, if a brand purchased Google Search ads or Facebook Sponsored posts, they would normally achieve CTRs of between 0.4% to 1.8%. Bus Uncle ads were able to achieve an overall median CTR of almost 5X that amount; 8.5% across all of the campaigns we worked with. You could say that the Bus Uncle chatbot worked like a micro-influencer - targeting specific behavioural segments of people for higher engagement. The goal was not to maximise reach; it was to create and measure engagement.
Conversational ads have high engagement because they are bi-directional. Their value is derived from two-way conversations between the chatbot and the user, as opposed to unidirectional sponsored posts where publishers create content for followers to only like and comment.
New features created more revenue opportunities
We were strengthening our advertising relationships, but we never stopped growing the Bus Uncle brand and community. Our regular Facebook Page posts allowed our audience to constantly send us feedback and suggestions. We added new features to the chatbot, and a ripple effect presented new opportunities for advertising. Here are some examples:
Directions
Bus Uncle was initially just a bus-timing chatbot, but we observed several users asking for directions with questions like "which bus goes to NUS". We didn’t want Bus Uncle to say "Sorry, I don’t understand" to these simple requests, so several months after launch, we launched the Directions feature in the chatbot
Our users were elated with this feature because it now meant that they could use Bus Uncle plan their journeys to any destination in Singapore.
On the business end, we used this feature to sell origin- and destination-based advertising to brands. One example of it looked like this, targeted to users whose destination was within a 1KM radius of Triple Three in Somerset:
Monday Jokes
We learned from our real-time dashboards that users absolutely loved Bus Uncle’s hyper-localized lame jokes. We also know that Singaporeans are hard workers and are very likely to have Monday blues at work or school. Therefore, we developed a new feature called Monday Jokes that allowed users of the Bus Uncle chatbot to receive a new joke every Monday like this
Users rave about this feature even until today, sharing their Monday jokes on their Instagram stories and TikToks.
Again, this created an opportunity to publish sponsored content with brands in the form of jokes with Calls-to-Action (CTAs), similar to how other publishers use memes to present sponsored content to millennials on their social media pages. A sponsored joke looked like this
After almost a year since the launch of the chatbot, we were able to charge advertising fees ranging from SGD 12 - 25K for month-long campaigns with our brands.
Revenue earned from advertising
This was how our advertising revenue with the Bus Uncle chatbot grew from our first sponsorship until early 2019
From a bus timing chatbot alone, we were able to hit more than SGD 150K in revenue in 2 years. In mid-2017, I quit my full-time job as a software developer at a company I loved. I just had to focus on building the Bus Uncle business. My cofounder Yin Yin joined me full-time around mid-2018, and we have been fully immersed in the chatbots space since.
Bus Uncle became Singapore’s Virtual AI Influencer 🤖
Launched the Telegram bot
In December 2017, we launched the Bus Uncle chatbot on Telegram. This decision has gifted us unsparingly, as Facebook has been notorious for restricting capabilities of Messenger chatbots over the years. They restricted Messenger chatbots to only initiate business-related conversations with users. Monday Jokes was not a valid business use case 🤷 so we had to move it to the Bus Uncle Telegram chatbot. Today, the Telegram bot is 5X more popular than the Facebook Messenger bot.
Hiatus from advertising
Now what I had not mentioned earlier is that behind-the-scenes, my company was receiving requests from businesses not only to use the Bus Uncle chatbot for advertising, but also to build them their own white-labelled consumer-facing chatbots! We had to reconsider our goals as a company - did we want to keep working and earning from our boss-like Bus Uncle chatbot alone, or did we want to make more Bus Uncle-like bots for more purposes and companies? We chose to do the latter; the harder thing, for a few reasons:
- It's sustainable. We cannot rely on Bus Uncle as a one-hit wonder.
- It's extensible. We will be able to grow Conversational Advertising with more chatbots.
- It's flexible. Existing no-code chatbot platforms like Chatfuel, ManyChat, and Manybot are user-friendly for creators, but make rigid chatbots for end users.
- It's modular. Conversational AI platforms like IBM Watson and Google Dialogflow are too complex for non-coders, but we can still harness their capabilities.
- We're a tech company; not a marketing agency. We would rather partner with experienced marketing agencies to develop the best MarTech solution for our clients.
- We want to streamline and democratise the chatbot-making process from design, to development, to data-driven optimisation for coders and non-coders alike.
We swallowed the red pill, and embarked on a crazy journey to build our own tech solution for individuals, SMEs, and enterprises. We created BotDistrikt - our proprietary B2B Software-as-a-Service (SaaS) chatbot-making platform. Around mid-2019, we took a break from the Bus Uncle advertising business and focused largely on engineering BotDistrikt's technology.
Where we are today
Today, the BotDistrikt platform is publicly-available on our website. Anyone - whether they can code or not - can build and launch their own chatbot in under 5 minutes. I scrapped the Bus Uncle NodeJS codebase and migrated it into a single chatbot account on BotDistrikt like this
The Bus Uncle chatbot today is fully managed by the non-coders in our company. We add new features with Rules like this
Our marketers and conversational designers (who do not code) manage Bus Uncle's responses with Stories like this
We update our Monday Jokes with Broadcasts like this
We train Bus Uncle's AI with our Wit.ai AI Integration like this
We reply to our users' feedback directly in the Inbox like this
and we manage all of our users on our CRM-like Users Dashboard like this
Bus Uncle is currently live on Facebook Messenger, Telegram, and the Google Assistant. He uses Wit.ai for his AI. The Integrations page for the Bus Uncle bot account looks like this
Our customers make and manage their own chatbot on BotDistrikt exactly the same way we manage Bus Uncle. Everything is one place.
Bringing back our Conversational Advertising
If you are a consumer-facing brand who needs to reach millennials in Singapore, we are picking up where we left off with Conversational Advertising on Bus Uncle, with our highest engagement rates recorded on 3 channels - Facebook Messenger, Telegram, and the Google Assistant. With BotDistrikt, our advertising technology is centralised and more refined than ever. Reach out to us for a brief here!
Want to build your own chatbot? We can help
I hope this article gave you some insights into how we were able to launch, grow, and monetize the Bus Uncle chatbot. If you are a current or aspiring chatbot developer, we want to help you! We will
- Give you a fee-waiver to move your popular Telegram bot to BotDistrikt (U.P. USD 99/month)
- Brainstorm how you can make money with your own chatbot
- Teach you how to train with AI, integrate with APIs, and master building flexible chatbots
- Guide you on automated testing with your chatbot
- Launch your bot on Telegram, Whatsapp, Facebook Messenger, and your own website
We received your message and will contact you back soon.
Error sending please try again