How to Create a Referral Program With ManyChat

Important update, Feb 2019: the strategies in this article can no longer be used. In February 2019, Facebook added to that it is not allowed to incentivize sharing. This probably means you can’t ask people to share your bot in exchange for a reward, but you could still use this strategy for some kind of referral program without a reward so you can track how many people a subscriber invited.

Important update, Oct 2019: the share button is now deprecated, which means that you can’t add share buttons to your Flows anymore. However, it’s still possible for people to use the native forward button that appears with content that includes an image.

How great would it be if people shared your Messenger Bot with their friends?

Imagine every subscriber invites two friends.

And the friend of the subscriber will also invite two friends.

And the friend of the subscriber’s friends will also invite two friends.

You get the point.

It will start snowballing & you’ll end up with tonsssss of high-quality subscribers.

But how do you get people to share your Messenger Bot?

Well, you could simply ask.

You could create something that asks subscribers if they know a friend that would also be interested in what you’ve to stay.

And definitely, some people will invite their friends.

But probably not a lot, because what’s in it for them?


That’s why I’m convinced you have to reward people for inviting their friends.

So you need a kind of referral program.

All the big boys are already doing this.

Think about Airbnb who gives you €15 credit when someone signs up and books something with your link.

airbnb affiliate program

Or Dropbox who gives you 500MB extra space for every friend you invite.

example referral dropbox program

These companies are using these programs because they work really well.

Give people a reward & they’ll be more motivated to share your stuff.

That why in this guide, you’re going to learn how you can create a referral program inside Messenger with ManyChat.

We’re going to reward people that love your content for sharing your Messenger Bot with their friends so you can get that snowball effect.

Let’s dive in!

Who are you going to invite? And when?

This is totally up to you.

But I don’t think you should invite everybody blindly the first day that they join your Messenger Bot to invite their friends.

Make sure they already know you for a while, that they love your content & that you’ve built some trust.

To figure out whole those people are I recommend you to use Lead Scoring to determine which subscribers are highly engaged.

People with a high Lead Score are the people we want to invite their friends.

I’m for example asking people to invite friends when they reach a Lead Score of 25 in ManyChat:

ManyChat affiliate program reach score 25 invite friend

The people that get this invite have been following me for awhile & are highly engaging.

I’ll show you later what that Flow looks like.

Let’s first talk about what kind of reward we could give.

What reward are you going to give?

You’ve to think well about this one.

As we’re mainly focussing on attracting more subscribers in this guide I won’t recommend giving any cash rewards, unless you know what each subscriber is worth to you.

Some studies have also shown that non-cash rewards work better than cash rewards.

That’s why I think you should think about what your subscriber wants.

What is their desired goal?

How could you help them to get a little closer to that goal?

Give that.

You could, for example, give an ebook that you’re usually selling for 12 bucks.

Or upgrading someone’s account like Dropbox does.

Or give access to a secret part of your website with some video’s

(this is what I do)

Or a discount on one of your products.

It can literally be anything.

Think about something your subscriber wants & that’s perceived as valuable.

What does your invite look like?

There is no need to overthink this one.

Keep things simple.

Here is the exact flow that I’m using:

ManyChat example flow invite a friendkopie

A few things to highlight;

1) I first tell them why I’m asking them: they’re engaging.

2) What they can get: access to a secret part of my website.

3) What I expect from them: share this card or the link with 3 friends.

It’s super simple & works really well.

How do we track & reward subscribers who invited friends?

This is a bit more technical because we have to implement some things & have to use some Zapier wizardry so that we can tell ManyChat which friend was invited by who.

Let’s start with the easy stuff.

Create a new Custom Field by going to Settings » Custom Fields and name it Invited by.

create new custom field invited by

We’re going to use this field to store the full name of the friend who shared the bot.

Then we’re going to create a new Messenger Ref URL by going to Growth tools » New Growth Tool.

Create it, give it a fancy name and go to setup (see image below).

Screen Shot 2018 09 10 at 2.45.17 PM

This is where the magic is going to happen.

You should see two fields:

Screen Shot 2018 09 10 at 2.48.23 PM

Fill in a nice name in the Custom Ref parameter.

I’m going to use Friend.

