RRelancia
Relances

Créer une nouvelle relance

Construire une relance pas à pas avec un JSON complet, prêt à coller, qui fonctionne dès l'import.

Cette page est le mode d'emploi pour construire une relance à partir de zéro. Elle est pensée pour un client qui découvre Relancia et pour une IA qui doit générer un JSON valide. Chaque section donne un exemple concret, avec le JSON exact à coller dans l'Éditeur.

En quoi consiste une relance

Une relance est un plan automatique qui réagit à un événement. Elle est composée de :

  • un point de départ (l’événement qui déclenche la relance)
  • des vérifications (optionnel, pour adapter le comportement)
  • des messages (ce qui est envoyé au client)
  • des étapes (ce qui se passe en interne, comme créer une tâche)

Toutes les relances sont stockées en JSON. Le JSON est la source de vérité : ce que vous voyez dans l'éditeur visuel est une projection de ce JSON.

Vue d'ensemble du flux

Voici comment une relance simple se lit, de gauche à droite :

Cette page explique comment créer une relance. Pour comprendre chaque bloc, voir Notions clés. Pour un exemple détaillé de chaque bloc, voir Bibliothèque de blocs.

Les 7 étapes pour créer une relance

Voici la méthode la plus simple pour un artisan qui découvre Relancia :

  1. Choisir un objectif : qu’est-ce que vous voulez obtenir automatiquement ? (rappeler un client après un appel manqué, relancer un devis, etc.)
  2. Choisir un point de départ : Appel manqué, Shopify, PrestaShop, Import CSV ou Webhook entrant.
  3. Donner un nom et une description : quelque chose de lisible, par exemple Rappel appel manqué.
  4. Construire le plan : ajouter les vérifications, les messages et les étapes nécessaires.
  5. Copier un JSON de base : prendre un des exemples ci-dessous.
  6. Coller le JSON dans l'éditeur : via Coller JSON puis Charger dans cette relance.
  7. Tester, ajuster, activer : rester en Brouillon tant que la relance n’a pas été testée.

Exemple 1 : Rappel WhatsApp après appel manqué

C’est l’exemple le plus simple et le plus utile pour un artisan. La relance s’active à chaque appel manqué et envoie un message WhatsApp 2 minutes après.

Le plan visuel

Le JSON à coller

Rappel WhatsApp après appel manqué
{
  "name": "Rappel WhatsApp après appel manqué",
  "description": "Envoie un message WhatsApp 2 minutes après chaque appel manqué, puis crée une tâche interne pour le suivi.",
  "status": "Brouillon",
  "start_type": "Appel manqué",
  "nodes": [
    {
      "id": "n_depart",
      "type": "depart",
      "name": "Appel manqué",
      "label": "Appel manqué",
      "description": "Se déclenche dès qu'un appel reste sans réponse sur la ligne d'appel configurée.",
      "fields": {
        "source": "Ligne d'appel",
        "delai_minutes": 0
      }
    },
    {
      "id": "n_attente",
      "type": "verif",
      "name": "Attendre 2 minutes",
      "label": "Attendre 2 min",
      "description": "Laisse passer 2 minutes pour ne pas écraser le client immédiatement.",
      "fields": {
        "delai_minutes": 2
      }
    },
    {
      "id": "n_whatsapp",
      "type": "message",
      "name": "Envoyer un WhatsApp",
      "label": "Envoyer un WhatsApp",
      "description": "Envoie un message court et poli pour proposer un rappel.",
      "fields": {
        "canal": "WhatsApp",
        "modele": "whatsapp_rappel_v1",
        "contenu": "Bonjour {{contact.prenom}}, je n'ai pas pu répondre à votre appel. Souhaitez-vous que je vous rappelle ? Répondez OUI et je vous joins dans la journée. — {{compte.nom}}"
      }
    },
    {
      "id": "n_tache",
      "type": "etape",
      "name": "Créer une tâche de rappel",
      "label": "Créer une tâche",
      "description": "Ajoute une note interne pour ne pas oublier le client.",
      "fields": {
        "type": "tache",
        "titre": "Rappeler {{contact.prenom}} {{contact.nom}}",
        "priorite": "normale"
      }
    }
  ],
  "edges": [
    { "id": "e1", "source": "n_depart", "target": "n_attente", "name": "Toujours" },
    { "id": "e2", "source": "n_attente", "target": "n_whatsapp", "name": "Délai écoulé" },
    { "id": "e3", "source": "n_whatsapp", "target": "n_tache", "name": "Après envoi" }
  ]
}

