formbasedocs
Aller à l'applicationAppli

Créer des formulaires

Logique conditionnelle

Les blocs de logique réagissent à ce qu’un répondant saisit — afficher ou masquer n’importe quel bloc, sauter des pages, bloquer la soumission ou calculer des valeurs. Combinez des règles simples pour créer des branchements sophistiqués, sans code.


Ce que la logique peut faire

Chaque bloc de logique contient une ou plusieurs règles. Chaque règle associe un groupe de conditions (quand doit-elle se déclencher ?) à une ou plusieurs actions (que doit-il se passer ?). Neuf types d’actions sont disponibles :

ActionCe qu'elle fait
ShowRévéler un bloc masqué — une question, un paragraphe, une image ou une option — lorsque les conditions sont remplies.
HideMasquer un bloc visible — une question, un paragraphe, une image ou une option — lorsque les conditions sont remplies.
Make requiredRendre un champ dynamiquement obligatoire pour certains parcours.
Make optionalAssouplir la validation d'un champ obligatoire lorsque les conditions sont remplies.
Set next pagePasser directement à une page spécifique — c'est ainsi que vous créez des branchements.
Calculate valueCalculer des totaux, des scores ou des prix à partir d'autres réponses.
Set payment amountDéfinir, augmenter ou diminuer le prix d'un champ Payment en fonction des réponses.
Prevent navigation to next pageEmpêcher le répondant d'avancer, avec un message facultatif expliquant pourquoi.
Prevent submit formBloquer la soumission jusqu'à ce que les conditions soient remplies (ex. : conditions acceptées), avec un message facultatif expliquant pourquoi.

Ajouter un bloc de logique

Un bloc de logique est un élément du document — il se place sur le canevas entre les questions, comme un titre ou une image. Vous pouvez le positionner n’importe où : entre deux champs sur la même page, en haut d’une page, ou juste avant un saut de page.

  1. 1

    Ouvrir le menu slash

    Cliquez sur une ligne vide du canevas et tapez /. Le sélecteur de blocs apparaît.

  2. 2

    Rechercher "Logic"

    Tapez logic pour filtrer. Sélectionnez Logic dans la catégorie Mise en page. Un nouveau bloc de logique apparaît à l’emplacement du curseur.

  3. 3

    Ajouter une règle

    Le bloc se lit Quand … Faire …. Chaque règle contient un groupe de conditions et une ou plusieurs actions.

  4. 4

    Définir les conditions

    Choisissez un champ, sélectionnez un opérateur et définissez une valeur. Ajoutez une autre condition, ou ajoutez un ensemble de conditions pour imbriquer un niveau plus profond.

  5. 5

    Choisir les actions

    Sélectionnez un type d'action (Show, Hide, Make required, Set next page, etc.) et choisissez la cible — une question, un bloc, une option ou une page.

  6. 6

    Ajouter d’autres règles (optionnel)

    Un seul bloc de logique peut contenir plusieurs règles. Chaque règle est indépendante : ses propres conditions, ses propres actions.

Conditions

Les conditions sont le côté Quand d’une règle. Chaque condition choisit un champ, applique un opérateur, et compare souvent avec une valeur. Le sélecteur de champ regroupe ce que vous pouvez surveiller : Questions, Champs masqués, Champs calculés, et Métadonnées (aujourd’hui, la langue du répondant).

All ou Any

Dès qu’une règle comporte deux conditions ou plus, un bouton bascule apparaît en haut de la section Quand :

  • All — toutes les conditions doivent être vraies pour que la règle se déclenche. Les lignes se lisent avec « et ».

  • Any — une seule condition vraie suffit. Les lignes se lisent avec « ou ».

Ensembles de conditions

Ajouter un ensemble de conditions imbrique un second groupe dans le premier, sur un seul niveau, avec son propre bouton bascule All/Any. Cela couvre une logique composée comme « plan est Pro et (pays est Norvège ou pays est Suède) ». Un ensemble ne contient que des conditions — il ne peut pas contenir un autre ensemble.

Gardez-le lisible

Si un seul bloc de logique vous semble trop complexe, envisagez de répartir la logique sur plusieurs blocs ou de restructurer les pages de votre formulaire.

Référence des opérateurs

La liste des opérateurs dépend du champ que vous avez choisi — vous ne voyez jamais que ceux que ce champ prend en charge. Ci-dessous, chaque titre nomme l’ensemble exact.

Texte (Text Input, Text Area, et champs calculés de type texte)

