Et si on parlait un peu plus de tech dans la CivicTech ? Chaque mois, l’équipe de Cap Collectif vous propose un nouveau rendez-vous éditorial. L’objectif ? Vous présenter en détails de nouvelles fonctionnalités, pas uniquement la manière dont elles fonctionnent, mais aussi la manière dont elles ont été conçues et développées par notre équipe conception et nos développeurs.

Premier chapitre aujourd’hui avec une fonctionnalité qui nous a donné du fil à retordre : l’ajout de sauts conditionnels dans un questionnaire. Vous voulez ajouter des questions conditionnelles, des embranchements ou des branches de questions à votre formulaire ? Suivez le guide.


Depuis la création de notre application de questionnaire, nous avons observé avec plaisir de nombreux cas d’usages chez nos clients :

  • la réalisation d’enquêtes auprès d’un public donné (voir l’exemple du Sénat sur sa plateforme de consultation des élus locaux ou celui de l’Autorité Régionale de Transport métropolitain de Montréal)
  • la réalisation d’enquêtes de satisfaction pour améliorer leurs prochains projets participatifs (voir l’exemple de la Ville de Rennes, qui évalue chaque année la mise en oeuvre de son budget participatif avec les participants) ;
  • la mise en ligne d’appels à candidatures (voir l’exemple de Paris en Commun)

Quel besoin ?

Nous nous sommes rapidement rendus compte que nos clients étaient régulièrement obligés de faire passer les participants par toutes les questions de leur questionnaire pour valider leur réponse, y compris les questions qui ne les concernent pas forcément. L’expérience utilisateur se trouvait ainsi complexifiée par :

  • des questions inutiles où l’on pouvait lire une indication de type « Si votre réponse à la question A est “non”, allez directement à la question C » ;
  • des embranchements ou sections de questionnaire non pertinentes destinés à une partie des participants seulement.

Côté clients, ces derniers étaient parfois amenés à créer plusieurs questionnaires pour un même public. Par exemple, un questionnaire avec un tronc commun, puis des questionnaires complémentaires en fonction du profil des participants.

Or, ce n’est un mystère pour personne : plus les questionnaires sont longs, plus le taux de non-réponse ou d’abandon en cours de remplissage est élevé.

La question s’est malgré tout posée, au sein de notre équipe, de savoir si nous devions développer une fonctionnalité aussi complexe et pointue (sa complexité en fait d’ailleurs une option Premium chez tous les services spécialisés dans la création de questionnaires).

Nous avons finalement choisi de développer cette fonctionnalité pour plusieurs raisons :

  • perfectionner une application de questionnaire régulièrement utilisée par nos clients ;
  • leur éviter de devoir payer un outil extérieur et/ou d’éclater leurs démarches de participation (là où notre tech permet de configurer différents dispositifs participatifs sur la même plateforme) ;
  • leur permettre de maîtriser leurs données, dans la mesure où nos clients sont les propriétaires exclusifs des données de leur plateforme.

Notre solution

La fonctionnalité des sauts conditionnels que nous avons déployée vise à offrir de nouvelles possibilités, telles que :

  • créer des questions conditionnelles, c’est-à-dire afficher ou masquer des questions aux participants en fonction de leurs réponses dans un seul et même questionnaire. Ainsi, les répondants n’ont jamais à lire et sauter des questions non pertinentes, car avec les sauts, ils ne les verront jamais ;
  • créer des embranchements, qui suivent des chemins différents. Cette façon de segmenter votre public signifie qu’un type de répondant ne verra que les questions qui le concernent. Par exemple, avec les sauts, vous pouvez montrer aux élus locaux une série de questions, tandis que les élus nationaux en voient une autre.

Les résultats

En utilisant les sauts conditionnels, vous pouvez maintenant délivrer une expérience plus personnalisée et fluide pour votre auditoire. Cela leur permet de gagner du temps et de garder leur intérêt. Vous obtiendrez ainsi un taux d’engagement et d’achèvement plus élevé et des réponses de meilleure qualité pour améliorer vos prises de décisions.

Petite particularité propre à Cap Collectif : le questionnaire et le formulaire de dépôt (utilisé pour paramétrer un budget participatif, une boîte à idées ou un appel à projets) partagent les mêmes briques techniques. Les sauts conditionnels, créés pour l’application de questionnaire, peuvent donc également être configurés dans vos formulaires de dépôt, vous permettant ainsi de personnaliser encore plus les formulaires de dépôt de vos budgets participatifs, appels à projets et boîtes à idées.

