Système de Modèles - Contenu de Notification Dynamique
Maîtrisez les modèles Echobell pour des notifications dynamiques : substitution de variables, expressions, opérateurs, variables système et bonnes pratiques.
Les modèles dans Echobell vous permettent de créer des notifications dynamiques et riches en contexte en incorporant des variables dans les titres et les corps de vos notifications. Cette fonctionnalité puissante permet des alertes personnalisées et informatives qui s'adaptent en fonction des données du déclencheur, transformant des notifications génériques en informations exploitables.
Syntaxe de Base des Modèles
Dans les modèles Echobell, vous pouvez utiliser des variables en les entourant de doubles accolades :
{{nomVariable}}
Lorsqu'un canal est déclenché, ces variables sont remplacées par les valeurs réelles transmises via le déclencheur. Par exemple, si votre modèle de titre est Vous avez reçu ${{montant}} et que vous déclenchez le canal avec une valeur montant de 100, la notification résultante s'affichera comme Vous avez reçu $100.
Expressions Avancées de Modèles
Les modèles Echobell prennent en charge diverses expressions pour des scénarios plus complexes :
- Accéder aux Propriétés d'Objets
{{utilisateur.nom}}
{{donnees["valeur"]}}
- Accéder aux Éléments de Tableaux
{{elements[0]}}
- Utiliser des Opérateurs de Comparaison
{{statut == "actif"}}
{{age > 18}}
- Opérateurs Logiques
{{estAbonne && !estEnPause}}
{{estUrgent || estHautePriorite}}
Tous les opérateurs standard sont pris en charge : ==, !=, <, >, <=, >=, &&, ||, et !.
Variables de Modèle à partir de Différents Déclencheurs
Déclencheurs Webhook
Lors du déclenchement via webhook, vous pouvez fournir des variables via :
-
Paramètres de chaîne de requête :
GET https://hook.echobell.one/t/<channel-token>?montant=100&statut=termine -
Corps JSON (pour les requêtes POST) :
POST https://hook.echobell.one/t/<channel-token> Content-Type: application/json { "montant": 100, "statut": "termine", "utilisateur": { "nom": "Jean", "id": 12345 } } -
Variables spéciales :
externalLink: Fournit un lien cliquable dans les enregistrements de notificationbodyAsText: Le contenu en texte brut du corps de la requête siContent-Typeesttext/plainheader: Donne accès aux en-têtes de requête HTTP (par exemple,{{header["content-type"]}})
Déclencheurs Email
Lorsqu'un canal est déclenché par email, les variables suivantes sont automatiquement disponibles :
from: L'adresse email de l'expéditeurto: L'adresse email du destinatairesubject: La ligne d'objet de l'emailtext: Le contenu texte brut de l'emailhtml: Le contenu HTML de l'email
Cas d'Utilisation des Modèles
Comparaisons et Booléens
Les expressions qui utilisent des opérateurs de comparaison ou logiques rendent leur résultat booléen sous forme du texte true ou false :
Paiement supérieur à $1000 : {{amount > 1000}}
Priorité élevée : {{isUrgent || isImportant}}
Les modèles Echobell ne prennent pas en charge la logique if/else en ligne (ternaire). Pour envoyer un contenu différent selon les situations, utilisez les Conditions du canal pour router les déclencheurs, ou interpolez directement les valeurs brutes.
Conditions de Canal
En plus d'utiliser des modèles dans le contenu des notifications, vous pouvez définir des Conditions dans les paramètres avancés du canal qui déterminent si les notifications doivent être envoyées ou non. Ces conditions utilisent la même syntaxe d'expression (sans les accolades).
Par exemple, pour n'envoyer des notifications que pour des montants supérieurs à un seuil :
montant > 100
Modèles de Liens
Configurez un modèle de lien personnalisé dans les paramètres avancés du canal pour créer des liens cliquables dans les enregistrements de notification :
https://dashboard.example.com/commandes/{{idCommande}}
Si aucun modèle de lien n'est défini, la valeur de la variable externalLink sera utilisée par défaut.
Variables temporelles système (UTC)
Ces variables sont toujours disponibles pour les modèles (et les conditions) et sont calculées en UTC.
Les valeurs suivantes sont injectées directement (à plat) et peuvent être utilisées par leur nom :
year,month(1–12)dayOfMonth,dayOfWeek(0–6, dimanche = 0)hour(0–23),minute,seconddate(YYYY-MM-DD),time(HH:mm:ss)iso: Horodatage ISO‑8601 (ex.2025-05-06T12:34:56.789Z)
Les autres valeurs sont disponibles uniquement sous l'espace de noms sys. (elles ne sont pas injectées en tant que noms à plat) :
sys.timezone: Toujours"UTC"sys.now: Horodatage ISO‑8601 (même valeur queiso)sys.epochMs,sys.epochSeconds: Temps écoulé depuis l’époque Unix (nombre)sys.monthName: Nom du mois (January–December)sys.dayOfWeekName: Nom du jour (Sunday–Saturday)
L'espace de noms sys. reflète également chaque valeur à plat (ex. sys.year, sys.hour).
Exemples :
Envoyé à {{date}} {{time}} {{sys.timezone}}
Nous sommes {{sys.dayOfWeekName}}, {{sys.monthName}} {{dayOfMonth}}, {{year}}
Epoch : {{sys.epochSeconds}}
Meilleures Pratiques
-
Gérer les Variables Manquantes : Echobell n'a pas d'opérateur de valeur par défaut. L'opérateur
||est purement logique : il évalue les deux côtés comme des booléens et rendtrueoufalse. Ainsi{{username || "Utilisateur Anonyme"}}rend le texte littéraltrueoufalse, jamais le nom d'utilisateur ni la chaîne de repli. Lorsqu'une variable est manquante,{{variable}}se rend simplement sous forme de chaîne vide. Si vous avez besoin d'une valeur garantie, envoyez-la explicitement dans la charge utile du déclencheur plutôt que de compter sur un repli de modèle :Utilisateur : {{username}} Serveur : {{serverName}} Erreurs détectées : {{errorCount}} -
Modèles Informatifs : Incluez des informations clés dans vos modèles pour rendre les notifications exploitables :
{{service}} : {{statut}} - {{message}} -
Gardez les Modèles Concis : Les notifications s'affichent mieux lorsque les titres et les corps sont clairs et directs.
-
Tests : Testez vos modèles avec différentes combinaisons de variables pour vous assurer qu'ils s'affichent comme prévu.
Les modèles sont un moyen puissant de créer des notifications dynamiques et informatives qui donnent aux utilisateurs exactement les informations dont ils ont besoin, quand ils en ont besoin.