avril 17, 2018

Créer simplement et rapidement un système de parrainage avec Brevo

Reading time about 9 min

Je m’appelle Clément Galopin, et je suis Consultant et Growth Hacker chez Listflow, une startup qui développe un Saas pour nettoyer et gérer vos fichiers de prospection.

Cet article vous présente une astuce que j’ai mise en place pour une de nos campagnes. Il est inspiré et adapté d’un article de Côme Courteault dont j’ai eu la chance de suivre le cours de Growth Hacking lors de ma participation à la formation Lion de TheFamily.

Pourquoi mettre en place un programme de parrainage ?

Une des principales clés du succès de votre produit est de réussir à le rendre viral. J’entends par là, réussir à susciter un engouement communicatif et participatif de la part de votre audience cible.

Pour ce faire, l’une des techniques les plus utilisées a toujours été le principe de parrainage : un utilisateur d’une solution est invité à la recommander à ses amis en échange d’une réduction sur ce même produit, ou du déblocage de nouvelles fonctionnalités.

Dans le domaine du digital, on peut ainsi citer Airbnb qui vous offre une réduction sur votre prochain hébergement, ou Dropbox qui vous offre de l’espace supplémentaire de stockage.

Aperçu du programme de parrainage de Airbnb
Aperçu du programme de parrainage de Airbnb
Aperçu du programme de parrainage de Dropbox
Aperçu du programme de parrainage de Dropbox

***

Le but de cet article est de construire très rapidement et simplement un système de parrainage à l’aide de Brevo, afin de générer du trafic viral.

Tout système de parrainage repose sur deux principes clés :

  • l’invitation ou la recommandation de nouveaux clients par les clients actuels (qui deviennent alors des “parrains”).
  • la “récompense” des parrains ayant invité un certain nombre de nouveaux clients.

Pour créer notre système de parrainage, nous avons besoin de cinq composants distincts :

  • Un compte Brevo avec une liste destinée à recueillir les informations des parrains et des utilisateurs invités.
  • Un formulaire via lequel le parrain pourra inviter ses amis.
  • Une page php qui traitera les données soumises via le formulaire et mettra à jour la liste Brevo.
  • Les templates Brevo des emails qui seront envoyés à l’invité et au parrain.
  • Les scenarii d’Automation Marketing Sendiblue qui déclencheront l’envoi des emails.

Afin de ne pas surcharger cet article, je partirai ici du principe que vous disposez déjà d’un compte Brevo (un compte gratuit convient tout à fait).

Le code complet se trouve sur GitHub à cette adresse : https://github.com/clementgalopin/sendinblue-referral-system

Nettoyez et enrichissez vos listes de contacts avec Listflow

ListFlow est un outil simple pour identifier les emails / téléphones invalides, ajouter des dizaines d’infos supplémentaires, et scorer sur mesure vos contacts.

500 crédits gratuits par mois

Étape 1 : la création du formulaire d’invitation

Il s’agit d’une page toute simple destinée à envoyer l’adresse de l’ami invité (et celle du parrain) à la page backend.php, qui interagit avec Brevo.

Je vous laisse choisir la façon dont vous souhaitez apporter l’adresse email du parrain (par exemple, récupérer l’adresse de la personne logguée).

Pour ma part, je choisirai dans cet article de récupérer une adresse email passée en paramètre dans l’adresse de la page via la variable “parrain” : index.php?parrain=EMAIL_ADDRESS.

Cette technique a pour avantage de permettre des tests rapides, et de rendre possible le partage du lien de parrainage.

Cliquez ici pour voir le code : https://raw.githubusercontent.com/clementgalopin/sendinblue-referral-system/master/index.php

Étape 2 : la création de la liste Brevo des personnes invitées

Il s’agit d’une liste d’utilisateurs “normale”, je vous encourage d’ailleurs à utiliser la liste de vos utilisateurs.

Vous devrez simplement ajouter deux attributs personnalisés : le premier (“REF”) servira à stocker l’email du parrain ayant invité l’utilisateur, et le second (“PAR”) permettra d’enregistrer le nombre de parrainages effectués.

Rendez-vous sur cette page pour ajouter les attributs : https://my.sendinblue.com/lists/add-attributes

