Construire un système de referral avec Mailchimp

Les systèmes de referral sont toujours un moyen efficace de grossir sa base d’utilisateurs rapidement. Si vous vous êtes inscrit sur Growth Room, vous avez pu en faire l’expérience. Si vous ne vous êtes pas inscrit, il n’est pas trop tard ;)

Image for post
Cliquez pour vous inscrire et tester le système de referral dont il est question ici !

Pour faire ce système de referral, j’ai d’abord pensé utiliser KickoffLabs et puis, pour le fun, je me suis demandé si c’était compliqué à faire avec Mailchimp. Or, il se trouve que non. Voici donc le pas à pas du système de referral de Growth Room, fait avec rien d’autre que Mailchimp et quelques lignes de code.

Paramétrer la liste Mailchimp

La première étape se déroule dans Mailchimp. Commencez par sélectionner votre liste dans l’onglet “List”, puis cliquez sur Settings > List fields and merge tags. C’est ici que l’on choisit quelles informations on stocke dans sa liste. C’est en quelque sorte les colonnes de notre base de données.

La seule qui soit obligatoire est l’email mais par défaut, Mailchimp ajoute le nom et le prénom. Vous pouvez les conserver mais décocher la case “visible”, de sorte que l’utilisateur ne les verra pas sur l’email de bienvenue. Pourquoi les conserver ? Car il peut toujours être temps de faire de l’enrichissement de leads plus tard ;)

Cela étant, pour notre système de parrainage, nous aurons besoin de 3 autres champs :

  • Le code d’invitation : c’est le code unique de chaque inscrit. Cela permettra de générer un lien du style votresite.com?code=xxx et ainsi de tracker tous ceux qui s’inscriront par le biais de cet utilisateur.
  • Le code de parrainage : c’est le code du parrain de l’utilisateur en question. Bien sûr, si ce dernier n’a pas de parrain, ce champs sera vide.
  • Le nombre de parrainages : assez transparent ;)

Ainsi, si je m’inscris avec mon adresse come@growthroom.co, j’aurai un code d’invitation xxx et mon nombre de parrainages sera à 0. Puis, imaginons que j’invite bidule@growthroom.co. Alors, bidule@growthroom.co aura un code d’invitation yyy, un code de parrainage xxx (celui de come@growthroom.co) et un nombre de parrainages à 0. Le nombre de parrainages de come@growthroom.co passe à 1.

Enfin, à chaque champs correspond un merge tag, c’est à dire un nom de variable que je peux réutiliser dans mes emails mailchimp. A titre d’exemple, voici la structure de ma liste :

Image for post

Le code

Il faut maintenant écrire le code qui va inscrire et mettre à jour chaque utilisateur. Sur growthroom.co, j’ai choisi de ne récupérer qu’un email.
Note : le code qui suit est en PHP mais il ne devrait pas être difficile de le transposer dans un autre langage.

Image for post

Pour chaque inscrit, je récupère donc une variable de type POST qui a pour nom $email.
Si l’utilisateur est parrainé par quelqu’un, je récupère également une variable GET que j’appelle $ref.

Par ailleurs, pour générer un code de parrainage propre à chaque utilisateur, j’utilise le md5 de son email. A cela, deux raisons. D’une part, le md5 de chaque email lui est propre, j’ai donc un code unique pour chaque utilisateur. D’autre part, je peux retrouver n’importe quel utilisateur de ma liste mailchimp par son md5 (cf. l’API), ce qui est pratique pour tracker qui a parrainé qui et décompter le nombre de parrainages de chacun.

Ainsi, à chaque fois que le formulaire est soumis, j’exécute un script qui se compose de 3 parties :

  • L’initialisation : j’inclus l’API de Mailchimp et donne ma clé API (vous pouvez trouver la votre dans Account > Extras > API keys).
  • L’inscription de l’utilisateur : pour cela, je fais un POST sur l’endpoint lists/MYLIST/members. Voici le code (commenté) :
  • Si l’utilisateur a été parrainé, la mise à jour du compte du parrain : pour cela, je récupère avec un GET les informations du parrain (facile, puisque son code de referral correspond au md5 de son email), puis je PATCH les infos le concernant en incrémentant son nombre de parrainages de 1. Voici le code :

Le code complet peut être trouvé ici : https://gist.github.com/c2prods/8e4cac2eff4b59141479926e0dd4e057

Les emails automatiques

Nous voici donc avec un système capable de compter les parrainages de chaque utilisateur. Encore faut-il leur parler ! Pour cela, retour dans Mailchimp avec une fonction très pratique : l’automatisation. Il est ainsi possible d’envoyer des emails en fonction du comportement de l’utilisateur.

A cet effet, j’ai notamment défini 4 emails :

  • Welcome email : c’est l’email que l’utilisateur reçoit lors de son ajout à la liste.
    Trigger : Immediately after subscribers join your list.
  • Premier parrainage : lorsque que quelqu’un s’inscrit avec son lien, l’utilisateur reçoit un email de remerciement et un rappel de son lien unique de partage.
    Trigger : Immediately after subscribers list field, Nombre de parrainages, changes to 1.
  • Bonus 2 ref : idem lorsque le nombre de parrainage monte à deux.
    Trigger : Immediately after subscribers list field, Nombre de parrainages, changes to 2.
  • Bonus email : lorsque le nombre de parrainages atteint 3, j’envoie alors cet email de bonus contenant mes 10 outils de growth préférés.
    Trigger : Immediately after subscribers list field, Nombre de parrainages, changes to 3.

Les 3 premiers emails ont deux particularités :

  • D’une part, ils n’utilisent pas de template Mailchimp mais une template codée en HTML. Cela permet une meilleure déliverabilité. En changeant d’une template newsletter classique à une template html l’email de welcome, mon taux d’ouverture est passé de 50 à 80% !
  • D’autre part, ils font usage des fameux merge tags pour que chaque utilisateur ait son lien de parrainage dans l’email. En effet, en écrivant www.growthroom.co/r=*|CODE|*, Mailchimp remplace *|CODE|* par le merge tag afférent et donc par le code de parrainage de l’utilisateur. Voir ICI pour en savoir plus.
Image for post
L’email et le code

Quelques mots pour conclure

Quid de l’efficacité de ce système ? Après une semaine, 48,3% des inscrits à Growth Room étaient venus par le referral. Bien entendu, il existe plein d’autres versions de ce système : débloquer des bonus au fur et à mesure, faire un leaderboard…

Quoiqu’il en soit, il faut à mon avis garder 3 choses en tête au moment de construire un système de ce genre :

  • Toujours trouver le bon moyen d’amener le referral. Il doit apporter de la valeur sans pour autant sembler excluant à ceux qui ne partagent pas.
  • Faire très attention aux comportements opportunistes, particulièrement si l’on donne de l’argent. J’en ai eu quelques uns et ce n’est pas très grave dans la mesure où je ne donne qu’un email. Ce ne serait pas la même histoire avec des crédits ;)
  • Rien ne vaut le bouche-à-oreille organique. Shitty product = shitty growth — cette règle reste vraie !