Comment l'utiliser

  1. Ouvrez Relances dans Relancia.
  2. Cliquez sur Nouvelle relance et donnez-lui le nom Rappel WhatsApp après appel manqué.
  3. Ouvrez l’Éditeur.
  4. Cliquez sur Coller JSON.
  5. Collez le bloc ci-dessus, cliquez sur Vérifier le JSON, puis Charger dans cette relance.
  6. Vérifiez le plan visuel. Vous devez voir 4 blocs reliés en ligne.
  7. Lancez un test (en passant un appel manqué test sur votre ligne).
  8. Si tout fonctionne, passez la relance en Actif.

Le champ modele est un identifiant interne. Si vous utilisez un modèle custom, remplacez whatsapp_rappel_v1 par l’identifiant visible dans Messages > Modèles. Laissez-le vide si vous voulez écrire un message libre dans contenu.

Exemple 2 : Rappel avec fallback email

Cet exemple envoie un WhatsApp si le client a un numéro, sinon un email. C’est le réflexe à avoir pour ne perdre aucun contact.

Le plan visuel

Le JSON à coller

Rappel avec fallback email
{
  "name": "Rappel avec fallback email",
  "description": "Appel manqué : envoie un WhatsApp si possible, sinon un email de rappel.",
  "status": "Brouillon",
  "start_type": "Appel manqué",
  "nodes": [
    {
      "id": "n_depart",
      "type": "depart",
      "name": "Appel manqué",
      "label": "Appel manqué",
      "description": "Se déclenche à chaque appel sans réponse.",
      "fields": {
        "source": "Ligne d'appel",
        "delai_minutes": 0
      }
    },
    {
      "id": "n_check_wa",
      "type": "verif",
      "name": "WhatsApp disponible",
      "label": "WhatsApp disponible ?",
      "description": "Vérifie que le contact a un numéro WhatsApp connu.",
      "fields": {
        "verif": "whatsapp_disponible"
      }
    },
    {
      "id": "n_wa",
      "type": "message",
      "name": "Envoyer WhatsApp",
      "label": "Envoyer un WhatsApp",
      "description": "Message court pour proposer un rappel.",
      "fields": {
        "canal": "WhatsApp",
        "contenu": "Bonjour {{contact.prenom}}, je n'ai pas pu répondre. Souhaitez-vous que je vous rappelle ? — {{compte.nom}}"
      }
    },
    {
      "id": "n_email",
      "type": "message",
      "name": "Envoyer email",
      "label": "Envoyer un email",
      "description": "Email sobre avec un appel à l'action clair.",
      "fields": {
        "canal": "Email",
        "sujet": "Appel manqué — {{compte.nom}}",
        "contenu": "Bonjour {{contact.prenom}},\n\nJe n'ai pas pu répondre à votre appel. Si vous souhaitez que je vous rappelle, répondez à cet email avec vos disponibilités.\n\nBien cordialement,\n{{compte.nom}}"
      }
    }
  ],
  "edges": [
    { "id": "e1", "source": "n_depart", "target": "n_check_wa", "name": "Toujours" },
    { "id": "e2", "source": "n_check_wa", "target": "n_wa", "name": "Oui" },
    { "id": "e3", "source": "n_check_wa", "target": "n_email", "name": "Non" }
  ]
}