Ajout des attributs personnalisés
Ajout des attributs personnalisés

À chaque fois qu’un parrain soumet une adresse email via le formulaire, celle-ci est ajoutée dans la liste avec l’adresse du parrain comme attribut REF.

Le parrain voit quand à lui son attribut PAR (nombre de parrainages) incrémenté d’une unité.

Aperçu de la liste
Aperçu de la liste

Notez bien l’ID de votre liste, nous en aurons besoin plus tard.

Étape 3 : l’interaction avec l’API Brevo

Nous allons utiliser l’API Brevo (v3) pour interagir avec notre liste et les fonctions d’envoi d’email.

L’intégration de l’API Brevo est très facile en php : elle se résume au téléchargement de la librairie, et à l’ajout de trois lignes php au début de notre fichier backend.php :


		require_once('./APIv3-php-library-master/autoload.php');
		Brevo\Client\Configuration::getDefaultConfiguration()->setApiKey('api-key',’VCTRE_API_KEY_ICI’);
		$api_instance = new Brevo\Client\Api\ContactsApi();
    

Vous pouvez obtenir votre clé API (v3) ici : https://account.sendinblue.com/advanced/api

Et la dernière version de la librairie ici : https://github.com/sendinblue/APIv3-php-library/

N’oubliez pas de remplacer les paramètres par votre propre clé API, le chemin du dossier dans lequel vous avez sauvegardé la librairie Brevo, et votre id de liste Brevo.

Le fonctionnement de la page backend.php est le suivant :

  • je récupère les adresses mails du parrain et de l’invité
  • je vérifie si l’email de l’invité n’est pas déjà enregistré, puis je le sauvegarde dans la liste en indiquant bien qui l’a parrainé (“REF”)
  • je mets alors à jour le nombre de parrainages du parrain (“PAR”)

Cliquez ici pour voir le code : https://raw.githubusercontent.com/clementgalopin/sendinblue-referral-system/master/backend.php

Je vous laisse étudier le code, que j’ai développé et commenté au maximum afin d’en rendre la compréhension plus aisée.

Je suis conscient que l’utilisation de la fonction die() n’est pas particulièrement recommandée pour la gestion des erreurs, mais je l’ai utilisée ici aussi dans le but de simplifier le code.

J’ai pour ma part opté pour un système de gestion des erreurs multilingues renvoyant des logs en format JSON, afin que cette page puisse être appelée par des requêtes AJAX.

Étape 4 : Aller plus loin avec le Marketing Automation de Brevo

Pour résumer sommairement, nous avons maintenant une sorte d’annuaire automatisé de tous les parrains et parrainés, sauvegardé dans une liste Brevo.

De plus, cette liste contient un bilan comptable du nombre de parrainages de chacun.

***

Nous avons besoin d’envoyer deux emails distincts :

  • un email d’invitation (à la personne invitée par un parrain).
  • un email de félicitations (au parrain ayant dépassé un certain nombre de parrainages effectués).

Il nous faut dès lors créer un template pour chacun de ces deux emails.

Étape 4.1 : la création des templates d’invitation et de félicitation

