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

  1. 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 :

  1. Positionnez une activité Requête dans le workflow et double-cliquez dessus.

  2. Cliquez sur lien Editer la requête et sélectionnez Critères de filtrage.

  3. Cliquez dans la première cellule de la colonne Expression et cliquez sur le bouton Editer l'expression pour ouvrir l'éditeur d'expressions.

  4. Cliquez sur le bouton Sélection avancée pour sélectionner le mode de filtrage.

  5. Choisissez l'option Editer la formule à partir d'une expression et cliquez sur le bouton Suivant afin d'afficher l'éditeur d'expressions.

  6. 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.

  7. 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.

  8. Dans le requêteur, dans la première cellule de la colonne Opérateur, choisissez égal à.

  9. 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.

  10. Dans la liste des fonctions, double-cliquez sur la fonction Day accessible depuis le noeud Date.

  11. 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.

  12. 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.

NOTE
Si l'année en cours est bissextile, tous les destinataires nés le 29 février sont automatiquement inclus.

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.

CAUTION
Pour que les workflows s’exécutent, les workflows techniques liés au package Campaign doivent être démarrés. Voir à ce sujet la section Liste des workflows techniques.
Si les étapes d'approbation sont activées pour la campagne, les diffusions ne sont envoyées qu'une fois ces étapes confirmées. Voir à ce sujet la section Choix des processus à approuver.

recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1