How I built QuizBear, a popular daily-quiz Facebook Messenger bot

Back to all posts
30th January 2020

Note: Unfortunately, due to Facebook API updates which I didn't keep up with, QuizBear no longer exists in a functioning state. RIP :(

This might be an experience exclusive to me and a small group of childhood friends, but I used to be obsessed with a Teletext game called "Bamboozle". This low-res gem presented you with a daily dose of tough general knowledge questions - hard enough that it was satisfying when you got a few right, but not so hard that the whole endeavour felt fruitless.

This balance of challenge, plus the nerdily addictive qualities of a daily quiz are what I wanted to tap into with QuizBear, a Facebook Messenger bot (remember those?) which serves up a daily 5 question general knowledge quiz.

QuizBear is a webhook, written in PHP, which communicates in real time with Facebook’s Graph API and was my first exploration of any form of “AI” bot or conversational interface. The webhook allows me to store basic user information in order to track users’ progress and statistics by sending this data back and forth between my server and Messenger itself.

Dancing with the devil

One of the trickiest parts of building a Messenger Bot is having to exist on another company's platform. Facebook have strict (and, at the time, ever-changing) policies around what you can and can't send, to whom, and when.

The biggest challenge was around what I came to call the 24+1 policy. This states that for a regular chat bot*, you can send as many messages as you like to a user within 24 hours of them sending you a message, and then one further message outside that 24 hour period.

I used this "+1" as a means of re-engaging players each day by sending, on a cron, a reminder message telling them that day's quiz was now available. The problem with this policy was that the user didn't know it existed, so if they ignored, either accidentally or deliberately, that reminder one day they would never receive a message from QuizBear again. This led to a lot of in-person reports of "QuizBear isn't working, he's not sending my quiz!" when in actual fact they had just missed one of these notifications and could have continued playing at any time.

Now, I totally understand why these kind of policies have to exist - no-one wants to be spammed by a chatbot they signed up to once and didn't find useful - but, given QuizBear's innocent intentions, this did prove overly restrictive and massively stunted the possibility of retaining users.

* There is one type of bot which these restrictions don't apply to, but QB didn't qualify for this category.

The "challenge" challenge

One of my main goals with QuizBear was to make it seriously challenging. In Bamboozled, as a kid, getting full marks was a rarity and therefore felt genuinely satisfying.

The problem with this was that using Messenger as a platform, by its nature, pretty much required the questions be multiple choice, as the logic to normalise free-form text (with all of its synonyms, spelling variances and typos) was more than I was willing to bite off for a small side project.

In order to take the multiple-choice route but maintain the challenge, I tried to ensure that the possible answers would always be sufficiently similar so that you still had to have a pretty good idea of the answer to get it right. The funny thing about this was, if you present people with a number of feasible options to a pretty easy question (e.g. “What’s the largest desert on earth?”) they suddenly start to second guess themselves or think it’s a trick question – it makes hard questions easier, and easy questions harder.

But no-one uses chat bots right?

Having read about (and experienced first hand) the many attempts of big companies to get into the Chat Bot scene around 2016/17 I figured the biggest challenge would be getting anyone to actually use QuizBear. I was right that this proved tricky, but having sent over 250,000 messages with next-to-no direct marketing, it didn't prove insurmountable.

There was no magic wand to solve this problem - I think it was simply QB's innocent intentions (it was just a bit of fun after all) and entertaining gameplay which made it spread from user to user, after initially sharing it with a core set of friends, family and colleagues.

Chatbots aren't a solution to a problem, or a marketing opportunity in and of themselves, which is why so many companies try and fail to find success in this sector. But with a compelling enough idea and decent execution, you can build a user base.

Keep in touch

Stick your email in the box and I'll let you know about anything interesting I have to share. No spam ever, of course.