Nous allons commencer par créer ici (https://my.sendinblue.com/camp/listing#temp_active_m) le template de l’email qui sera envoyé à l’invité suite à la soumission de son adresse email par le parrain.

Dans le but d’augmenter la délivrabilité de notre email, nous allons le créer en HTML pur et insérer la variable Brevo {REF} qui contient le nom du parrain, afin que l’invité sache que cet email n’est pas un SPAM sorti de nulle part.

Voici un exemple basique d’email :

Bonjour,

Vous aimez le vin ? Votre ami {REF} nous a dit que oui 😉

Rendez-nous visite dans notre cave !

A bientôt

Vous n’avez plus qu’à suivre la même démarche pour le template de félicitation. N’oubliez pas de bien différencier les noms de vos deux templates !

Étape 4.2 : l’envoi des emails grâce au Marketing Automation

Nous allons maintenant exploiter les données de notre liste Brevo en créant deux scenarii de Marketing Automation destinés à envoyer les emails d’invitation et de félicitations.

Étape 4.2.1 : le scénario d’envoi de l’email d’invitation

Rendez-vous sur l’onglet Automation de Brevo, puis cliquez sur “créer un nouveau scénario”.

Choisissez le type “scénario personnalisé”, puis renseignez un nom de scénario et une description.

Vous arrivez alors sur l’interface de construction de scénario de Brevo, au milieu de laquelle vous distinguez un bouton “ajouter un point d’entrée”.

Un point d’entrée est un élément qui va déclencher votre scénario. Dans le cas qui nous intéresse ici, nous voulons envoyer un email à toute personne qui est invitée, donc lorsqu’une personne est ajoutée à notre liste.

Vous allez donc cliquer sur “ajouter un point d’entrée”, puis “activité des contacts” et enfin “un contact est ajouté à une liste”.

Choix du type de point d'entrée du scénario
Choix du type de point d’entrée du scénario

Sélectionnez alors dans la liste déroulante le nom de la liste Brevo dans laquelle vous stockez vos utilisateurs, et cliquez sur ok. Dans mon cas, il s’agit de la liste “Listflow – Referral”.

Vous êtes alors renvoyé vers l’interface de construction de scénario de Brevo, où vous pouvez voir que votre point d’entrée a été créé, et qu’un bouton “plus” est désormais situé sous celui-ci.

Ce bouton est destiné à ajouter une étape à votre scénario. Cliquez dessus, puis sur “envoyer un email”.

Sélectionnez alors dans la liste déroulante le nom du template d’invitation que vous avez créé tout à l’heure, puis cliquez sur ok.

C’est aussi simple que cela ! Vous avez créé votre scénario d’automation, et chaque personne invitée par un parrain recevra désormais cet email.

Votre scénario d’automation Brevo de l’invitation de nouveaux clients.
Votre scénario d’automation Brevo de l’invitation de nouveaux clients.

Étape 4.2.2 : le scénario d’envoi de l’email de félicitations

Nous allons maintenant suivre la même démarche pour l’email de félicitations destiné aux parrains ayant invité un certain nombre d’utilisateurs.

Appuyons nous pour cela sur l’attribut “PAR”, qui contient le nombre de parrainages effectués par chaque utilisateur.

Créez un nouveau scénario automatisé, mais choisissez cette fois “activité des contacts” et “condition sur un attribut des contacts” comme point d’entrée.

Vous arrivez alors sur une fenêtre vous invitant à choisir sur quel attribut porte la condition et quelle sera celle-ci.

Il faut bien entendu choisir l’attribut “PAR”. J’ai pour ma part opté pour la condition “supérieur à 9”, afin que cet email de félicitations soit envoyé à toute personne ayant parrainé 10 personnes.

La condition du point d’entrée porte cette fois sur l’attribut “PAR”
La condition du point d’entrée porte cette fois sur l’attribut “PAR”.

Après avoir validé ce point d’entrée, ajoutez une nouvelle étape à votre scénario en définissant l’envoi du template de félicitations, et le tour est joué !

scénario marketing automation envoi email félicitations
Votre second scénario d’automation est sur les rails.

Conclusion

La liste et le templates sont maintenant créés, la valeurs de votre clé API renseignée dans le fichier backend.php, et les fichiers importés sur votre site, tout est prêt à être utilisé !

Comme je l’ai abordé avec la question de la gestion des erreurs et le multilinguisme (pour les erreurs ET les templates), il existe encore beaucoup de possibilités d’amélioration.

Pour des raisons de vie privée, je vous conseille aussi d’encoder les emails des parrains avec la fonction md5() dans l’attribut REF.

Une autre des pistes majeures est notamment le système de récompense pour le parrain.

Vous pouvez par exemple créer une nouvelle étape dans le scénario d’automation de félicitations, et appeler un webhook sur votre site afin d’offrir un bon d’achat au parrain… ou toute autre récompense.

Clément GalopinA propos de l’auteur : Clément Galopin est consultant chez Cartelis et Growth Hacker chez Listflow.io. Il contribue au blog de Brevo pour nous partager ses astuces growth hacking et nous montrer de nouvelles façons d’utiliser notre plateforme de marketing automation !

Ready to grow with Brevo?

Get the tools you need to reach your customers and grow your business.

Sign up free