OpérateurDescription
isLa valeur correspond, sans tenir compte de la casse ni des espaces au début ou à la fin
is notLa valeur ne correspond pas
containsLa valeur contient le texte spécifié
does not containLa valeur ne contient pas le texte spécifié
starts withLa valeur commence par le texte spécifié
ends withLa valeur se termine par le texte spécifié
is emptyLe champ n'a pas de valeur
is not emptyLe champ a une valeur

Toute comparaison de texte ignore la casse et les espaces au début et à la fin : x@Competitor.com se termine donc par @competitor.com.

Les autres champs de type texte proposent un ensemble plus restreint ; choisissez le type qui correspond à la comparaison dont vous avez besoin :

ChampOpérateurs proposés
Emailcontains, does not contain, is, ends with, is empty, is not empty
Website URLcontains, does not contain, is, starts with, ends with, is empty, is not empty
Phone Numberis, starts with, contains, is empty, is not empty
Hidden field (text)L'ensemble complet des opérateurs de texte ci-dessus

Numérique (Number, Star Rating, linear scale, champs masqués et calculés numériques)

OpérateurDescription
isLa valeur correspond exactement
is notLa valeur ne correspond pas
is greater thanLa valeur est supérieure au nombre spécifié
is less thanLa valeur est inférieure au nombre spécifié
is greater than or equal toLa valeur est égale ou supérieure au nombre spécifié
is less than or equal toLa valeur est égale ou inférieure au nombre spécifié
is betweenLa valeur se situe dans une plage (inclusive)
is emptyLe champ n'a pas de valeur
is not emptyLe champ a une valeur

Checkboxes et picture choice

OpérateurDescription
has checked any ofAu moins une des options spécifiées est cochée
has not checked any ofAucune des options spécifiées n'est cochée
has checked all ofToutes les options spécifiées sont cochées
has checked exactlyLes options cochées correspondent exactement à l'ensemble spécifié
is emptyAucune option n'est sélectionnée
is not emptyAu moins une option est sélectionnée
OpérateurDescription
isL'option sélectionnée correspond exactement
is notL'option sélectionnée ne correspond pas
is emptyRien n'est sélectionné
is not emptyUne option est sélectionnée

Toggle Switch (et champs calculés booléens)

OpérateurDescription
is onLe bouton bascule est activé
is offLe bouton bascule est désactivé

Signature

OpérateurDescription
is signedUne signature a été dessinée
is not signedAucune signature n'a été dessinée

File Upload

OpérateurDescription
has fileAu moins un fichier a été téléversé
has no fileAucun fichier n'a été téléversé

Date Picker et Time Picker

OpérateurDescription
isCorrespondance exacte
is notNe correspond pas
is beforeAvant la date/l'heure spécifiée
is afterAprès la date/l'heure spécifiée
is betweenSe situe dans une plage de dates/heures
is emptyAucune valeur sélectionnée
is not emptyA une valeur

Ranking

OpérateurDescription
option is ranked firstL'option spécifiée est en première position
option is ranked lastL'option spécifiée est en dernière position
option is ranked aboveL'option spécifiée est classée au-dessus d'une autre option

Matrix / Grid

OpérateurDescription
row answer isUne ligne spécifique a la réponse indiquée
row answer is notUne ligne spécifique n'a pas la réponse indiquée
row is answeredUne ligne spécifique a été répondue
row is not answeredUne ligne spécifique n'a pas été répondue

Payment

OpérateurDescription
amount equalsLe montant du paiement correspond exactement
amount is greater thanLe montant du paiement est supérieur à la valeur spécifiée
amount is less thanLe montant du paiement est inférieur à la valeur spécifiée
is completedLe paiement a été traité avec succès
is not completedLe paiement n'a pas encore été traité

Champs que vous ne pouvez pas surveiller

Planifier un rendez-vous et Documents peuvent être des cibles de visibilité, mais jamais des sources de condition. Une réservation est rattachée à la soumission plutôt que stockée comme une réponse ordinaire, et un bloc Documents ne collecte aucune réponse du tout. Utilisez des réponses de qualification antérieures pour afficher ou masquer l’un ou l’autre. Toute question Planifier un rendez-vous visible doit être réservée avant la soumission ; une question masquée ne bloque pas la soumission. Voir Planification Cal.com avec la logique.

Ciblage

Chaque action nécessite une cible — l’élément sur lequel elle agit. La cible dépend du type d’action :

