The concept

The Milestone Referral for Messenger Template,  is one of our most successful templates (it can help you to achieve a high k-factor)! On one hand, this is due to the gamification logic of the template that motivates people to join and keep on referring their friends. On the other hand, the versatility of the template allows you to customize the flows according to your brand's tone and style. This type of campaign is now available as a plug-and-play template designed for Messenger (via Manychat). 

How it works

  • A participant has to invite X number of Messenger friends in order to reach the first milestone and be eligible for the corresponding reward. Once the first milestone is reached, the participant automatically receives a Messenger message with additional related details. 

  • Then, the participant has to invite another Y number of Messenger friends to get to the next milestone, and so on, until the last milestone is reached and the ultimate reward is won.

Step 1: Referring Friends

The Manychat subscribers/campaign participants, share the campaign with their Messenger friends in order to reach a milestone.

Step 2: Reaching A Milestone

As they refer friends, they unlock rewards. They can score more cool stuff when they refer more people, like free swag, tickets to events and free products.

Step 3: Getting Rewarded

The more friends they refer, the bigger the reward they earn. When people reach a specific number of referrals (milestone) they instantly win the corresponding prize.


  • People are not used to this kind of campaign, so Milestone referral campaigns have up to 5x better performance than giveaways.

  • You can combine several prizes and gamify the experience (you can always choose to have only coupon-based rewards, but we suggest to use a more creative marketing perspective to incentivize people to invite their friends).

The rewards:

As far as the rewards are concerned for each milestone, you can choose anything of value for your target audience. If you need help choosing rewards, take a look here.

The Flows

This template comes with some pre-defined messages. Our copy is good but yours will definitely be better 🔥

We suggest you go through all the Flows of the template and edit them according to your taste. 

We left comments in the flows to help you understand how things work. 

Wherever you see [EDIT] then, well, edit those messages!

For example:

Once you download the template, you'll see a Viral Loops "The Milestone Referral for Messenger" folder in your Flows menu.

These flows are:

The template is set by default to play out with these core flows:

  • ML-VL Optin link VL-optin message

  • ML-VL Basic flow

  • ML-VL API participation

  • ML-VL Invite flow

  • ML-VL Milestones

  • 1st milestone for referrer

  • 2nd milestone for referrer

  • 3rd milestone for referrer

  • 4th milestone for referrer

  • ML-VL Re-engage flows

  • Message is referrals, Referrals

The rest of the flows are optional and can be used per case:

  • ML-VL email flow: You don't need to use it for now as it already exists in the Basic flow, except if you want to incorporate it in another step of the campaign.

  • ML-VL Closing flow: Suitable in cases where the campaign isn't ongoing

👉🏻 You can find more information on the optional flows here.

This flow is linked to the Ref URL Growth Tool named ML-VL Optin Link and shouldn’t be edited by the campaign admin.

The template tracks referrals by using the Opt-in link on the invite card. Whenever a person clicks on it, our API checks whether this user is a participant to the campaign or not, by looking for a VL-id (custom user field). If that condition is true, they get a message that they already have joined. If the condition is false, the basic flow starts so they can opt in and get a VL-id value. The person that opted in by following the invite also gets a "Referral" tag in Manychat.

ML- VL-BasicFlow 

