skip to Main Content

How to Create a Referral Program With ManyChat

Max van Collenburg By Max van Collenburg

Update February 2019: Facebook added to it’s policies 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 to track how many people someone invited and thank them for it.

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?

Nothing.

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.

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

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:

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:

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.

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

This is where the magic is going to happen.

You should see two fields:

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:

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;

https://m.me/maxvcollenburg?ref=friend--Max+van+Collenburg

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.

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!

(woohoo!)

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.

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.

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.

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.

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.

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.

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)

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.

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.

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.

(click the image if it’s a bit small)

I’ll explain to you how the flow works.

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

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.

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

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.

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.

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!

This Post Has 40 Comments
  1. Tamás Rátkai says:

    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! ?

    1. Max van Collenburg says:

      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! ?

    2. Max van Collenburg says:

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

      You can watch it in Messenger by clicking this link:
      https://bit.ly/2Mu83RQ

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

        1. Max van Collenburg says:

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

    1. Max van Collenburg says:

      You’re welcome! 🙂

  2. 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!
    Daisy

    1. Max van Collenburg says:

      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

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

        1. Max van Collenburg says:

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

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

    1. Max van Collenburg says:

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

  4. 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 😃💪

    1. Max van Collenburg says:

      I’m happy it’s helpful, Thomas! 😄

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

    or

    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?

    Thanks

    Scott

  6. Stephanie says:

    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! 🙂

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

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

    1. Max van Collenburg says:

      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 😄

  8. 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!

    1. Max van Collenburg says:

      I’m happy it’s helpful Nguyen! 😄

  9. Anaxareaian says:

    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.

    1. Max van Collenburg says:

      Great tip Anaxareaian! Thanks 🙃

  10. Guy Miotke says:

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

    1. Max van Collenburg says:

      Hey Guy! Thanks, glad you like it!

      I think the process in Integromat is pretty similar 🙂

  11. Hello Max,

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

    Please help and thanks in advance,

    Craig

  12. Martin Harrisson says:

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

    1. Max van Collenburg says:

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

      1. Martin Harrisson says:

        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.

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

  14. Darius Tilouine says:

    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.

    1. Max van Collenburg says:

      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 🙂

  15. Tatchayapong says:

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

    1. Max van Collenburg says:

      Yes, that’s what it’s for 🙃

  16. Enzo garro says:

    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?

    1. Enzo garro says:

      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 …

  17. Chinh Dang says:

    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!

    1. Max van Collenburg says:

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

  18. Christina says:

    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 ?

Leave a Reply

Your email address will not be published. Required fields are marked *