Symplify prend en charge les handlebars comme méthode d’utilisation des espaces réservés dans votre contenu, du suivi personnalisé et des requêtes HTTP dynamiques, pour ne citer que quelques exemples.
Cet article montre quelques exemples de structure permettant de créer un espace réservé pour les données basé sur le code du guidon. Attention, c’est du sérieux!
Table des matières de l'article :
- Données de destinataires
- Historique des achats
- Tableaux JSON
- Opérateurs arithmétique
- Entités SYMPLIFY
- Expression régulières (RegEx)
Symplify offre également un moyen de créer des snippets (ou des macros) pour vos handlebars créé et plus souvent utilisés.
Pour creuser dans le traitement des snippets, veuillez lire ici!
Les handlebars et les snippets sont d'excellents outils pour visualiser et transformer les données afin de répondre à vos besoins en matière de communication.
Veuillez noter que tous les handlebars fonctionnant dans le contenu du message fonctionnent également dans les liens et dans le suivi, mais rappelez-vous que, dans les liens, la valeur du résultat sera encodée en URL.
Données liées au destinataire
Si vous souhaitez vous connecter à une valeur d'attribut de destinataire, vous devez taper contact qui spécifie le destinataire et attributename qui spécifie l'attribut spécifique connecté à votre destinataire / contact. Par exemple, le prénom du destinataire.
Tous les handlebars doivent commencer et se terminer par des accolades, commencer par {{ et se terminer par }}.
Ainsi, un exemple de création d'un espace réservé pour les données de destinataire first name ressemblerait à ceci:
{{contact.firstName}}
et l'ajouter dans le contenu du courriel remplacerait l'espace réservé par les données réelles dans le champ Prénom du destinataire / contact.
Fonctions avec données de destinataire (contact + attributename)
Vous pouvez transformer les données de vos destinataires en utilisant différentes fonctions.
top |
Changer la case de lettres
{{#capitalize}}{{contact.firstName}}{{/capitalize}} Martin
{{lower contact.firstName}} martin
{{upper contact.firstName}} MARTIN
top |
Modifier le format de date
Le format de date correct pour une valeur d'attribut est yyyy-MM-dd (c'est-à-dire {{contact.dateOfBirth}} renverra le 1979-08-03), mais cela ne correspond pas toujours à la façon dont vous souhaitez visualiser une date dans votre communication. Avec le handlebar, vous pouvez facilement modifier vos dates.
En ajoutant une chaîne de format à votre handlebar de date, vous pouvez modifier la sortie de date:
{{date "d MM. yyyy" contact.dateOfBirth}}
retournera '3 août 1979' à partir de la valeur originale 1979-08-03.
Et changez 1979-08-03 en '3 août' simplement en écrivant
{{date "d MMMM" contact.dateOfBirth}}
Jour de la semaine
Vous pouvez également utiliser localizedDate pour afficher le jour de la semaine:
{{localizedDate "EEEE" "fr-FR" contact.dateOfBirth}}
Ceci retournera "mardi" par exemple.
Les différentes options sont:
La langue par défaut est l'anglais mais vous pouvez changer de langue en ajoutant localizedDate et le code de langue tel que sv-SE (suédois) ou de-DE (allemand), c'est-à-dire
{{localizedDate "dd MMMM yyyy" "fr-FR" contact.dateOfBirth}}
retournera '3 août 1979'.
Afficher tous les codes de langue pris en charge.
top |
Modifier l'URL-encoder
Tous les handlebars fonctionnant dans le contenu du message fonctionnent également dans les liens et dans le suivi, mais dans ces cas, la valeur du résultat affiché doit être codée en URL.
{{urlEncode contact.firstName}}
<a href=”{{noEncode contact.linkTarget}}”>
<a href=”{{contact.linkTarget}}”>
top |
En utilisant la fonction print, vous pouvez ajouter un repli si la valeur d’un attribut de destinataire est vide.
Bonjour {{print contact.firstName "cher client"}}
Affichera, Bonjour Martin ou si l'attribut est vide, Bonjour cher client.
Vous pouvez également combiner la fonction print avec d'autres fonctionnalités, telles que la modification de la case de lettre:
BONJOUR {{#upper}}{{print contact.firstName "CHER CLIENT"}}{{/upper}}
Imprimera BONJOUR MARTIN ou, si l'attribut est vide, BONJOUR CHER CLIENT.
top |
Switch et compare
Vous pouvez utiliser switch pour modifier la sortie de vos données. Cela peut être utile si, par exemple, vous importez des codes abrégés pour vos produits mais souhaitez écrire le nom complet du produit dans votre message.
Dans l'exemple ci-dessous, le code du handlebar recherche différentes valeurs dans l'attribut destinataire: product_title_code et, en fonction de la valeur potentielle, telles que: iP, AN ou Wi, vous obtiendrez une valeur de rendu correspondante dans votre message; dans le cas ci-dessous, l'informations sur le chargeur correspondant à la marque de votre téléphone.
{{#switch contact.product_title_code}}{{#compare "==" 'iP'}}Apple iPhone charger{{/compare}}{{#compare "==" 'AN'}}Android phone charger{{/compare}}{{#compare "==" 'Wi'}}Windows phone charger{{/compare}}{{#default}}Default value{{/default}}{{/switch}}
L'exemple ci-dessus rendra
Apple iPhone charger (si la valeur de l'attribut product_title_code est égale à iP)
or
Android phone charger (si la valeur de l'attribut product_title_code est égale à AN)
or
Windows phone charger (si la valeur de l'attribut product_title_code est égale à Wi)
Mais la valeur de comparaison n'a pas besoin d'être complète, vous pouvez également transformer des valeurs commençant par quelque chose de spécifique:
{{#switch contact.status}} {{#stringcompare "startsWithIgnoreCase" "pro_"}}professional{{/stringcompare}} {{#default}}creative mind{{/default}} {{/switch}}
L'exemple ci-dessus rendrait:
professionnel pour tous les contacts avec des valeurs d'attribut commençant par pro_.
Vous pouvez également comparer vos données et modifier la sortie si une valeur est supérieure à une valeur donnée.
Level: {{#switch contact.bonusPoints}}{{#compare ">" 100}}Goldmember{{/compare}}{{#compare "<" 100}}Silvermember{{/compare}}{{#default}}New{{/default}}{{/switch}}
L'exemple ci-dessus rendra
Level: Goldmember (si la valeur de l'attribut bonusPoints est supérieure à 100)
ou
Level: Silvermember (si la valeur de l'attribut bonusPoints est inférieur à 100)
top |
Opérateurs de comparaison
Plus grand que: >
Comment utiliser:
{{#compare ">" 100}}
Resultat: Correspond si la valeur est supérieure à 100.
Plus petit que: <
Comment utiliser
{{#compare "<" 100}}
Resultat: Correspond si la valeur est inférieure à 100.
Équivaut à: ==
Comment utiliser:
{{#compare "==" 100}}
Resultat: Correspond si la valeur est égale à 100.
VEUILLEZ NOTER : Ceci peut comparer des chaînes et des nombres. Lors de la comparaison de chaînes, la casse est ignorée.
Modulus: %
Comment utiliser:
{{#compare "%" 4 0}}
Resultat: Correspond si la valeur est divisible par 4 avec résultante 0.
Tous les opérateurs de comparaison peuvent être négatifs avec le préfixe !
Comment utiliser:
{{#compare "!=" 100}}
Resultat: Correspond si la valeur n'est pas 100.
Vous pouvez également prédéfinir le contenu d'attribut que vous souhaitez sélectionner et transformer.
Dans l'exemple ci-dessous, nous utilisons {{message.sendtime}}. Ce handlebar seul rendrait une date et une heure brutes (2019-02-07T08: 55: 30.587). Mais en spécifiant M pour mois, vous pouvez choisir le mois et le rendre différemment:
{{#switchOnExpression "{{date 'M' message.sendtime}}"}}
{{#compare "==" '1'}}January{{/compare}}
{{#compare "==" '2'}}February{{/compare}}
{{#compare "==" '3'}}March{{/compare}}
[and so on...]
{{/switchOnExpression}}
Si la date du jour est le 2019-02-07, l'exemple ci-dessus affichera:
February
Pour les dates de remplacement, vous pouvez vous référer à:
y = année
M = mois
d = jour
When
Le handlebar when est similaire à switch et compare mais convient pour des opérations plus simples où l'on souhaite faire correspondre une valeur spécifique.
{{#when contact.level "equals" "gold"}}
For gold members, our sale starts on January 2.
{{else}}
Our sale starts on January 5.
{{/when}}
Vous pouvez utiliser when avec différents opérateurs :
Text
-
equals
sensible à la casse -
startsWith
sensible à la casse -
contains
sensible à la casse
Vous pouvez mettre "not" devant tous les éléments ci-dessus :
{{#when contact.level "notEquals" "VIP"}} Do this to become a VIP member! {{/when}}
Vous pouvez également terminer tout ce qui précède par "ignoreCase" pour ne pas tenir compte de la casse de la valeur :
{{#when contact.level "equalsIgnoreCase" "VIP"}} You are a VIP member! {{/when}}
Nombres
-
==
est exactement égal à -
<=
nombre inférieur ou égal à -
>=
nombre supérieur ou égal à -
<
nombre inférieur à -
>
nombre supérieur à
{{#when contact.points ">=" 500}} You are a gold member! {{/when}}
Vous pouvez également utiliser deux when à la suite de l'autre pour créer une gamme :
{{#when contact.points ">=" 1}}{{#when contact.points "<=" 250}} Membership: Silver{{/when}}
{{/when}} {{#when contact.points ">=" 251}}{{#when contact.points "<=" 500}} Membership: Gold{{/when}}
{{/when}}
Vous pouvez également l'utiliser avec les données relatives à l'historique des achats et, par exemple, restituer les informations relatives à un achat :
{{#when ph.last.paymentOption "equals" "VISA"}}{{#when ph.last.totalPrice ">" 400}} You have earned a bonus with your latest purchase! {{/when}}{{/when}}
Anniversary
Le handlebar anniversary vous permet de rendre le contenu lorsqu'un attribut de date correspond au mois et au jour d'aujourd'hui.
(S'il n'y a pas de correspondance d'anniversaire pour un contact, la fonction ne renverra aucune donnée).
Pour rendre le contenu d'un événement annuel :
{{#ifAnniversary contact.date}} Time flies! You've already been a member for {{anniversary contact.date}} {{#ifAnniversary contact.date 1}}year{{else}}years{{/ifAnniversary}}!{{/ifAnniversary}}
Renverra par exemple: Time flies! You've already been a member for 2 years.
Vous pouvez également définir une valeur de début ou de fin pour le moment où votre handlebar doit générer du contenu, ou quel contenu.
{{#ifAnniversary contact.date 1}}
Ne sera rendu que si la date est exactement il y a 1 an.
Par exemple, si la date d'aujourd'hui est 2022-01-01 ci-dessus correspondra à 2021-01-01
{{#ifAnniversary contact.date 1}} Time flies! You have already been a member for a whole year! {{/ifAnniversary}}
Et vous pouvez ajouter une valeur finale pour créer une période d'années :
{{#ifAnniversary contact.date 2 5}}...
Le rendu n'est possible que si la date est comprise entre 2 et 5 ans.
Par exemple, si la date d'aujourd'hui est 2022-01-01 ci-dessus correspondra à 2020/2019/2017/2016-01-01.
Comme vous pouvez le voir dans le premier exemple, les valeurs de début et de fin peuvent également être utilisées pour décider du contenu du placeholder :
...{{#ifAnniversary contact.date 1}}year{{else}}years{{/ifAnniversary}}
Cela donnera le texte "year" s'il s'agit d'un anniversaire d'un an et "years" s'il s'agit d'autre chose.
top |
Données d'historique d'achats et Handlebars
Vous pouvez utiliser le handlebar pour afficher les données de l'historique des achats dans votre communication. Veuillez noter que dans certains cas, vous avez besoin de segments pour cibler la ligne correcte dans votre base de données d'historique.
Toutes les colonnes de votre historique d’achat (statiques et personnalisées) peuvent être utilisées en ajoutant le nom de la colonne à votre handlebar. Les colonnes statiques de l'historique des achats sont les suivantes:
transactionDate
ItemPrice
ItemCount
TotalPrice
Pour afficher la date de transaction la plus récente pour un client, vous pouvez simplement écrire:
{{ph.last.transactionDate}}
Il existe actuellement trois handlebars disponibles pour les données de la colonne Historique des achats pour l'utilisation du contenu du message:
première / dernière ligne de commande
Exemple: «Êtes-vous satisfait de votre machine à café?"
première / dernière ligne de commande basée sur un segment
Exemple: «Vous manquez de café?”
toutes les lignes de commandes
Exemple: «Ceci est l'historique de vos commandes»
Première / dernière ligne de commande
Le handlebar {{ph.first.YourPHcolumn}} récupérera la valeur la plus ancienne, basée sur TransactionDate, dans la colonne de l'historique des achats sélectionnée.
Le handlebar {{ph.last.YourPHcolumn}} récupérera la valeur la plus récente, basée sur TransactionDate, dans la colonne de l'historique des achats sélectionnée.
Par exemple, ce sont les données de l'historique des achats que nous avons:
Si on ajoute ce handlebar:
{{ph.first.ProductCategory}}
cela donnera: fruits.
{{ph.last.ProductCategory}}
cela donnera: légume.
{{ph.last.transactionDate}}
cela donnera 2017-11-20.
Première / dernière ligne de commande basée sur un segment
Vous pouvez créer un segment d'historique d'achats pour cibler un événement de l'historique du client spécifique. Le segment peut être utilisé en tant que segment principal ou de contenu.
Le handlebar {{ph.firstInSegment.YourPHcolumn}} récupérera la valeur la plus ancienne, en fonction de TransactionDate, dans la colonne de l'historique des achats sélectionnée correspondant à votre segment.
Le handlebar {{ph.lastInSegment.YourPHcolumn}} récupérera la valeur la plus récente, basée sur TransactionDate, dans la colonne de l'historique des achats sélectionnée correspondant à votre segment.
Par exemple, nous créons un segment pour tous nos clients qui ont acheté quelque chose dans la catégorie de produit «grains de café» il y a trois semaines. Ensuite, nous pouvons leur envoyer un message disant:
Hé {{contact.firstName}}, êtes-vous à court de {{ph.lastInSegment.ProductName}}?
Selon les données de l'historique des achats dans la colonne ProductName, le rendu sera différent pour nos clients producteurs de grains de café:
Hey Bruce, est-ce que tu es à court de Silky Arabica?
ou
Hey Lady Gaga, est-ce que vous manquez de Bold Robusta?
Toutes les lignes de commande
Si vous souhaitez afficher l'historique complet des achats d'un client, vous pouvez le faire en utilisant {{ph.all}}. En utilisant la syntaxe ci-dessous, vous pouvez choisir les colonnes à inclure. L'ordre de vos éléments va de la première ligne à la dernière ligne en fonction de TransactionDate.
{{#each ph.all}} {{this.YourPHcolumn}} {{/each}}
Cela peut être utile si vous souhaitez par exemple afficher la liste complète des articles achetés sur une page de profil de microsite.
Vous pouvez également rendre toutes les lignes d'achat correspondant à un segment spécifique.
{{#each ph.allInSegment}} {{this.YourPHcolumn}} {{/each}}
Notez s'il vous plaît! Si aucune règle d'historique des achats n'est trouvée, cela fonctionnera, car Symplify affichera tout l'historique des achats de la colonne sélectionnée.
Cela sera utile si, par exemple, vous souhaitez effectuer des achats dans une période ou une catégorie de produit spécifique.
Transformez vos données d'historique des achats
Il est également possible de combiner le guidon ci-dessus avec les fonctions existantes du guidon pour les dates ou le texte.
{{date 'd MMM. yyyy' ph.last.transactionDate}}
rendra le 3 novembre 2017 (à partir de l'original «2017-11-03»)
ou
{{capitalize ph.last.ProductName}}
restituera Silky arabica (à partir de l'original "silky arabica").
top |
Tableaux JSON
Lors de l’envoi de confirmations de commande, vous pouvez enregistrer un tableau JSON dans un attribut et utiliser le handlebar pour restituer les données dans votre message.
{{#jsonRender contact.attributeName}} {{#each dataAsArray}} {{.}} {{/each}} {{/jsonRender}}
Si nous avons le tableau suivant dans un attribut de destinataire appelé LastOrder:
{
"Products":[
{
"Product":"Bold Robusta",
"Price":"150 SEK"
},
{
"Product":"Silky Arabica",
"Price":"120 SEK"
}
]
}
Nous pouvons rendre ces données comme ceci:
Votre commande:
{{#jsonRender contact.LastOrder}}
{{#each Products}}
{{Product}} ({{Price}})<br>
{{/each}}
{{/jsonRender}}
Resultat:
Votre commande:
Bold Robusta (150 SEK)
Silky Arabica (120 SEK)
top |
Opérateurs arithmétiques
Vous pouvez modifier la valeur de sortie de vos valeurs de nombre et de date à l'aide d'opérateurs arithmétiques.
top |
Nombres
Dans les exemples ci-dessous, notre destinataire a les données suivantes:
{{add contact.value1 contact.value2}}
ajout de valeurs dans les attributs valeur1 et valeur2
exemple rend 15
{{subtract contact.value1 contact.value2}}
soustrait des valeurs dans les attributs valeur1 et valeur2
exemple rend 5
{{multiply contact.value1 contact.value2}}
multiplier les valeurs dans les attributs valeur1 et valeur2
exemple rend 50
{{divide contact.value1 contact.value2}}
division des valeurs dans les attributs valeur1 et valeur2
exemple rend 2
top |
Changer les date
Dans les exemples ci-dessous, notre destinataire a les données suivantes:
{{dateAdd contact.StartDate 2 "DAYS"}}
ajouter 2 jours
example renders 2018-05-24
{{dateAdd contact.StartDate 2 "WEEKS"}}
ajouter 2 semaines
exemple rend 2018-06-05
{{dateAdd contact.StartDate 2 "MONTHS"}}
ajoutant 2 mois
exemple rend 2018-07-22
{{dateAdd contact.StartDate 2 "YEARS"}}
ajoutant 2 ans
exemple rend 2020-05-22
{{dateAdd contact.StartDate 2 "DAYS" "MM/dd/YYYY"}}
ajouter 2 jours au format mm / dd / YYYY
exemple rend 05/24/2018
Autre
{{random 1 1000}}
définit un nombre aléatoire compris entre 1 et 1000
top |
Entités Symplify
Vous pouvez également utiliser des entités créées par Symplify pour restituer des données:
{{contactdb.id}} - D de liste de destinataires
{{contactdb.name}} - nom de la liste de destinataires
{{contact.originalId}} - L'OriginalID d'un destinataire
{{message.id}} - l'ID système du message
{{message.guid}} -
{{message.sendtime}} - renvoie l’horodatage envoyé au format complet ISO8601, c’est-à-dire aaaa-MM-jj’HH: mm: ss.SSS (i.e 2014-06-25T15: 30: 24.123).
Pour les autres formats, utilisez la fonctionnalité de date ou le commutateur.
{{message.abslice}} (‘A’, ‘B’, ‘C’ or ‘D’) Si le message est envoyé dans le cadre d’un test AB (CD).
VEUILLEZ NOTER: Si le message réel fait partie de la version gagnante, la tranche de la version gagnante sera retournée.
{{campaign.id}} - le DeliveryID du courriel
{{campaign.name}} - le nom du courriel
{{campaign.segmentid}} - ID de règle de segment maître. VEUILLEZ NOTER: Si vous obtenez -1 (moins un), il n’existe pas de règle principale comme pour les envois transactionnels.
{{campaign.segmentname}} - nom de la règle du segment maître
{{project.id}} - l'identifiant du projet
{{project.name}} - le nom du projet
{{link.id}} - l'identifiant du lien
{{link.name}} - le nom du lien
{{link.categories}} - une chaîne séparée par des virgules contenant toutes les catégories ajoutées au lien
{{link.segmentid}} - l'identifiant du segment ajouté au bloc contenant le lien lors de la segmentation du contenu
{{link.segmentname}} - le nom du segment ajouté au bloc contenant le lien
{{link.clicktime}} - renvoie l’heure du lien en plein format ISO8601, c’est-à-dire aaaa-MM-jj’HH: mm: ss.SSS (i.e 2014-06-25T15: 30: 24.123).
Pour les autres formats, utilisez la fonctionnalité de date.
top |
Expression régulière (RegEx)
La fonctionnalité d'expression régulière est disponible à l'aide de la syntaxe:
{{#regex valueToMatchIn regexPattern}}
Texte personnalisé et valeurs correspondantes en utilisant {{match.1}}, {{match.2}}, etc.
{{/regex}}
valueToMatchIn peut être un attribut de modèle tel que contact.firstName ou une chaîne codée en dur «Hello world».
regexPattern utilise Java SE 7. Documentation sur:
https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
Exemple pratique:
{{#regex ‘Hello World!’ ‘(.+) [World](.)’}}
{{match.1}} Universe{{match.1}}
{{/regex}}
Donne: Hello Universe!
La fonctionnalité de sous-chaîne (substring) est disponible en utilisant la syntaxe
{{#substring beginIndex endIndex}}
valeur
{{/substring}}
ou, plus court
{{substring beginIndex endIndex value}}
beginIndex est la base 0 et endIndex n'est pas inclusif.
Exemple pratique:
pour contexte:
myValue = “This is my Hello World! string”
{{substring 11 23 myValue}}
Donne:
Hello World!