Building slot machines for Facebook Messenger

How to use Vegas-style game mechanics to get customers hooked on your chatbot

Josh Barkin

--

In the 1950s, Behavioral Psychologist, B.F. Skinner, observed that lab mice responded best to random rewards. The mice would press a lever and sometimes they’d get a small treat, other times a large treat, and other times nothing at all. Unlike the mice that received the same treat every time, the mice that received variable rewards seemed to press the lever compulsively.

Variable rewards have proven to be one of the most powerful tools businesses can use to hook users and slot machines are the perfect example of a variable reward schedule.

With a physical slot machine, you press a button to send a message to a computer program and get back a variable response in pictures. In Messenger, you press a button and can get back a variable response with emojis.

Pay-to-play slots are against Facebook policies and so is rewarding users with real money.

You can use Vegas-style game mechanics to reward customers for engaging with your bot.

You can try this demo slot bot for Facebook Messenger and I especially recommend Hooked: How to build habit forming products. You’ll thank me later!

Building conversational games with Manychat

Manychat has two key features, a randomizer feature, which is really effective for generating different emoji combinations and win / loss scenarios, and Bot Fields which allow you to quickly manipulate nearly every aspect of the game by changing values.

Using Bot Fields to manage your game economy

If you’re going to reward users with real prizes for interacting with your bot, you’ll want to be mindful of your game economy. You’ll want to adjust your betting values, winning values, and prize values until you achieve a balance. You don’t want to make your rewards unattainable because you’ll quickly disengage your users, but you don’t want to make them too easy to attain either or your game won’t be effective at driving long term engagement.

Use Bot Fields to control every variable in the game including betting values, winning values, and prize values. Here you can see that I have number-type fields as Bot Fields and these define the amount a user can bet.

These bot fields are referenced in quick reply betting buttons so if you need to change the amount a user can bet, just change the value in a bot field and the logic is updated everywhere.

Because bet amounts are Number fields, it’s easy to set an Action with a simple formula to calculate how much they will win. For example, if the user Bets 1 (1 is a betting value) and gets 5 of the same emoji in a row, then they would earn 5 Tokens (5 is a winning value). You can just set an Action with a custom formula:

{{BetValue}}*{{WinValue}}

If they Bet 5 however (a different betting value), then the amount they would win would be 25 Tokens.

It’s important to have different betting values rather than just one bet, or spin button. It allows users to take a risk and experience gratification if they win and feel the consequences of losing. With betting options, you can get users emotionally invested in your bot.

Using Bot Fields to manage your visuals

Emojis can really speak to your target market, but managing a ton of different slot machine combinations with emoji can be a pain. Emojis are not images. They are text, so the easiest thing to do is to add all of your emojis to Manychat Bot Fields, and then you can easily access your emojis when you’re setting up slot machine combinations.

If you’re a marketing agency, you can see how this would be helpful too. You could build a slot bot for a restaurant, and then just change the emoji in your Bot Fields to car emojis, and it’s exactly the same game, but a completely different skin for a different client. In this example, there is a slot machine skin for a restaurant, but just changing the emoji values means you can have a skin for an automotive business.

Add multipliers to create winning outcomes that are highly rewarding but extremely rare. This motivates engagement. A user will keep playing hoping to hit a multiplier because the reward amount is that much larger. However, because it happens rarely, users will celebrate those moments when they hit multipliers and then chase those moments again looking for the gratification that a multiplier can provide.

Using our restaurant example, If the user only bets 1, that would typically earn 5 points for getting 5 emoji in a row, but if they hit 5 🍰 in a row, which has a value of 10, the Action step for calculating how much they won would have a custom formula like this:

{{BetValue}}*{{Multiplier}}.

Using the above example, if the user bets 10 and the Multiplier value is 10, then the user would earn 100 points.

Randomizers

You’ll need Manychat’s randomizer quite frequently because you need to have a lot of steps with different, seemingly random combinations of emojis delivered in three successive messages when a user bets. However, you’ll want to keep game management centralized to just two randomizers.

In the above example, the first randomizer determines the percentage of time the user will win vs. losing and you’ll want the user to lose most of the time. The second randomizer determines how much the user will win. Since any 5 emoji is a winning combination, you would want to set this at the highest percentage, then have winning combinations for each of the multiplier emojis, with the highest multiplier having the lowest winning percentage. The more the user can win, the lower the chance should be of them winning. Finally, you can create a winning scenario (Letter “E” in my winner randomizer above) for triggering non-specific, variable rewards. You could award free spins, instant offers, or even trigger mini-games that award different bonus amounts when users complete steps.

Mystery Rewards and Bonus Rounds

Much like you can have multipliers that deliver rare moments of delight for a user if a user hits 5 🎁 in a row, users can get a different, yet winning result each time.