And for the payload, you’ve to select the Custom Field we’ve just created: Invited by.

Click save & it should look like this:

Screen Shot 2018 09 10 at 2.51.53 PM

This is going to be the base of the link that people can share with their friends.

But we still have to tell ManyChat who shared the link & save to the Custom Field.

ManyChat calls this the Payload.

You can do this by adding two dashes to the end of the Ref URL & then add the full name of the subscriber.

So if I would share the example above it would look like this;

But we obviously don’t want the subscriber to type their name themselves behind the Ref URL.

Not very user-friendly & allows people to make mistakes.

Luckily it’s easy to put this variable in dynamically.

When you create your invitation, you can insert the link & then add the First Name & Last Name variable by clicking the {} icon.

Insert a plus (+) in between the First Name & Last Name.

Add plus symbol between first name & last name

The result is that the name will be added to the end of the Ref URL dynamically.

When the receiver clicks “Get Started” in the card the full name will be saved into the Custom Field we’ve set to receive the payload; the “Invited by” custom field.

That means we’re already halfway!


We now only have to reward the person who shared the card.

In order to do that we have to create some kind of bridge to pass the info to the right user.

We’re going to do that with some Zapier magic.

As soon as the invited friend enters the Messenger Bot, we trigger a Zap.

Below is the flow I’m using together with the Messenger Ref URL we created earlier.

This is the first flow people go through.

Note that I also created something to prevent people to click the “Get Started” button in the card themselves.

When someone has been asked to invite a friend I give them the [Event] Has been asked to invite a friend tag.

So by checking if someone has this tag, we know if they clicked the link or button themselves.

Screen Shot 2018 09 11 at 9.25.07 AM

The friend will go through the No path & we add a tag to trigger the Zap in the next step.

(You can also do this with a Zap event instead of a tag if you like. Same result.)

As you see below, the Zap gets triggered when the [Zap] Invited by a friend tag is added.

Screen Shot 2018 09 11 at 9.30.54 AM

Then we want to find the subscriber in Messenger who shared the bot with the friend.

That’s what we created the Invited by custom field for.

(this one will be populated with the name of the person who shared it, do you remember?)

So we’re going to use the value in this custom field to find the user by name.

Screen Shot 2018 09 11 at 9.21.56 AM

Add the[Zap] Invited by a friend tag to a subscriber, populate the Invited by custom field with your name & test step 1 and 2 to see if everything is working so far.

A big green bar should show up with Test Succesful! and if you scroll down a bit you also see that we have the User ID of the person we searched for that we can use in step 3 of the Zap.

test step 2 of the zap

Now that we’ve found the User ID we can set the subscriber’s Has invited Custom Field with the name of the friend that was successfully invited.

Create the step, use Set Custom Field, go to Edit Template and set User to Use a Custom Value.

Screen Shot 2018 09 11 at 9.51.25 AM

Next, we’re going to add the User ID that we’ve found earlier in step 2 of the Zap.

This will tell ManyChat who’s Custom Field we want to set.

add user id to step 3

Then we’re going to set the Has invited Custom Field with the name of the person who triggered the Zap.

Click the drop-down, click step 1 and select User Name.

(It’s the same name as the previous step because we’re testing here, but this is obviously going to be a different name because someone can’t share the bot with themselves)

use new tagged user step to set has invited custom field

The result of this step is that we’ve populated the Has invited Custom Field with the name of the friend the Messenger Bot was successfully shared with.

We can use this in the next step to send the person who invited the friend a nice message to thank them for inviting John Doe.

So in the last step, we’re going to Send Content to User.

Like in the previous step, we’ve to set User to Use a Custom Value and then enter the User ID that we’ve found in step 2 of the Zap.

Content we’ve to set to the flow that we want to send to the subscriber.

Just create a blank new flow, give it a name and set it here.

I called the flow Invite a friend – success.

We’re going to build this flow in the next step.

send content to user success message

So this was all the Zapier fun:

Step 1) We triggered the Zap when the [Zap] Invited by a friend was added to the new subscriber that was invited.

Step 2) Then we searched for the subscriber who shared it with this new subscriber.

Step 3) Then we’ve set the Has invited Custom Field with the name of the new subscriber.

