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 messag
  • 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 First re-engage flow
  • ML-VL Second re-engage flow
  • Message is referrals, Referrals

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

  • ML-VL e-mail field: Ideal if you want to gather emails
  • ML-VL Closing flow: Suitable in cases where the campaign isn't ongoing

You can find more information on the optional flows here.

ML-VL Optin Link Opt-In Message

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…

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

This the flow that is automatically initiated IF the referrer has reached the first milestone. It shouldn’t be somehow linked to the basic flow. This is happening in the API “Trigger flow….”.

There is a congratulations text, a reminder of the milestones-rewards and the invite flow, that should be sent to more Messenger friends, in order to reach the next milestone.

2nd, 3rd, 4th milestone for referrer

These flows work exactly the same as the 1st milestone for referrer flow. They are also automatically initiated.

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 Second Re-Engage flow 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).

Two days after the basic flow is sent, the First Re-engage flow is triggered and two days after that, the Second Re-engage flow is sent to the participants. Let's see what they do!

First Re-engage flow [ML-VL First re-engage flow]

This flow basically serves the purpose of a reminder so that participants will keep inviting their friends during the giveaway. The flow is triggered 4 days after participation by default, but you can change that if you like by editing the Basic flow and change its delay.

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.

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

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 Re-engage flow [ML-VL Second re-engage flow]

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

This flow 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?