RRelancia
Relances

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 relance
  • description (texte, optionnel) — description affichée dans la liste
  • status (texte, valeurs possibles : draft, active, paused) — l'interface affiche aussi Brouillon, Actif, En pause
  • trigger_type (texte, valeurs possibles : missed_call, shopify, prestashop, csv_import, webhook) — point de départ de la relance
  • nodes (tableau, obligatoire) — au moins un bloc trigger
  • edges (tableau, optionnel) — liaisons entre les blocs

Pour chaque nodes[i] :

  • id (texte, obligatoire, unique) — identifiant du bloc, sert de référence dans edges
  • type (texte, obligatoire) — exactement l'une des quatre valeurs : trigger, condition, message, action
  • position (objet avec x et y numériques, obligatoire) — position dans l'éditeur
  • data (objet, obligatoire) avec :
    • label (texte) — titre affiché sur le bloc
    • subtitle (texte, optionnel) — sous-titre
    • channel (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 liaison
  • source (texte) — id du bloc source (doit exister dans nodes)
  • target (texte) — id du bloc cible (doit exister dans nodes)
  • label (texte, optionnel) — étiquette affichée sur la flèche
  • animated (booléen, optionnel, par défaut true)

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-papier
  • Coller JSON : ouvre une fenêtre pour coller une structure

Comment copier une relance

  1. ouvrez la relance dans l’Éditeur
  2. cliquez sur Copier JSON
  3. le texte est dans votre presse-papier
  4. collez-le où vous voulez (un email, un fichier texte, un document)

Comment coller une relance

  1. ouvrez la relance dans l’Éditeur
  2. cliquez sur Coller JSON
  3. une fenêtre s’ouvre avec une zone de texte
  4. collez le JSON dans cette zone
  5. cliquez sur Vérifier le JSON
  6. choisissez entre :
    • Créer une nouvelle relance : pour repartir d’un nouveau plan
    • Charger 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 relance ou Charger 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 JSON

L'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[].type qui n'est pas dans trigger, condition, message, action — c'est l'erreur la plus fréquente
  • un trigger_type qui n'est pas dans la liste autorisée
  • un nodes[].id dupliqué
  • un edges[].source ou target qui référence un id inconnu
  • 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

  1. copiez votre JSON actuel avant toute modification importante
  2. collez-le dans un fichier sauvegarde-relance-2025-01-15.txt sur votre ordinateur
  3. modifiez la relance dans l’Éditeur
  4. 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

On this page