This is the flow that basically explains the campaign to your audience. On the first step, Viral Loops checks whether the campaign has expired. If not, it proceeds with a condition of whether the person who received the flow is an existing participant or not. 

  • If they are, then the flow stops after they receive a message saying that they have already participated. This can happen in cases where a participant clicks on the "I want it too" button (or however you've renamed it) to join the campaign again, instead of clicking the Share button on their invitation card (unknown concepts? - keep reading!). As the giveaway progresses those participants will get the Re-engage flows as expected.

  • If not, then the basic flow continues so they can opt-in to the campaign and get their invite card. 

There is a welcome message and the gallery-description of the milestones. Then, there are some instructions of how the milestones work and the button for joining   ("Start Referring" button). 

After clicking on the "Start Referring" button, Viral Loops checks whether they are a new participant. 

  • If so, the Participation API flow is triggered which assigns the user with a ML-VL-id. After the successful run of the API, the participant is now a campaign participant but with 0 referrals. 

  • If not, they get a message informing them that they have already joined the campaign triggering the Invite flow so they can get to their Invite card again.

Now it’s time for action. The participant is prompted to start referring their friends in order to reach the 1st milestone…

Next up: Milestone notifications

What is unique about this template is that it is highly unlikely for a milestone to be reached within a day (or 23 hours). As a consequence, the notifications for a milestone cannot be delivered via Messenger since this would be against the 24-hour window rule and your messages would never be delivered.

These extra steps (“Ask for email”, “Consent message” and “No Consent message”) help you get their explicit consent in order for them to receive an e-mail notification whenever reaching a milestone.

Then, the flow checks if there is a referrer id for the participant-invitee. That means that the flow checks if the participant joined the campaign organically or if they have been invited by someone else (a referrer).

If that condition is true, then another API is fired. This API is checking if the referrer of the participant has reached a milestone in Viral Loops, because of the successful referral. 

  • If yes, the custom field ML-VL-1.0-MilestoneAnnounced is false (that means that the referrer just reached a current milestone). So, there is another condition that checks for the number of the current referrals and sends the corresponding Milestone flow. 

[None of the above should be edited from the campaign admin, ONLY the copies of the flows]

The Invite flow [ML-VL Invite flow]

This flow is triggered right after someone has opted-in to your campaign and displays in image along with the "I want it too" CTA that contains the RefURL of the campaign. Having the RefURL on the CTA allows Viral Loops to keep track of the referrer/invitee connection as participants fowrward this image to their friends and click to join.

Here's how it looks like in Manychat: 

Once the invitee click on the button, the Basic flow will be triggered so they can join the Milestone campaign.

1st milestone for referrer (Email notification)

This the flow that is automatically initiated IF the referrer has reached the first milestone. This flow is already linked to the basic flow and is automatically triggered by the API “Trigger flow….” step.

If the participant has given you their email when signing up, they get an email that notifies them they have won a reward for referring X friends and prompts them to interact with your bot again. 

If they press the CTA to 'Keep inviting' we send them a reminder about all of the Milestone rewards and then lead them back to your bot and a new 24h window opens:

2nd, 3rd, 4th milestone for referrer (Email notifications)

These flows work exactly the same as the 1st milestone for referrer flow. They are also automatically initiated and the participant gets an email that notifies them about their reward and prompts them to interact with your bot again.

ML-VL Milestones

This flow is created in order to be linked to any flow, as a reminder for the milestones/rewards.

For example, the template uses it by default on the Re-Engage flows like this:

Essentially, it's being used as a step in the flow to display the milestone rewards again to the participant and then prompt them to keep inviting friends.

As you may also notice, we have included a keyword automation in the template and participants can type in "Milestones" at any point in order to see the rewards again. We have included this information on the Second Re-engage flow as well (keep reading for more on the follow-up flows).

⏱ 23 hours after the basic flow is sent, the Re-engage flows are triggered. Let's see what they do!

Re-engage flows [ML-VL re-engage flows]

📌 Part 1

This flow basically serves the purpose of a reminder so that participants will keep inviting their friends during the giveaway. The flow is triggered 23 hours after participation by default and so you can be compliat with Facebook's 24h rule.

On the first step, Viral Loops checks whether the campaign has expired. If not, it proceeds with a prompt for participants to follow your Instagram account. 

❗ Don't forget to replace the link with the link of your Instagram Page.

In the first follow-up message, we have added two buttons (“Sure” and “Not interested”) to reopen the 24-hour window for these users. 

  • The “Sure” button is necessary to open the 24-hour window as clicking on a URL button DOES NOT open up a 24-hour window (more specifically, the Instagram URL button). 

  • On the other hand, the “Not interested” button immediately leads to the second follow-up message.

Participants who click on the Follow button are given a "clicked on follow on Instagram" tag in Manychat.

The users that have received the “Follow on Instagram” message, will receive the second part of the reengage flow after 23 hours.

👉🏻 Feel free to add several social media accounts on this step to maximize your followers in several channels.

🆘 It's important to bear in mind that neither Viral Loops nor Manychat can actually track the Instagram follow action but only the CTR. However, the benchmark CTR for this button so far is 60% so it is highly likely that you'll see an increase in followers due to the campaign!

Second part of the Re-engage flow

On the first step, Viral Loops checks whether the campaign has expired. If not, it proceeds with the flow.

This part is also a reminder just like the first one but it differentiates from it in that it also provides participants with several keywords to retrieve:

  • their total referrals count (Referrals)

  • their Invite card (Forward)

  • the Milestone rewards (Milestones)

So, whenever a participant types in these keywords, they'll get the respective information by the bot.

Message is: Referrals

Whenever a user types in "Referrals", this flow is triggered. On the starting step we have a simple message block and then, we trigger the Participation flow to double-check their status. If they are a participant to the campaign, they will get a message informing them about their Referrals count so far.


  • If you wish to run a milestone campaign with only 3 instead of 4 milestones then, the 4nd condition along with the API on the basic flow should be deleted. 

  • If you wish to run a milestone campaign with more than 4 milestones, please refer to the instructions here.

Was this article helpful? Let us know!

Did this answer your question?