Comment l'utiliser

  1. Créez une nouvelle relance.
  2. Collez le JSON.
  3. Vérifiez que le plan visuel montre bien deux sorties sur le bloc WhatsApp disponible ? : une vers Envoyer un WhatsApp, une vers Envoyer un email.
  4. Testez avec un contact qui a un WhatsApp puis avec un contact qui n’a qu’un email.
  5. Passez en Actif une fois validé.

Exemple 3 : Panier abandonné Shopify

Pour une boutique en ligne, voici comment relancer un client qui n’a pas finalisé sa commande.

Le plan visuel

Le JSON à coller

Panier abandonné Shopify
{
  "name": "Panier abandonné Shopify",
  "description": "Relance un client 1h après un panier abandonné, puis envoie un email 24h plus tard si la commande n'est pas finalisée.",
  "status": "Brouillon",
  "start_type": "Shopify",
  "nodes": [
    {
      "id": "n_depart",
      "type": "depart",
      "name": "Panier abandonné",
      "label": "Panier abandonné",
      "description": "Se déclenche quand un client crée un panier sans commander dans l'heure.",
      "fields": {
        "source": "Boutique Shopify",
        "evenement": "checkout_abandoned"
      }
    },
    {
      "id": "n_attente_1h",
      "type": "verif",
      "name": "Attendre 1 heure",
      "label": "Attendre 1h",
      "description": "Laisse passer une heure pour ne pas être trop intrusif.",
      "fields": { "delai_minutes": 60 }
    },
    {
      "id": "n_wa",
      "type": "message",
      "name": "Envoyer WhatsApp",
      "label": "Envoyer un WhatsApp",
      "description": "Petit message pour rappeler le panier.",
      "fields": {
        "canal": "WhatsApp",
        "contenu": "Bonjour {{contact.prenom}}, votre panier sur {{compte.nom}} vous attend encore. Un souci ou une question ? Répondez ici, on vous aide. — {{compte.nom}}"
      }
    },
    {
      "id": "n_check_achat",
      "type": "verif",
      "name": "Achat finalisé",
      "label": "Achat finalisé ?",
      "description": "Vérifie si la commande a été payée depuis.",
      "fields": { "verif": "commande_finalisee" }
    },
    {
      "id": "n_email",
      "type": "message",
      "name": "Email de rappel",
      "label": "Envoyer un email",
      "description": "Email plus complet avec un code de réduction possible.",
      "fields": {
        "canal": "Email",
        "sujet": "Votre panier vous attend — {{compte.nom}}",
        "contenu": "Bonjour {{contact.prenom}},\n\nVotre panier est toujours disponible. Profitez de -10% avec le code RETOUR10 pour finaliser votre commande.\n\nÀ très vite,\n{{compte.nom}}"
      }
    },
    {
      "id": "n_fin",
      "type": "etape",
      "name": "Fin",
      "label": "Fin",
      "description": "Marque la fin de la relance.",
      "fields": { "type": "fin" }
    }
  ],
  "edges": [
    { "id": "e1", "source": "n_depart", "target": "n_attente_1h", "name": "Toujours" },
    { "id": "e2", "source": "n_attente_1h", "target": "n_wa", "name": "Délai écoulé" },
    { "id": "e3", "source": "n_wa", "target": "n_check_achat", "name": "Après envoi" },
    { "id": "e4", "source": "n_check_achat", "target": "n_email", "name": "Non" },
    { "id": "e5", "source": "n_check_achat", "target": "n_fin", "name": "Oui" }
  ]
}

Exemple 4 : Relance de devis non signé

Pour des artisans qui envoient des devis, voici une relance qui s’active à l’import d’un contact avec le tag devis.

Le plan visuel

Le JSON à coller