Step 4) And now we’re going to send a flow with a success message to the subscriber who got us a new subscriber.

But first, we have to create Referral Score Custom Field to keep track of how many friends the subscriber has invited.

Make sure you’ve set the Type to Number, so we can increase the amount easily.

Screen Shot 2018 09 11 at 10.25.49 AM

After you’ve done this we’re going to build the flow that we’ve used in step 4 of the Zap.

Below is the flow that I’m using.

As you see I’m checking with conditions how many friends they’ve already have invited.

When they’ve invited 3 friends I give them access to the reward.

You can obviously change this to another number if you like.

Example flow: invited a friend

I’ll explain to you how the flow works.

We start by creating an Action so we can increase the Referral Score by 1.

Schermafbeelding 2018 09 11 om 10.42.03

Then we check with a condition when the last interaction was. By doing this we make sure they’ve not interacted with the Messenger Bot for at least 10 minutes so we know that they don’t get this success message while they’re still talking to the Messenger Bot.

Schermafbeelding 2018 09 11 om 10.43.30

Then we’re going to say hi & check with conditions how many friends they already invited.

Schermafbeelding 2018 09 11 om 10.48.04

The first time they get “Invite two more to unlock…”.

The second time “Invite one more to unlock…”.

And the third time we’re going to give them the reward. Instead of access to a website you can, of course, give something else what we discussed at the beginning of this guide.

I’ve added a quick reply first because it otherwise could be seen as promotional content if it sends out of the 24-hour window.

Schermafbeelding 2018 09 11 om 10.59.06

That’s it!

We’ve now created an invitation that can be shared with a friend.

When the friend clicks it & subscribes the Invited by custom field is populated with the name of the subscriber who invited him or her.

Then we trigger a Zap & find the subscriber by using the Invited by custom field.

Then we set the Has invited custom field of the inviter to the full name of the friend that has been invited.

And last but not least, we send a message to the inviter to thank them & remind them how many friends they still have to invite for their reward.

Bonus: greeting new subscribers & use the friend’s name

This is totally optional, but I’ve implemented anyway because we already know who invited this new subscriber anyway.

At the beginning of your Welcome Message, you check if the Invited by Custom Field has any value.

If it has any value you can say something like “Awesome that John invited you!” to make it a bit more personal.

welcome message example flow

I hope this gave you a lot of value and that it’s going to help you to grow your bot list quickly.

It requires some technical implementation.

But you set it up once, and it’s doing the work for you.

Over to you

I’m curious what your thoughts about this.

Comment below & let me know how you’re planning to use this!

Get my best ManyChat tips every Tuesday 🚀

