Import et export JSON
Copier, sauvegarder et recharger un plan de relance en JSON, sans risque de tout perdre.
L’option JSON permet de manipuler un plan de relance sous forme de texte. Cette page vous explique à quoi cela sert, comment l’utiliser, et quand c’est utile pour un artisan ou pour une IA qui génère des relances automatiquement.
Aperçu visuel
Le JSON est la source de vérité d'une relance. Tout ce que vous voyez dans l'éditeur est une projection de ce texte :
À quoi sert le JSON
Le JSON est une version texte d’une relance. Il peut être :
- copié dans le presse-papier
- collé depuis le presse-papier
- sauvegardé dans un fichier
- envoyé à quelqu’un par email
- généré par une IA (ChatGPT, Claude, Cursor, etc.) puis collé
Cette fonction sert à :
- sauvegarder une relance avant de la modifier
- dupliquer une relance qui fonctionne bien
- corriger un plan avant de le recharger
- partager une relance avec un autre utilisateur
- demander à une IA de générer un plan adapté à votre besoin
Pour un artisan, le JSON est utile principalement pour sauvegarder un plan qui fonctionne, avant d’essayer des modifications.
Exemple complet à copier
Voici le JSON complet et fonctionnel d'une relance Appel manqué d'après le format réellement accepté par Relancia. Vous pouvez le coller directement dans Relances > Coller JSON :
{
"name": "Rappel WhatsApp après appel manqué",
"description": "Exemple de base à copier pour démarrer.",
"status": "draft",
"trigger_type": "missed_call",
"nodes": [
{
"id": "trigger-missed-call",
"type": "trigger",
"position": { "x": 80, "y": 160 },
"data": {
"label": "Appel manqué détecté",
"subtitle": "Déclencheur téléphonie",
"channel": "appel",
"description": "Détecte un appel manqué issu du numéro de tracking.",
"parameters": {
"source_appel": "renvoi_appel",
"numero_tracking": "principal",
"delai_avant_relance_min": "2"
}
}
},
{
"id": "check-whatsapp-optin",
"type": "condition",
"position": { "x": 360, "y": 80 },
"data": {
"label": "WhatsApp disponible ?",
"subtitle": "Vérification du canal",
"channel": "condition",
"description": "Vérifie si le contact peut être joint sur WhatsApp.",
"parameters": {
"verifier_mobile": "oui",
"fallback": "email"
}
}
},
{
"id": "send-whatsapp-recall",
"type": "message",
"position": { "x": 660, "y": 0 },
"data": {
"label": "Envoyer WhatsApp de rappel",
"subtitle": "Relance après appel",
"channel": "whatsapp",
"description": "Envoie un WhatsApp de rappel court.",
"parameters": {
"template": "appel_manque_rappel",
"delai_min": "2"
}
}
}
],
"edges": [
{ "id": "e1", "source": "trigger-missed-call", "target": "check-whatsapp-optin", "animated": true },
{ "id": "e2", "source": "check-whatsapp-optin", "target": "send-whatsapp-recall", "animated": true, "label": "WhatsApp ok" }
]
}Format réel accepté
Le JSON que vous collez doit respecter ces règles, vérifiées par Relancia au moment du collage :
name(texte, obligatoire) — nom de la relancedescription(texte, optionnel) — description affichée dans la listestatus(texte, valeurs possibles :draft,active,paused) — l'interface affiche aussiBrouillon,Actif,En pausetrigger_type(texte, valeurs possibles :missed_call,shopify,prestashop,csv_import,webhook) — point de départ de la relancenodes(tableau, obligatoire) — au moins un bloctriggeredges(tableau, optionnel) — liaisons entre les blocs
Pour chaque nodes[i] :
id(texte, obligatoire, unique) — identifiant du bloc, sert de référence dansedgestype(texte, obligatoire) — exactement l'une des quatre valeurs :trigger,condition,message,actionposition(objet avecxetynumériques, obligatoire) — position dans l'éditeurdata(objet, obligatoire) avec :label(texte) — titre affiché sur le blocsubtitle(texte, optionnel) — sous-titrechannel(texte, optionnel) — canal (appel,whatsapp,email,commercial,qualification,condition,ai,http,csv,shopify,prestashop,webhook, ...)description(texte, optionnel)parameters(objet clé/valeur, optionnel) — paramètres du bloc (24 champs max, valeurs en texte)
Pour chaque edges[i] :
id(texte, unique) — identifiant de la liaisonsource(texte) —iddu bloc source (doit exister dansnodes)target(texte) —iddu bloc cible (doit exister dansnodes)label(texte, optionnel) — étiquette affichée sur la flècheanimated(booléen, optionnel, par défauttrue)
Limites vérifiées : 500 blocs maximum, 1200 liaisons maximum par relance.
Les deux actions visibles
Dans l’Éditeur, deux boutons concernent le JSON :
Copier JSON: copie la structure de la relance dans le presse-papierColler JSON: ouvre une fenêtre pour coller une structure
Comment copier une relance
- ouvrez la relance dans l’
Éditeur - cliquez sur
Copier JSON - le texte est dans votre presse-papier
- collez-le où vous voulez (un email, un fichier texte, un document)
Comment coller une relance
- ouvrez la relance dans l’
Éditeur - cliquez sur
Coller JSON - une fenêtre s’ouvre avec une zone de texte
- collez le JSON dans cette zone
- cliquez sur
Vérifier le JSON - choisissez entre :
Créer une nouvelle relance: pour repartir d’un nouveau planCharger dans cette relance: pour remplacer la structure actuelle
Ce que montre la fenêtre de collage
Quand vous ouvrez Coller JSON, Relancia affiche :
- une zone de collage
- un bouton
Vérifier le JSON - une liste de points à corriger si le contenu n’est pas valide
- deux options :
Créer une nouvelle relanceouCharger dans cette relance
Générer un JSON avec une IA
Vous pouvez demander à une IA (ChatGPT, Claude, Cursor) de générer un JSON de relance à partir d'une consigne en français. Voici un prompt à recopier :
Tu es un expert Relancia. Génère un JSON de relance au format Relancia
pour le besoin suivant : « relance WhatsApp après appel manqué pour un
artisan coiffeur ».
Respecte ces règles, qui sont les contraintes réelles du format Relancia :
- la racine a name, description, status ("draft"), trigger_type
("missed_call"), nodes et edges
- trigger_type est l'un de : "missed_call", "shopify", "prestashop",
"csv_import", "webhook"
- chaque node a id, type, position {x, y}, data {label, subtitle,
channel, description, parameters}
- le type de chaque node est l'un de : "trigger", "condition",
"message", "action" (et rien d'autre)
- il y a au moins un node de type "trigger"
- les ids de nodes sont uniques et courts
- les ids de edges sont uniques et référencent des ids de nodes existants
- les valeurs de parameters sont des chaînes de texte
- ne mets jamais de token d'API dans le JSONL'IA vous renverra un JSON. Vous n'avez plus qu'à le coller dans l'éditeur.
Que faire si le JSON n'est pas valide
Relancia affiche la liste des points à corriger. En général, les erreurs viennent de :
- un
nodes[].typequi n'est pas danstrigger,condition,message,action— c'est l'erreur la plus fréquente - un
trigger_typequi n'est pas dans la liste autorisée - un
nodes[].iddupliqué - un
edges[].sourceoutargetqui référence unidinconnu - un caractère en trop ou en moins (virgule, accolade, crochet)
- un copier-coller incomplet
- un texte modifié manuellement par erreur
Dans tous les cas, ne sauvegardez pas tant que le JSON n'est pas valide.
Méthode recommandée pour un artisan
- copiez votre JSON actuel avant toute modification importante
- collez-le dans un fichier
sauvegarde-relance-2025-01-15.txtsur votre ordinateur - modifiez la relance dans l’
Éditeur - si le résultat ne vous plaît pas, recollez le JSON de sauvegarde
Bonnes pratiques
- faites une copie du JSON avant chaque modification importante
- datez vos fichiers de sauvegarde
- n’éditez jamais le JSON à la main si vous n’êtes pas à l’aise
- testez toujours la relance après un import
- n'incluez jamais de token d'API dans le JSON que vous partagez
Aller plus loin
- Créer une nouvelle relance — 4 exemples complets à copier
- Bibliothèque de blocs — la structure JSON de chaque bloc
- Notions clés — définitions visuelles