Building slot machines for Facebook Messenger

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

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.

Why should I care?

Facebook is putting a paywall in front of broadcasting and it’s going to be expensive to re-engage subscribers. How marketers think about engagement and retention is going to be crucial. I believe game mechanics will define the next phase of Messenger marketing to keep users engaged in an ongoing conversation and without relying on external triggers like broadcasting. No matter how many external triggers you provide to people, they’re not going to take action if they really don’t want what you’re offering in the first place. A crucial internal trigger must exist within the user. You should continue to use external triggers where possible, but if you build a conversational experience people want to engage with because it’s fun and rewarding, the internal trigger is all that really matters.

I’ll share many insights in this article to get you started. If you don’t want to build all of this yourself, you can grab my Slot Bot template and customize it for your niche in minutes. I include a 25-page user guide as well and I’m going to keep building it as a framework to gamify Manychat!

🎰 If you’re on a phone, you can try a demo here:
🎰 If want a Slot Bot template go here:

If you decide to go at it alone, there are some good books on game design worth reading. I encourage you to read beyond what I’m about to show you here. I especially recommend Hooked: How to build habit forming products. You’ll thank me later!

The best platform for creating slot machines is Manychat

I chose to build slot bots with Manychat because of two key features, a randomizer feature, which is really effective for generating different emoji combinations and win / loss scenarios, and Bot Fields which allow me 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 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 economy will be out of balance. A slot bot doesn’t need to come across as a quick marketing stunt. They should be helpful for user acquisition but built for long term engagement. The art will attract them, but the math will keep them coming back.

I 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 my quick reply betting buttons so if I need to change the amounts a user can bet, I 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). I just set an Action with a custom formula:


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 “Spin” button. It allows users to take a risk and experience gratification if they win and feel the consequence 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. You just type {{ and all of your emojis for your game are only a click away.

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, I created a slot bot for a restaurant and just changed my emoji values to have a slot bot skin for auto shops.

I like to 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 happen and then chase those moments again looking for the gratification that a multiplier can provide.

Using my restaurant example, if users do get 5 🍰 then you’ll want to have a multiplier bot field and multiply the value by the user’s betting value. 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 as a value of 10), the Action step would have a custom formula like this:


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


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

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 and distributes based on the size of the reward. Since any 5 emoji is a winning combination, you would want to set this at the highest percentage. I then have winning combinations for each of my multiplier emojis and the highest multiplier has the lowest winning percentage. The more the user can win, the lower the chance should be of them winning. Finally, I have a fifth winning scenario (Letter “E” in my winner randomizer) 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 I have multipliers that deliver rare moments of delight for a user, if a user hits 5 🎁 in a row, the unpredictability is a key factor in driving engagement leaving users guessing what they won each time.

I trigger mini-game flows where users can collect a variable amount of points each time they play. I then add the bonus amount they collect to their grand total. If you do trigger a mini-game, it should be painfully obvious how to play. If there is any learning curve to a mini-game for the user, then you’ll disengage the user immediately.

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. I included a mini-game in my Slot Bot template which is modeled after this popular Las Vegas slot machine.

Users just tap on buttons and it reveals random bonus amounts until they hit a dead end. Here is my translation of that Vegas slot machine mini-game for Messenger:

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 otherwise there would be no motivation to bet large and take a risk. If they only bet a small amount and triggered a mini-game, then they shouldn’t be awarded large bonuses because they didn’t take the risk.

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 is that you can re-use them to trigger daily bonus rounds.

This way I can use a simple game mechanic to get them excited, then funnel them back into the main slot machine flows once they get hooked again.

You can use a rule to trigger the daily bonus flow and remove the tag at the start of the flow. If they engage with the message, then re-add the tag which will trigger the flow again and you can use a delay timer for when you’ll send the message.

Instant gratification matters

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. Here is how I do my onboarding. I 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 and they learn to repeat the action.

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.


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.

Using prizes to incentivize engagement with daily bonus messages

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”.

Prize Redemption

While you can use any prize redemption mechanism you want, I personally think scanning a QR code is an awkward customer experience that requires too much education and creates friction. In my template, I’ve included a simple Check-in flow that removes a lot of friction. The mechanic is that users check into a business simply but clicking a Share Location button.

The concept isn’t new. It’s proven to work, and I’m a big fan of proven game mechanics! When users send their location, you can not only determine if they are within a radius of your business location, but you can collect and store valuable address data in the process of them clicking a button so you can build a geographical profile on your user. If you spend money on Facebook advertising, then you’re paying Facebook to just use their location data. With my check-in flow, you can collect the data from Google and store the data in custom user fields and re-use that data for free to target messages using geographical criteria.


Reward-based gaming is more than just adding game mechanics. You need real-time insights so you can balance a game economy. Just because the gaming experience appears to be random luck for your end users, you’ll want to maintain control over the outcomes. In my Slot Bot template, I have an analytics module. It’s accessed by chatting with your own bot (password-protected flows, but the bot remembers your password so you don’t have to enter it each time). It spits 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

Keep adjusting the values in your bot fields to get the right balance between engagement and revenue, but also adjust your randomizers so that users on average will lose more than they win, and when they win, they are not winning too much game currency. Monitor usage so your gamified reward program is both highly engaging for your customers and profitable for your business.

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.

Getting Started with a Slot Bot

Hopefully what I’ve shared here will help you start building powerful marketing machines that you can use to attract and retain subscribers with fun and excitement. Feel free to build one on your own, but all of the concepts I’ve covered here (and much more) and documented in a 25-page user guide that comes with my Slot Bot template for Manychat. Feel free to play with my demo, or ask me questions.

🎰 If you’re on a phone, you can try a demo here:
🎰 If want a Slot Bot template go here:

Before you go…

  1. Applaud and share this with others if you found it useful!
  2. Try my demo
  3. I also started a little group on Facebook where I’ll share some more insights on conversational gaming (I won’t push my template on you… it’s just to help people start marketing immediately).