Référence
Spécification exhaustive du format JSON d'une relance Relancia. Source de vérité pour les outils qui doivent générer des plans sans erreur.
Cette section décrit, sans rien omettre, la structure JSON d'une relance Relancia. Chaque bloc, chaque déclencheur, chaque vérification, chaque message, chaque action est documenté avec sa forme JSON exacte, ses paramètres et ses contraintes.
L'objectif est de servir de référence pour tout outil — y compris un assistant IA — qui doit produire un JSON de relance correct, sans rien inventer.
Sommaire
| Page | Contenu |
|---|---|
| Schéma général | Format racine, règles communes, conventions |
| Déclencheurs | Les 5 points de départ possibles d'une relance |
| Vérifications | Les 4 conditions qui aiguillent le flux |
| Messages | Les 3 blocs qui envoient un message au client |
| Actions | Les 5 blocs qui exécutent une opération interne ou externe |
| Variables | Les variables insérables dans les messages |
| Limites | Les bornes numériques et règles de validation |
| Exemple complet | Une relance prête à coller dans l'éditeur |
Schéma de la racine
Toute relance est un objet JSON conforme au schéma suivant :
{
"name": "Rappel WhatsApp après appel manqué",
"description": "Description optionnelle de la relance.",
"status": "draft",
"trigger_type": "missed_call",
"nodes": [ /* tableau de blocs */ ],
"edges": [ /* tableau de liaisons */ ]
}| Champ | Type | Obligatoire | Valeurs possibles |
|---|---|---|---|
name | texte | oui | 1 à 160 caractères |
description | texte | non | 0 à 500 caractères |
status | texte | oui | draft, active, paused |
trigger_type | texte | oui | missed_call, shopify, prestashop, csv_import, webhook |
nodes | tableau | oui | au moins 1 bloc, au plus 500 |
edges | tableau | non | 0 à 1200 liaisons |
Schéma d'un bloc (nodes[i])
{
"id": "identifiant-unique",
"type": "trigger",
"position": { "x": 80, "y": 160 },
"data": {
"label": "Titre affiché",
"subtitle": "Sous-titre",
"channel": "appel",
"description": "Description interne du bloc",
"parameters": {
"cle1": "valeur1",
"cle2": "valeur2"
}
}
}| Champ | Type | Obligatoire | Contraintes |
|---|---|---|---|
id | texte | oui | unique dans le plan, 1 à 120 caractères |
type | texte | oui | exactement trigger, condition, message ou action |
position.x | nombre | oui | valeur numérique finie |
position.y | nombre | oui | valeur numérique finie |
data.label | texte | oui | 1 à 160 caractères |
data.subtitle | texte | non | 0 à 160 caractères |
data.channel | texte | oui | 1 à 80 caractères, voir liste des canaux |
data.description | texte | non | 0 à 500 caractères |
data.parameters | objet | non | clés et valeurs en texte, jusqu'à 24 entrées |
Les canaux observés dans les blocs standard sont : appel, qualification, whatsapp, email, commercial, vérification, ai, http, csv, shopify, prestashop, webhook, lien, crm, départ.
Schéma d'une liaison (edges[i])
{
"id": "edge-1",
"source": "id-du-bloc-source",
"target": "id-du-bloc-cible",
"label": "Condition d'activation",
"type": "smoothstep",
"animated": true
}| Champ | Type | Obligatoire | Contraintes |
|---|---|---|---|
id | texte | oui | unique dans le plan, défaut edge-{index}-{source}-{target} |
source | texte | oui | doit référencer un nodes[i].id existant |
target | texte | oui | doit référencer un nodes[i].id existant |
label | texte | non | 0 à 120 caractères, affiché sur la flèche |
type | texte | non | défaut smoothstep, autres valeurs autorisées selon la bibliothèque de rendu |
animated | booléen | non | défaut true |
Conventions
- Les
idde blocs et de liaisons doivent être uniques au sein du plan. Un doublon est rejeté. - Les
idcourts en kebab-case sont recommandés (trigger-missed-call,send-whatsapp-recall). - Toutes les valeurs de
parameterssont des chaînes de texte. Pas de booléen, pas de nombre : convertir en texte avant l'écriture. - Les
position.xetposition.ysont des nombres, pas des chaînes. - Pour une question de lisibilité, séparez les blocs déclencheurs à gauche (x ≈ 80) et les blocs d'action à droite (x ≥ 360), avec un pas horizontal de 280 à 320 px.
Format attendu pour parameters
L'objet parameters est un simple dictionnaire clé/valeur. Toutes les valeurs sont des chaînes de texte. Pour une action de type http_request, les valeurs headers_json et body_json doivent être des chaînes contenant du JSON valide (par exemple "{\"Authorization\": \"Bearer VOTRE_TOKEN\"}").
Ce que l'éditeur accepte
L'éditeur accepte un JSON conforme au schéma ci-dessus. Tout JSON collé est validé avant insertion. Si une règle n'est pas respectée, l'éditeur affiche la liste des chemins fautifs avec la raison. La relance n'est créée que lorsque toutes les règles passent.
Pour la liste détaillée des règles et des bornes, voir Limites.