Relance devis
{
  "name": "Relance devis non signé",
  "description": "Envoie un message WhatsApp 3 jours après l'import d'un contact avec le tag devis.",
  "status": "Brouillon",
  "start_type": "Import CSV",
  "nodes": [
    {
      "id": "n_depart",
      "type": "depart",
      "name": "Import CSV devis",
      "label": "Import CSV — devis",
      "description": "Se déclenche à l'import d'un contact avec le tag 'devis'.",
      "fields": {
        "source": "Import CSV",
        "filtre": { "tag": "devis" }
      }
    },
    {
      "id": "n_attente",
      "type": "verif",
      "name": "Attendre 3 jours",
      "label": "Attendre 3 jours",
      "description": "Délai pour laisser le client réfléchir.",
      "fields": { "delai_minutes": 4320 }
    },
    {
      "id": "n_wa",
      "type": "message",
      "name": "Rappel devis",
      "label": "Envoyer un WhatsApp",
      "description": "Rappel courtois sur le devis envoyé.",
      "fields": {
        "canal": "WhatsApp",
        "contenu": "Bonjour {{contact.prenom}}, avez-vous eu le temps de regarder le devis envoyé le {{devis.date}} ? Je reste disponible pour en discuter. — {{compte.nom}}"
      }
    }
  ],
  "edges": [
    { "id": "e1", "source": "n_depart", "target": "n_attente", "name": "Toujours" },
    { "id": "e2", "source": "n_attente", "target": "n_wa", "name": "Délai écoulé" }
  ]
}

Anatomie d’un JSON de relance

Tous les JSON de relance suivent la même structure. Voici les champs à connaître.

Champs de la relance (racine)

ChampTypeValeurs possiblesDescription
nametextelibreNom affiché dans la liste des relances.
descriptiontextelibrePhrase qui résume l’objectif.
statustexteBrouillon, Actif, En pauseStatut de la relance.
start_typetexteAppel manqué, Shopify, PrestaShop, Import CSV, Webhook entrantPoint de départ de la relance.
nodestableauListe des blocs qui composent la relance.
edgestableauListe des liens entre les blocs.

Champs d’un bloc (nodes)

ChampTypeDescription
idtexteIdentifiant unique (n_xxx). Référencé par les liens.
typetextedepart, verif, message, etape.
nametexteNom interne du bloc.
labeltextePetit texte affiché dans le plan visuel.
descriptiontexteNote libre pour vous.
fieldsobjetChamps à remplir, dépendent du type de bloc.

Champs d’un lien (edges)

ChampTypeDescription
idtexteIdentifiant unique (e_xxx).
sourcetexteID du bloc de départ.
targettexteID du bloc d’arrivée.
nametexteLibellé du lien (par exemple Oui, Non, Toujours, Délai écoulé).

Variables disponibles dans les messages

Dans un message (contenu ou sujet), vous pouvez insérer des variables qui seront remplacées automatiquement :

VariableDescription
{{contact.prenom}}Prénom du contact.
{{contact.nom}}Nom du contact.
{{contact.telephone}}Numéro de téléphone du contact.
{{contact.email}}Email du contact.
{{compte.nom}}Nom de votre compte Relancia.
{{devis.date}}Date du devis (pour les relances de devis).
{{commande.numero}}Numéro de la commande (pour les relances e-commerce).
{{commande.montant}}Montant de la commande.

Bonnes pratiques pour générer un JSON

Si vous utilisez une IA pour générer un JSON de relance, partagez-lui les indications suivantes : la liste des start_type valides, la liste des type de bloc, la structure nodes et edges, et la liste des variables ci-dessus. Une relance doit avoir au moins un bloc depart relié à au moins un autre bloc.

  • Toujours commencer par un bloc depart.
  • Toujours relier chaque bloc sauf le dernier.
  • Garder des id uniques (préfixe n_ pour les blocs, e_ pour les liens).
  • Ne pas inventer de types : restez sur depart, verif, message, etape.
  • Tester en Brouillon avant de passer en Actif.

Aller plus loin

On this page