Type d'actionCibleExemple
Show / HideN’importe quel bloc — une question, un paragraphe, une image, un conteneur de mise en page ou une option spécifique dans un champ à choix multipleAfficher un paragraphe « Bon choix ! » lorsqu’une option est choisie
Make required / Make optionalUne questionRendre "Restrictions alimentaires" obligatoire uniquement pour les participants en présentiel
Set next pageUne pagePasser à la page 5 pour les clients existants
Calculate valueUn champ calculéAdditionner trois scores Star Rating pour obtenir un total
Set payment amountUn champ PaymentAugmenter le prix de 15 lorsque "Livraison express" est activé
Prevent navigation to next page / Prevent submit formPas de cible nécessaire (seulement le message)Empêcher la soumission tant que le bouton des conditions n'est pas activé

Show et Hide vont au-delà des questions. Ciblez n’importe quel bloc du canevas — un paragraphe, un titre, une image ou un conteneur de mise en page — pour révéler une note masquée par défaut, ou masquer du contenu lorsqu’il n’est plus pertinent. Ils peuvent aussi cibler des options individuelles dans un champ à choix multiple, pas seulement la question entière. Masquez d’abord un bloc depuis le menu du bloc, puis écrivez une règle pour le révéler.

Combinaison de plusieurs règles

Chaque règle est indépendante, et elles s’évaluent toutes ensemble. Les règles sont lues de haut en bas, à travers les blocs de logique, dans l’ordre du document. La façon dont plusieurs règles portant sur une même cible se combinent dépend de l’action.

ActionComment plusieurs règles se combinent
Show / Hide, Make required / Make optionalSeule une règle dont les conditions correspondent revendique la cible, donc les règles s'accumulent comme un ou : le bloc est affiché si au moins une règle correspondante l'affiche. Une règle qui ne correspond pas applique son contraire mais ne revendique rien, donc une règle correspondante plus tardive l'emporte quand même.
Set next pageUn saut agit quand le répondant clique sur Suivant sur la page qui contient les questions que la règle lit, et sur aucune autre page. Parmi les règles qui agissent là, la première qui correspond l'emporte. Une règle qui ne lit que des champs masqués ou calculés agit sur n'importe quelle page, mais ne saute que vers l'avant.
Calculate valueChaque règle correspondante s'exécute, dans l'ordre, sur la valeur en cours. Rien n'est revendiqué.
Set payment amountSeule une règle « set to » dont les conditions correspondent revendique le prix : la première qui correspond en devient propriétaire, et plusieurs règles « set to » peuvent fixer un prix par palier. « increase by » et « decrease by » ne revendiquent jamais — elles s'accumulent dans l'ordre sur le montant en cours.
No rule matchesLe bloc retrouve son état par défaut — masqué s'il l'était par défaut, visible sinon.

Vous pouvez ainsi pointer plusieurs règles vers un même bloc sans qu’elles entrent en conflit. Un formulaire de retour a une question Radio Buttons — « Quel sujet pouvons-nous vous aider à traiter ? » — avec quatre options, et un champ e-mail « Pouvons-nous vous contacter ? » masqué par défaut. Quatre règles affichent chacune ce même champ e-mail (ainsi que leur propre question de suivi) pour leur option. Le champ e-mail apparaît quelle que soit l’option choisie, et reste masqué uniquement si aucune ne l’est.

Une seule règle suffit souvent

Pour révéler un bloc pour plusieurs réponses, une règle avec Any et une condition par réponse — ou une seule condition is not empty pour toutes les couvrir — est plus facile à lire que quatre règles. Utilisez plusieurs règles lorsque chaque option a aussi besoin de sa propre question de suivi distincte.

Règles en conflit

Lorsque deux règles sont en désaccord sur la même cible — l’une affiche un bloc (Show) tandis qu’une autre le masque ( Hide), ou l’une rend un champ obligatoire tandis qu’une autre le rend facultatif — et que les deux conditions correspondent en même temps, la première règle l’emporte. La règle perdante, plus tardive, est signalée dans l’éditeur : « Cette action ne s’applique jamais — une règle précédente contrôle déjà sa cible. L’ordre des règles décide : la première règle l’emporte. »

Une exception à l’ordre : une règle dont la condition lit un champ calculé s’exécute après la règle qui l’écrit, quel que soit l’ordre du document, afin qu’un score soit toujours calculé avant que quoi que ce soit ne s’y ramifie. Les règles qui écrivent dans les champs calculés les unes des autres en boucle déclenchent un avertissement de publication qui nomme la chaîne — rompez la boucle pour que les valeurs se résolvent de manière prévisible.

