Symplify offre de nombreuses possibilités d'intégration, tant pour les données de vos destinataires que pour le contenu réel de vos messages. Vous pouvez donc choisir les options qui vous conviennent le mieux!
Personnalisation avec des placeholders
Les placeholders sont la méthode la plus courante pour créer des messages personnalisés. La seule chose dont vous avez besoin pour cette solution est une base de données actualisée.
Les placeholders dans Symplify sont construits avec les handlebars. Cette méthode vous permet de simplement récupérer les données du destinataire et de les utiliser dans un message, par exemple « Bonjour Prénom ». Vous pouvez également transformer le résultat du handlebar en quelque chose de complètement différent, par exemple si un contact a plus que la valeur 100 (comptabilisés en points) stockée dans un attribut, le handlebar peut rendre « Membre Or ».
Lisez cet article pour en savoir plus sur la personnalisation avec les handlebars.
Intégrations de contenu
En mettant en place des intégrations du contenu, vous pouvez vous débarrasser des copier-coller inutiles. L'intégration vous permettra d'obtenir le contenu que vous souhaitez à partir d'autres services, par exemple votre site web ou votre blog.
Vous pouvez choisir de connecter le contenu pendant la période de conception et/ou de distribution (expliqué ci-dessous). Vous décidez du contenu que vous voulez utiliser.
Intégration de contenu au moment de la conception
La façon la plus courante de créer et de modifier le contenu d'un message est d'ajouter/modifier manuellement des textes, des images et des liens dans l'éditeur de messages. En travaillant de cette manière, vous avez le contrôle total de tout le contenu et de la manière dont il est ajouté. Vous pouvez aussi modifier le résultat avant de l'envoyer.
Mais vous pouvez aussi ajouter des feed blocks, en allant chercher du contenu dans le message lorsque vous le modifiez. Lorsque vous ajoutez un feed bloc dans votre message, vous pouvez alors modifier manuellement le contenu importé.
Les feed blocks peuvent être prédéfinis, ce qui vous permettra de récupérer un certain nombre d'articles/items avec une mise en page donnée, ou de rechercher des articles/items spécifiques lors de l'édition du message.
Le format recommandé pour ces données est le JSON, le RSS ou les données XML structurées.
Contactez votre chargé de compte Symplify pour en savoir plus !
Intégration du contenu en temps de distribution dynamique
Le contenu du temps de distribution est un contenu dynamique qui peut être individualisé pour chaque contact. Les données seront récupérées au moment de l'envoi du message. Si vous avez besoin de données aussi à jour que possible (par exemple, la météo actuelle à l'endroit où se trouve le destinataire), c'est la méthode que vous devez utiliser.
Configuration du contenu dynamique
Symplify mettra en cache les requêtes avec les mêmes paramètres, par exemple si tous les destinataires ont la même destination, une seule requête sera envoyée à une tierce partie. Comme cela met moins de pression sur Symplify et sur votre système, vous pouvez structurer vos requêtes de manière à minimiser la charge.
Récupération des données
Pour utiliser un contenu dynamique, vous devez être en mesure de publier vos données sur une URL publique accessible par Symplify. L'URL ne peut pas être protégée par un mot de passe. Si vous souhaitez sécuriser les données, vous pouvez en limiter l'accès afin que seuls les IP du réseau Symplify puissent les utiliser.
Pour le contenu en temps de distribution dynamique, nous préférons les données formatées avec JSON. Pour la rétrocompatibilité, nous pouvons récupérer les données en XML, mais cette méthode est obsolète et pourrait être supprimée dans une version ultérieure de Symplify.
Mise en place d'un Distribution Time DC avec handlebars.
Pour une explication détaillée des handlebars Symplify, veuillez lire cet article.
Un handlebar normal tirera les données des données de contact ou de l'historique des messages précédents. Vous pouvez par exemple extraire le prénom des contacts en utilisant la balise {{contact. firstName}}.
Le contenu dynamique cadré par contact est mis en œuvre à l'aide de guidons dans le bloc de contenu.
Si vous souhaitez utiliser les données d'un contact afin de récupérer des données d'un système tiers, vous devez créer des liens vers le système externe avec la balise {{#dynamicHttp}}. La demande au système externe sera alimentée par les données des contacts et les données récupérées pourront alors être utilisées pour rendre le bloc dans le message.
Le contenu dynamique utilise la syntaxe handlebars (http://handlebarsjs.com/), avec quelques aides au handlebars personnalisées.
La syntaxe du dynamic request helper est :
{{#dynamicHttp “http://yoursite.com ” true|false true|false}}
…
{{else}}
Default data
{{/dynamicHttp}}
La première déclaration true/false à la fin indique à Symplify combien les données externes sont importantes pour le message. Parfois, vous pouvez ne pas vouloir envoyer le message si la demande ne renvoie aucune donnée, et parfois vous pouvez envoyer les données avec des informations par défaut à la place. Si le paramètre est réglé sur false, le message ne sera pas envoyé si de mauvaises données sont renvoyées.
La deuxième déclaration true/false a la même fonctionnalité, mais uniquement lorsque le message est ouvert à l'aide de l'url "Ouvrir dans le navigateur".
Exemple de code
Voici un exemple basé sur une intégration dynamique avec le service météorologique worldweatheronline.com
Les prévisions seront basées sur la valeur de l'attribut de la ville (city) dans ce cas.
Ainsi, lorsque vous incluez ci-dessous un lien avec les paramètres de propriété du destinataire nommés {{contact.city}} et {{contact.lang}} et que vous l'envoyez dans un courriel à votre liste de destinataires, cela fera automatiquement apparaître et rendra les prévisions météorologiques par destinataire.
Cet exemple renvoie la météo sur la destination des contacts dans la langue des contacts.
{{#dynamicHttp “http://api.worldweatheronline.com/free/v1/weather.ashx?q={{contact.city}}&format=json&num_of_days=5&lang={{contact.lang}}&key={{USE_YOUR_OWN_KEY}}” true true}}
Ce contenu est rendu en utilisant la syntaxe Handlebars.
{{#if data.current_condition}}
Current temperature is {{data.current_condition.[0].temp_C}} C <br />
{{else}}
Default data
{{/if}}
Il est rendu si la requête dynamicHttp ou le rendu a échoué.
{{/dynamicHttp}}
Vous pouvez utiliser la syntaxe dot pour récupérer n'importe quel élément de données et l'insérer dans le message.
Dans l'exemple, le retour des données a la syntaxe suivante.
{ “data”:
{ “current_condition”: [
{“cloudcover”: “0”,
“humidity”: “80”,
“observation_time”: “09:52 AM”,
“precipMM”: “0.0”,
“pressure”: “1024”,
“temp_C”: “2”,
“temp_F”: “36”,
“visibility”: “10”,
“weatherCode”: “113”,
“weatherDesc”: [ {“value”: “Sunny” } ],
“weatherIconUrl”: [ {“value”: “http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0001_sunny.png” } ],
“winddir16Point”: “W”,
“winddirDegree”: “260”,
“windspeedKmph”: “6”,
“windspeedMiles”: “4” } ],
“request”: [ {“query”: “Stockholm, Sweden”, “type”: “City” } ],
“weather”: [ {“date”: “2015-03-05”, “precipMM”: “0.0”, “tempMaxC”: “3”, “tempMaxF”: “37”, “tempMinC”: “-1”, “tempMinF”: “31”, “weatherCode”: “113”,
“weatherDesc”: [ {“value”: “Sunny” } ],
“weatherIconUrl”: [ {“value”: “http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0001_sunny.png” } ],
“winddir16Point”: “NW”,
“winddirDegree”: “309”,
“winddirection”: “NW”,
“windspeedKmph”: “15”,
“windspeedMiles”: “9” }
}}
Mise en œuvre du Distribution Time DC avec XML/XSL
NOTE! Cette méthode est obsolète et n'est disponible que pour la rétrocompatibilité. Nous vous conseillons vivement d'utiliser la méthode décrite ci-dessus car elle est plus facile à mettre en œuvre et à maintenir.
La première chose à faire est de fournir à Symplify un URL où les données peuvent être récupérées, et une image de l'aspect des données rendues. Sur cette base, Symplify produira un bloc spécial dans votre modèle qui sera utilisé pour convertir les données en HTML prêt pour le courrier électronique. Vous trouverez ci-dessous un exemple de XML bien formé qui peut facilement être traduit en un bloc dans Symplify.
Si vous incluez plusieurs éléments dans le XML, Symplify peut soit les rendre tous, soit les placer dans des blocs individuels qui peuvent ensuite être soit supprimés s'ils sont redondants, soit associés à un filtre afin que seul un sous-ensemble de vos contacts reçoive le bloc.
La partie XSL du code est stockée avec le placeholder. Veuillez contacter le support Symplify (support@symplify.com) pour en savoir plus sur la manière dont nous pouvons vous aider à ce sujet.
{{dynamicRss <ID_OF_XSL_PLACEHOLDER> <URL_TO_RSS> <true|false>}}
Le booléen à la fin est utilisé pour déterminer ce qui doit se passer si le flux RSS ne peut pas être lu ou analysé correctement.
Si true, le message sera créé mais avec un espace vide à l'endroit où le contenu aurait dû être placé. S'il est false, aucun message ne sera généré.
Exemple de code
Une combinaison de XML (les données rss) et d'une feuille de style ( XSL) produit le HTML final qui sera placé dans le message. Exemples :
XML
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<data>
<channel>
<title>Example feed</title>
<description>A feed with nice formatting</description>
<language>en-us</language>
<item>
<title>A headline or title</title>
<description>
<![CDATA[Lorem ipsum & dolor sit amet]]>
</description>
<link>http://www.symplify.com/an-example-of-an-article.html</link>
<image>http://placehold.it/100×100</image>
<pubDate>Wed, 11 Feb 2015 17:59:58 +0100</pubDate>
</item>
</channel>
</data>
XSL
<?xml version=”1.0″ encoding=”UTF-8″?>
<?altova_samplexml carma_follow_email_v1.3.1.xml?>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
<xsl:output method=”html” omit-xml-declaration=”yes” indent=”yes”/>
<xsl:template match=”/”>
<xsl:apply-templates select=”data/channel/item”/>
</xsl:template>
<xsl:template match=”item”>
<table width=”100%” cellspacing=”0″ cellpadding=”0″ style=”width:100%;” border=”0″>
<tr>
<td align=”left” valign=”top” width=”1″>
<a href=”{ink}” taret=”_blank” alt=”{title}” title=”{title}”>
<img src=”{image}” alt=”{title}” title=”{title}” style=”display:block;”/>
</a>
</td>
<td align=”left” valign=”top” width=”20″>
<img src=”http://www.carmamail.com/i.gif” style=”white-space:nowrap;display:block” alt=”” border=”0″ height=”1″ width=”20″ />
</td>
<td align=”left” valign=”top”>
<font style=”font-family:Arial, sans-serif;font-size:28px;font-weight:bold;text-decoration:none;font-style:normal;mso-line-height-rule:exactly;line-height:40px;color:#000000;” class=”H1″>
<xsl:value-of select=”title”/>
</font>
<br />
<font style=”font-family:Arial, sans-serif;font-size:14px;font-weight:normal;text-decoration:none;font-style:normal;mso-line-height-rule:exactly;line-height:20px;color:#000000;” class=”P1″>
<xsl:value-of select=”description”/>
<br />
<br />
Published on: <xsl:value-of select=”substring(pubDate,0,17)” />
</font>
</td>
</tr>
</table>
</xsl:template>
</xsl:stylesheet>