Mini-games are effective here where users can collect a variable amount of points each time they trigger a mini-game and play. You don’t need to re-invent the wheel (no pun intended) with a mini-game either. A simple spinning wheel of fortune is a good example. A simple mini-game like this popular Las Vegas slot machine mini-game can be very effective.

Translating the Las Vegas slot machine into a conversational experience, users just tap on buttons and it reveals random bonus amounts until they hit a dead end:

When you trigger a mini-game, you’ll want to factor in the user’s bet that triggered it. If they bet a large amount and trigger a mini-game, then they should be given large bonus amounts. If they only bet a small amount and triggered a mini-game, then they should be awarded small bonuses because they didn’t take the risk and bet large to trigger a mini-game.

Daily Bonuses

If you’ve ever played an iPhone or Android game with a game economy, then you probably would have received a daily bonus through a push notification that awards some free gaming currency.

You could trigger a daily message like “Hi Josh, here are some free tokens”, or you could add incremental rewards for each day the user engages in conversation. The great thing about mini-games though is that you can re-use them to trigger daily bonus rounds.

Daily bonuses can re-engage users and provide instant gratification, especially if the user runs out of currency the previous day. Your initial onboarding should deliver instant gratification as well. You’ll want to give users currency they can start playing with right away and guide them on how to play in as few words as possible. You could just tell the user that if they click a button they will win something.

Once they press a magic button, reward them immediately. Provide them with the instant gratification for following your instructions while they learn to repeat the action and keep playing.

Artificially producing a winning result just for clicking a button educates a user on how to play your game with a minimum investment of time. Their total investment of time-to-gratification can be as little as 1 click.

Rewards

Users should be able to browse your prize catalog at any time so you can remind them of your value proposition for investing time in your conversational experience. You can use a simple gallery like this:

You‘ll also want to add Reward Values in your Bot Fields and carry those forward in your prize catalog. You’ll likely just have a few prizes (You can always switch them up) and you’ll want to order them from smallest to largest with some “low hanging fruit” items that are easy to redeem, and some more expensive prizes they can only redeem for engaging heavily with your brand and with a little good luck. Here is what a prize catalog might look like in Messenger:

When users claim a prize, you can simply deduct a Prize Value from the user’s current grand total.

Daily bonus messages with prizes

You can get creative with your daily bonus messages. You could add a condition which checks the user’s {{current-total}} (a total of their points) and if it’s less than one of your prize amount values, set another custom field with a number that represents the difference between the prize value and their current total.

You can create a custom user field called something like {{point-distance}} and set that field by subtracting the user’s {{current-total}} from a {{prize-value}}. Then you can just tell the user how many points away they are from claiming a prize that is within reach and motivate the call-to-action to engage with your message. This can be really effective when a user can see why they should re-engage and then if they do re-engage, you can retarget them again with another message 24 hours later. They may have earned more points too that exceeds the minimum prize amount, so the next daily bonus message can run the same routine and keep showing them how much time and effort is needed for them to invest in order to claim the next prize in your prize tiers. If you’re familiar with game levels, your daily bonus message can essentially help them “level-up”.

Insights

Just because the gaming experience appears to be random luck for your end users, you’ll want to maintain control over the outcomes. You can track everything with bot fields and then spit out metrics for your entire user base so you can make informed decisions on how to adjust your settings.

I’ve built an analytics module into my Slot Bots template

Monitor usage so your gamified reward program is both highly engaging for your customers and profitable for your business. With insights, you can just keep adjusting your bot field values to ensure the game outcomes are always in your favor.

Market Validation

Emoji games for Messenger work. Don’t just take it from me. Here is an emoji game and the results were spectacular. The game had no business model as it was just a fun experiment, so it had to shut down, but you can imagine that if you’re using an emoji game to market your business and produce business results how easy can be to produce results.

Connecting 3rd party tools for gamification

Google Sheets makes it really easy to manage content for your chatbot and that holds true with gamification. You can connect Botsheets to Manychat and add a free gamification template. That not only provides you with the game logic built into Manychat, but let’s you manage your game content from a Google Sheet connected to Manychat.

By connecting a Google Sheet, you can easily manage multiple skins for your game, set up dynamic galleries for leaderboards, and even manage your rewards with just basic spreadsheet skills. You can even connect 3rd party prize platforms like Walletly to the Google Sheet and manage rewards from the Google Sheet too!.

Before you go…

Messenger is quickly evolving to be a pay-per-chat platform and you’ll need game mechanics to drive recurring engagement and maximize your initial ad spend. Everyone already understands how a slot machine works, so you can easily adapt these mechanics to a conversational experience to get users hooked and keep them coming back!

--

--