Grow your online business with effective Chat Marketing

    Avatar of Max van Collenburg
    Max van Collenburg

    I'm addicted to travel, love a good cappuccino, have two cute cats, and craft actionable content for online business owners that want to grow their business with non-sleazy chat marketing. More weird facts about me here.

    52 thoughts on “How to Create a Referral Program With ManyChat”

    1. Avatar of Tamás Rátkai

      Max this is super awesome! You have created a Viral referral program within ManyChat. That is sooo POWERFUL! For a service like this, you can pay for a software that blasts emails with 25% open rate for 49 USD / month! This is PURE VALUE that you created here!

      A walkthrough video would be also cool! ?

      • Avatar of Max van Collenburg

        Thanks, Tamás! Happy to hear you got so much value from this guide! ?

        I’m working on a walkthrough video as well. Will let you know when it’s ready! ?

      • Avatar of Max van Collenburg

        Hey Tamás! I just finished the video walkthrough.

        You can watch it in Messenger by clicking this link:

        • Avatar of Dung Bui

          Hi Max – the link leads to this very blog post, not a video anymore. Can you please check?

          • Avatar of Max van Collenburg

            Hey Dung! The video is not available anymore as this is not allowed to do anymore.

    2. Avatar of Amr

      Thanks a lot Max.

      • Avatar of Max van Collenburg

        You’re welcome! 🙂

    3. Avatar of Daisy

      Hi Max,

      This was super helpful!
      I’m trying to test it on our test subscriber. I have given our test subscriber a referral score of 4 and increased it to 5. We and the subscriber should receive an email when they hit a referral score of 5 (in the success workflow), but so far- no email.
      Is there any way to check that its working without the referrer referring 5 actual friends?

      Thanks in advance!

      • Avatar of Max van Collenburg

        Hey Daisy! Testing can be a bit more difficult because you probably don’t have 5 Facebook accounts, haha.

        I think your method of setting it to 4 is a good one. If something went wrong, it’s always smart to just look step by step where it went wrong. Was the subscriber successfully invited with the right custom fields? Did the score reach 5? Was the success flow triggered? Was the email triggered?

        I hope you can figure it out!

        ~ Max

        • Avatar of Marianne

          Hi Max. I replicated everything but it’s not working. It’s just looping 🙁

          • Avatar of Max van Collenburg

            Hey Marianne! Be sure to triple check every detail. If something small is wrong it’s easy for it to break, it’s unforgiving.

    4. Avatar of Marianne

      Hi Max! This is great! Thank you!! Subscribed to your Fb page and bot too! and as well as your email campaign! 🙂

      • Avatar of Max van Collenburg

        Haha, awesome! Thanks Marianne! Glad you like all the content 😄

    5. Avatar of Thomas

      Thanks so much Max! I was looking everywhere for exactly this, but couldn’t find anything on youtube or elsewhere. Luckily, I found this article! I can’t believe that all the other “gurus” haven’t figured out this simple, but deadly effective going-viral trick yet by themselves. All the best to you 🚀

      • Avatar of Max van Collenburg

        I’m happy to hear it’s helpful, Thomas! 🤗

    6. Avatar of scott

      Hi Max

      Great info and I used the above for a referral competition. Increased my subscribers list by over 20% but now i’m wanting to turn these into buyers.

      To do this I am wanting to have a referral system where they refer friends but are only rewarded when those friends either

      A – pay through stripe


      B – come in store and scan a code

      Which would you choose and how do I change the reward triggering from clicking on the claim button in a card to only triggering when the referred person takes one of the above actions?



    7. Avatar of Stephanie

      Hi, Max thank you for the great content! I have a question about the viral chat bot. I was following your steps and almost made it but i have a problem. When i invite someone it sends him message that he is invited. It doesn’t send this to me. Where is the problem? How can i fix this?
      Thank you! 🙂

      • Avatar of Marta

        Hi, I have the same problem.. 🙁 Did you find where is an error?

    8. Avatar of Vince

      If I want to select winners for referring the most, how can I set it? Can MC performs something like, “Hey John, you have 15 referrals and the current top referral is 20” ?

      • Avatar of Max van Collenburg

        Hey Vince! That’s a cool idea! 😄

        I haven’t tried it yet, but I think you can do it like this;
        1) Create a bot field called “Top Referral Score”.
        2) Every time someone’s referral score is updated you compare it with a condition to the Top Referral Score.
        3) If the score is lower than the Top Referral Score you send the “the current top score is…” message and otherwise something like “You’re now the top referral! Awesome!”

        I hope that gives some ideas 💪

    9. Avatar of Nguyen Tran

      Hi Max,
      I am very appreciate this guidance.
      We did not sleep during 2 days with the same issues with Chatfuel 🙂
      and now you help us having a good night
      Thank you so much!

      • Avatar of Max van Collenburg

        I’m happy to hear it’s helpful Nguyen! 😄

    10. Avatar of Anaxareaian

      Hey Max,

      I liked this post and your video. I just thought I’d let you know that instead of a ‘+’ sign to separate ‘First Name’ and ‘Last Name’ you could use the URL encode for the space character, ‘ ‘, %20. ‘First Name%20Last Name’ in the payload will be placed in the CUF as ‘First Name Last Name’. Not a big deal if you need to separate them back into ‘First Name’ and ‘Last Name’, but a little bit easier for those times when you don’t.

      Great post. Thanks for sharing such a useful set of flows.

      • Avatar of Max van Collenburg

        Great tip Anaxareaian! Thanks 🤗

    11. Avatar of Guy Miotke

      Hey Max, super well done. I appreciate the level of detail as well. Looking forward to trying to recreate it with make in lieu of Zapier. I wonder If there is something unique to Zapier, like a certain trigger event not available to make, or if it will be straight forward but I have a compulsion to find out.

      • Avatar of Max van Collenburg

        Hey Guy! Thanks, glad you like it!

        I think the process in Make is pretty similar 🙂

    12. Avatar of Craig

      Hello Max,

      I just went through your awesome referral program videos. My only problem is that I am using Make not Zapier and can not figure out how to push the new invited friend’s information from manychat to Make and back to Manychat.

      Please help and thanks in advance,


    13. Avatar of Martin Harrisson

      Damn, that’s gold! I will have to adapt it for Chatfuel 🙁

      • Avatar of Max van Collenburg

        I guess the process of implementing this is pretty similar! Good luck 🙂

        • Avatar of Martin Harrisson

          Yes and no. ManyChat and Chatfuel are two powerful tool and similars functionality but it doesnt work the same way. But yeah I guess we have to figure out. Very good article.

          • Avatar of Natalia

            Hi, please let me know if you managed to implement this stream in Chatfuel.

    14. Avatar of John

      Hi guy,
      Can you show me the picture and How to the Flow connected with each others.
      Where the Referral Opt-in Flow will be connected, is that connect in the Get Started button in the Invitation flow ?

      Thank you very much.

    15. Avatar of Darius Tilouine

      I watched your video 100 times and did not sleep for 3 days trying this. The zap isn’t working as you say in your video and i don’t find how to make it work.

      • Avatar of Max van Collenburg

        Hey Darius! Sorry to hear you can’t get it to work. Feel free to email me to let me know where you get stuck, so I can help you out 🙂

    16. Avatar of Tatchayapong

      So now we can use this flow to make our subscribers share our bot right?

      • Avatar of Max van Collenburg

        Yes, that’s what it’s for 🙂

        • Avatar of Carl Christian

          How about in the free plan how to make referral program

          • Avatar of Max van Collenburg

            I think you’ll need the premium features.

    17. Avatar of Enzo garro

      On the zapier step two.. “adding user by name” when we use the custom field “user custom fields invited by” it does not populate the name of our ref url. We tried sharing with friend to see but having trouble with this part. It does let us use a “name” tag although im not clear if we need the ” user custom fields invited by” tag because nothing seems to populate in this field for a name. What am i missing?

      • Avatar of Enzo garro

        Unless we use the “Find user by custom field” instead of ” find user by name” in step 2 then it seems as it pulls the ” user custom fields invited by ” data …

    18. Avatar of Chinh Dang

      Hi Max!

      Appreciate so much your guidance. You did the great thing!

      Unfortunately, ManyChat removed the SHARE button. Is there another way to run the referral program?

      Thank you!

      • Avatar of Max van Collenburg

        Hey Chinh! Unfortunately this strategy isn’t possible anymore 🙁

    19. Avatar of Christina

      Hello! I have problem with step 2 in zapier. The “user custom fields invited by” doesn’t return data when i make test. Could you help me ?

    20. Avatar of JOHN YPATIDIS

      HI! The share button is not available anymore , is there any other solution?

      • Avatar of Max van Collenburg

        Hey John! True, the share button is not available in Messenger anymore.

        Instead, people can now use the little arrow that shows up next to images & cards. When they click that, they can forward that card to someone else. So you could add an image & button to your ManyChat flow, and then tell people to click that arrow.

        Hope that helps!

    21. Avatar of Chris Downham

      Thanks for this.
      On the very first flow I can’t see how you are sharing the invite.
      Are you using a share card?

      Also you have sent me some images to my personal messenger and in it you have an image with Watch Part 1 as a clickable link underneath. I can share this and the person I shared with can click on the link. How are you doing this? I can get images like this to bring up the share button.


      • Avatar of Max van Collenburg

        Hey Chris! The share button is unfortunately not available anymore, people have to use the little arrow that shows up next to images & cards now 🙂

    22. Avatar of mei

      can you make a tutorial how to make rock paper scissor game please

      • Avatar of Max van Collenburg

        Hey Mei! I already have one on YouTube! You can find it here 😊

    23. Avatar of Cossi

      Is there an alternative to Zapier?

      • Avatar of Max van Collenburg

        Hey Cossi! Make is a great alternative. It’s slightly more advanced & way cheaper.

    24. Avatar of NextStory

      You are a true guru

    Leave a Comment