Comment ça fonctionne ?

Vous pouvez ajouter des sauts conditionnels à tous les types de questions.
Exemple : les personnes ayant répondu “non” à la question A, sautent directement à la question C. À l’inverse, les personnes ayant répondu « oui » suivront le cours normal de l’enquête.

Vous pouvez cumuler plusieurs conditions sur une question ou des questions différentes. Exemple :

  • Si l’utilisateur répond 1, il saute de la question A à la question C ; s’il répond 2 alors il saute directement à la question D.
  • Si l’utilisateur a répondu 1 à la question A et s’il a répondu 2 à la question B, il saute à la question D.

Si aucune de vos conditions n’est remplie, vous pouvez couvrir tous les autres sans avoir besoin de les définir à l’aide de la fonction “Dans tous les autres cas, aller à”.

Exemple : si l’utilisateur répond 1, il saute à la question C ; pour toutes les autres réponses, il saute à la question D.

Si l’utilisateur arrive à la fin d’un embranchement, vous pouvez les rediriger sur la branche principale du questionnaire grâce à la fonction “Toujours aller à”.

Exemple : si l’utilisateur a répondu à la question A.1, A.2 et A.3, peu importe sa réponse à la question A.3, il saute à la question C.


Conseil pour construire vos questionnaires avec embranchements

Avant de commencer, dessinez votre questionnaire sur papier sous forme de diagramme. Il peut en effet être très utile de dessiner la structure avant de commencer, surtout si elle est complexe. Voici un exemple :

Un exemple de diagramme

Côté tech : trouver le bon modèle de données

Implémenter la fonctionnalité de sauts conditionnels a été très enrichissant, mais aussi complexe ! La réelle difficulté a été de penser, en amont, à un modèle de données qui nous permettait d’intégrer la notion de sauts conditionnels et d’embranchements d’une manière assez flexible et surtout pérenne pour la suite, afin qu’elle s’adapte à tout type de questions.

Notre approche a été, dans un premier temps, de réfléchir à l’algorithme permettant d’afficher, selon les réponses des utilisateurs, les questions pertinentes. En effet, nous devions être capables de prédire à tout moment les questions qui vont devoir être affichées. Et c’est justement cette partie qui a été complexe et a nécessité d’abord plusieurs schémas papier afin de s’imaginer visuellement le “flow” de l’algorithme. D’autant plus que l’utilisateur peut choisir de revenir sur une question passée et modifier sa réponse. Il faut donc correctement mettre à jour le questionnaire, en ayant anticipé toutes les possibilités.

… et anticiper tous les cas de figures

C’est une partie primordiale dans le développement d’une fonctionnalité contenant beaucoup de logique. Il faut en amont s’assurer de gérer tous les “edge cases” afin d’avoir une expérience optimale. De plus, une logique complexe nécessite de réaliser des tests. Pour cela, nous avons opté pour du TDD (Test Driven Development) : nous avons d’abord écrit nos tests afin de s’assurer de gérer tous les cas de figure, des plus simples aux plus complexes. Cela nous a permis d’ajouter au fur et à mesure du code tout en ayant la certitude que ce que nous avions prévu initialement marchait encore et toujours. Mais cela nous a aussi énormément avantagé, en particulier pour cette fonctionnalité, car il y a énormément de cas possibles dans un questionnaire intégrant des sauts conditionnels. Écrire ces tests a été tout aussi important que le développement même de ces embranchements.

Une autre difficulté a été de supporter ces sauts conditionnels sur toutes nos applications existantes (formulaire de dépôt et questionnaire). Cela se traduit par un système générique qui doit s’adapter à ce qui est déjà présent et se rajouter par dessus. En développement, réaliser un système souple et générique se traduit souvent par un modèle plus complexe, mais mieux découpé. Et c’est justement ce modèle de données dont nous parlions auparavant qui a été difficile à appréhender, mais qui nous permettra, par la suite, le support de différents types de questions.

Maxime Arrouard et Omar Jbara


Comment accéder à la fonctionnalité ?

La fonctionnalité des sauts conditionnels est disponible dès maintenant et gratuitement pour tous nos clients qui souhaitent configurer un questionnaire (ou un formulaire de dépôt). Retrouver tous les détails de cette fonctionnalité sur l’aide en ligne : ajouter des sauts conditionnels. Vous pouvez également tester les exemples présentés dans l’aide en ligne sur notre plateforme de démonstration.

Si vous n’êtes pas encore client, consultez nos tarifs ou contactez-nous pour planifier vos prochaines enquêtes.