Envoi d’un e-mail d’anniversaire sending-a-birthday-email
Introduction introduction
Ce cas pratique présente comment planifier l'envoi d'un email récurrent à une liste de destinataires le jour de leur anniversaire.
Pour réaliser ce cas d'utilisation, nous avons créé le workflow de ciblage suivant :
Ce workflow, exécuté quotidiennement, sélectionne tous les destinataires dont la date de naissance correspond à la date courante.
Ce cas pratique est également proposé sous la forme d‘une vidéo. Voir à ce propos la vidéo sur la création d‘un workflow.
Pour ce faire, créez une campagne et cliquez sur l’onglet Ciblage et workflows. Pour plus d'informations, consultez la section Construire la cible principale dans un workflow.
Respectez ensuite les étapes suivantes :
Planification de l’envoi configuring-the-scheduler
-
Tout d’abord, ajoutez un Planificateur pour déclencher l’envoi de la diffusion tous les jours. Dans l’exemple ci-dessous, la diffusion est créée tous les jours à 6 h.
Identification des destinataires dont c'est l'anniversaire identifying-recipients-whose-birthday-it-is
Après avoir paramétré l'activité Planificateur pour que le workflow se déclenche quotidiennement, identifiez tous les destinataires dont la date de naissance correspond à la date courante.
Pour cela, les étapes sont les suivantes :
-
Positionnez une activité Requête dans le workflow et double-cliquez dessus.
-
Cliquez sur lien Editer la requête et sélectionnez Critères de filtrage.
-
Cliquez dans la première cellule de la colonne Expression et cliquez sur le bouton Editer l'expression pour ouvrir l'éditeur d'expressions.
-
Cliquez sur le bouton Sélection avancée pour sélectionner le mode de filtrage.
-
Choisissez l'option Editer la formule à partir d'une expression et cliquez sur le bouton Suivant afin d'afficher l'éditeur d'expressions.
-
Dans la liste des fonctions, double-cliquez sur la fonction Day accessible depuis le noeud Date. Cette fonction renvoie le nombre représentant le jour de la date passée en paramètre.
-
Dans la liste des champs disponibles, double-cliquez sur la Date de naissance. La section supérieure de l'éditeur d'expression affiche alors la formule suivante :
code language-none Day(@birthDate)
Cliquez sur Terminer pour valider.
-
Dans le requêteur, dans la première cellule de la colonne Opérateur, choisissez égal à.
-
Cliquez ensuite dans la première cellule de la colonne Valeur et cliquez sur le bouton Editer l'expression pour ouvrir l'éditeur d'expressions.
-
Dans la liste des fonctions, double-cliquez sur la fonction Day accessible depuis le noeud Date.
-
Double-cliquez ensuite la fonction GetDate pour récupérer la date courante.
La section supérieure de l'éditeur d'expression affiche alors la formule suivante :
code language-none Day(GetDate())
Cliquez sur Terminer pour valider.
-
Répétez l'opération pour récupérer le mois de naissance correspondant au mois courant. Pour cela, cliquez sur le bouton Ajouter et répétez les étapes 3 à 10, en remplaçant la fonction Day par la fonction Month.
La requête complète est la suivante :
Reliez le résultat de l'activité Requête à une activité Diffusion e-mail pour envoyer un email à la liste de tous vos destinataires le jour de leur anniversaire.
Inclusion des destinataires nés un 29 février (facultatif) including-recipients-born-on-february-29th--optional-
Si vous souhaitez inclure tous les destinataires nés un 29 février, ce cas pratique présente comment planifier l'envoi d'un email récurrent à une liste de destinataires le jour de leur anniversaire, qu'il s'agisse d'une année bissextile ou non.
Les étapes principales de mise en oeuvre de ce cas pratique sont les suivantes :
- Sélection des destinataires
- Sélection en cas d'année non bissextile
- Sélection des destinataires nés le 29 février
Pour réaliser ce cas d'utilisation, nous avons créé le workflow de ciblage suivant :
Si l'année en cours n'est pas une année bissextile et que le workflow est exécuté le 1er mars, il faut sélectionner tous les destinataires dont l'anniversaire était la veille (le 29 février) et les ajouter à la liste des destinataires. Dans tous les autres cas, aucune action supplémentaire n'est requise.
Etape 1 : sélection des destinataires step-1--selecting-the-recipients
Après avoir paramétré l'activité Planificateur pour que le workflow se déclenche quotidiennement, identifiez tous les destinataires dont l'anniversaire correspond à la date courante.
La sélection des destinataires dont l’anniversaire correspond à la date actuelle est présentée dans la section Identification des destinataires dont c’est l’anniversaire.
Etape 2 : sélection en cas d'année non bissextile step-2--select-whether-or-not-it-is-a-leap-year
L'activité Test permet de vérifier si l'année est bissextile ou non et si la date courante est le 1er mars.
Si le test est vérifié (l'année n'est pas bissextile - il n'y a pas de 29 février - et la date courante est bien le 1er mars), la transition Vrai est activée et les destinataires nés un 29 février sont ajoutés à la diffusion du 1er mars. Dans les autres cas, la transition Faux est activée et seuls les destinataires nés à la date courante recevront la diffusion.
Copiez et collez le code ci-dessous dans la section Script d'initialisation de l'onglet Avancé.
function isLeapYear(iYear)
{
if(iYear/4 == Math.floor(iYear/4))
{
if(iYear/100 != Math.floor(iYear/100))
{
// Divisible by 4 only -> Leap Year
return 1;
}
else
{
if(iYear/400 == Math.floor(iYear/400))
{
// Divisible by 4, 100 and 400 -> Leap year
return 1;
}
}
}
// all others: no leap year
return 0;
}
// Return today's date and time
var currentTime = new Date()
// returns the month (from 0 to 11)
var month = currentTime.getMonth() + 1
// returns the day of the month (from 1 to 31)
var day = currentTime.getDate()
// returns the year (four digits)
var year = currentTime.getFullYear()
// is current year a leap year?
vars.currentIsALeapYear = isLeapYear(year);
// is current date the first of march?
if(month == 3 && day == 1) {
// today is 1st of march
vars.firstOfMarch = 1;
}
Ajoutez la condition suivante dans la section Branchements conditionnels :
vars.currentIsALeapYear == 0 && vars.firstOfMarch == 1
Etape 3 : sélection des destinataires nés le 29 février step-3--select-any-recipients-born-on-february-29th
Créez une activité Branchement et reliez l'une des transitions sortantes à une activité Requête.
Dans cette requête, sélectionnez tous les destinataires dont la date de naissance est le 29 février.
Combinez les résultats par une activité Union.
Reliez les résultats des deux branches de l'activité Test à une activité Diffusion e-mail pour envoyer un email à la liste de tous vos destinataires le jour de leur anniversaire, même ceux qui sont nés un 29 février en cas d'année non bissextile.
Créer une diffusion récurrente creating-a-recurring-delivery-in-a-targeting-workflow
Ajoutez une activité de type Diffusion récurrente basée sur le modèle de mail d'anniversaire que vous souhaitez envoyer.