Masqué l’emporte sur obligatoire

Une question qui finit masquée n’est jamais obligatoire, qu’elle ait été masquée par une règle ou masquée depuis le menu du bloc sans règle pour la révéler. L’astérisque disparaît et la soumission n’est pas bloquée — sinon un répondant pourrait se retrouver bloqué par un champ qu’il ne peut pas voir.

Cas d’usage courants

Afficher une question de suivi en fonction d’une réponse précédente

Une enquête de satisfaction demande “Comment évaluez-vous votre expérience ?” avec une note de 1 à 5 étoiles (Star Rating). Un bloc de logique en dessous utilise la condition “la note est inférieure ou égale à 3” avec l’action Show ciblant un champ Text Area qui demande “Que pourrions-nous améliorer ?” Les répondants qui donnent 4 ou 5 ne voient jamais la question de suivi.

Révéler un message lorsqu’une option est choisie

Un formulaire d’inscription comporte une question Radio Buttons : « Quelle offre vous convient le mieux ? » En dessous se trouve un paragraphe — « Bon choix ! Notre offre Pro inclut une assistance prioritaire. » — masqué par défaut avec l’option Hide du menu du bloc. Un bloc de logique le révèle : si l’offre est « Pro », Show le paragraphe. Le message d’encouragement n’apparaît que pour ceux qui choisissent Pro, et reste masqué pour tous les autres.

Brancher vers différentes pages en fonction d’une sélection

Un formulaire d’inscription à un événement comporte une question Radio Buttons : “Participez-vous en présentiel ou à distance ?” Deux blocs de logique suivent :

  • Règle 1 — condition : présence est “En présentiel”, action : Set next page “Détails du lieu”.

  • Règle 2 — condition : présence est “À distance”, action : Set next page “Configuration du streaming”.

  • Règle 3 — condition : heure d’arrivée n’est pas vide, action : Set next page “Confirmation”. Heure d’arrivée est une question obligatoire sur “Détails du lieu”.

Les règles 1 et 2 lisent la question présence, donc elles agissent quand le répondant quitte sa page. Ensuite, Suivant continue dans l’ordre des pages. La règle 3 lit une question sur “Détails du lieu”, donc elle agit quand le répondant quitte cette page. Les participants en présentiel sautent alors “Configuration du streaming”. Chaque parcours collecte uniquement les informations pertinentes, puis les deux convergent sur une page “Confirmation” commune.

Calculer un score et brancher en fonction de celui-ci

Un formulaire de qualification des prospects comporte trois questions Star Rating : budget, délais et autorité. Un champ calculé nommé “Score prospect” utilise un bloc de logique avec l’action Calculate value pour additionner la valeur de chaque note. Un second bloc de logique lit le champ calculé : si le Score prospect est supérieur à 12, Set next page “Suivi prioritaire” ; sinon, sauter à la page de confirmation standard.

Réagir à la valeur d’un champ masqué

L’URL renseigne un champ masqué nommé plan (ex. : ?plan=enterprise). Un bloc de logique vérifie : si plan est “enterprise”, Show la question “Responsable de compte dédié” et Make required le champ “Taille de l’entreprise”. Les répondants du niveau gratuit ne voient jamais ces questions.

Bloquer la soumission en fonction d’un total calculé

Un formulaire de commande calcule un total en cours. Un bloc de logique utilise la condition : si le Total de commande est inférieur à 10, Prevent submit form. Le répondant ne peut pas soumettre tant que le seuil de commande minimum n’est pas atteint.

Tant qu’une règle de blocage est active, le bouton apparaît indisponible et le répondant est informé pourquoi. Saisissez la raison dans Message affiché au répondant sur la ligne d’action — « Votre commande doit totaliser au moins 10 » — afin qu’il sache quelle réponse modifier. Laissez-le vide et le formulaire revient à « Ce formulaire ne peut pas être envoyé avec les réponses actuelles. » (ou « Vous ne pouvez pas continuer à la page suivante avec les réponses actuelles. » pour un bloc de navigation). Lorsque plusieurs règles de blocage se déclenchent en même temps, la première qui porte un message fournit le texte.

Testez la logique avec Preview

Après avoir configuré vos règles, passez en mode Preview dans la barre d’outils supérieure et remplissez le formulaire comme le ferait un répondant. La logique se déclenche en temps réel en Preview, ce qui vous permet de vérifier chaque branchement, champ masqué et validation avant de publier.

Prochaines étapes