Aller au contenu
Fonctionnalités Tarifs Doc. Contact Se connecter Commencer
Langue

Construire un formulaire

Creating a form or importing one from XLSForm, the twenty one question types, what you can set on each question, sections and repeating sections.

Le module Formulaires vous permet de concevoir votre propre questionnaire, puis d'y recueillir des réponses. Vous construisez le formulaire une seule fois, vous le publiez, et votre équipe peut alors le remplir dans l'espace de travail, tandis que des personnes extérieures à votre organisation répondent au même formulaire au moyen d'un lien public.

Créer un nouveau formulaire

A new form begins empty. You add its questions one at a time in the builder, on the form's Design tab, or you import a whole questionnaire from an XLSForm workbook.

  1. Ouvrez Formulaires depuis le menu de l'espace de travail et créez un formulaire.
  2. Ouvrez le nouveau formulaire et choisissez Construire.
  3. Ajoutez une question, choisissez son type, renseignez ses paramètres et enregistrez-la. Recommencez jusqu'à ce que le questionnaire soit complet.

La construction nécessite l'autorisation de modification des formulaires. Le constructeur se trouve à une adresse de cette forme : /forms/<id>/build/

Les vingt et un types de questions

Une question relève de l'un des vingt et un types, et le type détermine à la fois ce que voit la personne qui répond et ce que la plateforme enregistre. Choisissez d'abord le type, car c'est lui qui détermine lesquels des paramètres ci-dessous s'affichent.

There is also a note, which shows text such as an instruction or a consent paragraph and records no answer.

A note can be shown with the question that follows it: when editing the note, tick Show this note with the next question. The note then appears in the same card as that question, also when the form shows one screen at a time, and a screen reader reads it out with the question. A note with a display condition of its own, a note in a repeat group, and a note followed by another note keep a card of their own.

FamilleTypes disponibles
Texte, nombres et datesTexte court ; Texte long / Paragraphe ; Nombre ; Numéro de téléphone ; Numéro de mobile ; Date
Options de réponseBouton radio, choix unique ; Case à cocher, choix multiple ; Liste déroulante ; Oui / Non
Échelles, grilles et classementsÉchelle de Likert (1 à 5) ; Note (1 à 10 étoiles) ; Matrice / Grille ; Classement
Médias et saisiePhoto(s) ; Vidéo ; Note vocale ; Document / Téléversement de fichier ; Signature ; Lecture de code-barres / code QR ; Localisation GPS

Ce que vous pouvez définir pour une question

Chaque question comporte un libellé et, si vous le souhaitez, une ligne de texte d'aide. Il s'agit dans les deux cas de texte, saisi une fois pour chacune des langues de votre espace de travail. Au-delà, les paramètres affichés dépendent du type choisi :

  • Obligatoire, afin que le formulaire refuse de passer à la suite tant que la question n'a pas reçu de réponse.
  • Les options de réponse, ajoutées et supprimées sous forme de lignes. Chaque ligne comporte un libellé que lit la personne et une valeur que la plateforme enregistre.
  • Une valeur minimale et une valeur maximale, pour les questions qui attendent un nombre.
  • Des libellés pour le bas et le haut d'une échelle, afin qu'une note soit plus parlante qu'un simple chiffre.
  • Un nom de variable. Il est obligatoire ; il doit commencer par une lettre minuscule et ne comporter ensuite que des lettres minuscules, des chiffres et des traits de soulignement, par exemple household_size
  • Les types de fichiers que vous acceptez, pour les questions de téléversement.
  • Une formule, pour un champ calculé dont la plateforme détermine la réponse au lieu de la demander.
  • Des règles de validation, y compris une expression régulière et le message d'erreur affiché lorsqu'une réponse n'y correspond pas.
  • Les lignes et l'échelle d'une matrice, les éléments à classer pour un classement, et la question parente pour une liste en cascade.
The variable name matters more than it looks. Skip logic refers to a question by its variable name, and the exports name each column after it, so give each question a short name you will still recognise months later.
Capture d'écran : une question ouverte dans le constructeur, avec les champs de libellé pour chaque langue, les lignes d'options de réponse et le nom de variable.

Who a form belongs to, and who it is about

A form's scope says what it belongs to: one activity, or a whole project. Its respondent source says who it is about: the participants of its activity, the participants of the activity chosen at each response, a list of people you choose, an uploaded roster, or no respondent list. Once the form holds a real response, neither can change, and nor can its respondent group: the rest of the Settings page still saves, and the save says which of the three it left as they were. A form someone has opened but not yet answered holds no response.

A form with no respondent list is about nobody on a register. It opens at its first question, online and on a phone, with no search, no scan and nobody to register: use it for an anonymous survey, or for anything that is not about a person, such as market prices. Registering people from a form needs a respondent group, so a form that declares none registers nobody.

One form for many events. A form that is the same at every event, such as a training satisfaction survey, belongs to the whole project and takes the source "Participants of the activity chosen at each response". When the form opens, the collector chooses the activity, from that project's activities only, and the list of people narrows to that activity's participants. Every response keeps its activity, so one dataset carries an activity column instead of one form for each event. Offline, the activity is chosen on the phone and sent with the response.

Where a project names an operating area on its Countries tab, the place picker on a form collected for that project offers those places first, under "Where this project works", and the rest of the country after them. Nothing is hidden: every place stays available, and what you may record is unchanged. For a response collected at an activity, the order follows that activity's country.

Each response also records the country it is about: its activity's, else its respondent's, else a place answer's, else the collector's default country. It is updated whenever the response changes, and the Country column and filter on the records list use it.

Regrouper les questions en sections

Select the questions that belong together, by ticking them or with a Ctrl or Cmd click, and choose Create section with selected. The section takes a heading of its own, in each of your workspace languages, and its settings open so you can decide how it behaves. Move to section adds questions to a section that already exists.

A section can show all of its questions on the same screen, it can repeat, and it can carry a condition of its own. Removing a section asks whether to ungroup it, which keeps every question and removes only the section, or to delete everything in it. Deleting questions that already hold answers asks you to confirm how many answers go with them.

Repeating a section

A repeating section asks its questions once for each entry, for example once for each child in a household. You choose how many entries there are: the person filling the form adds them as they go, a fixed number, as many as the answer to an earlier question, or as many as an expression gives. A section shown on one screen cannot contain a repeat.

A repeating section that already holds entries cannot be switched off or ungrouped, so entries that have been collected are never lost that way.

A calculation can also read a repeating section as a whole, with one of the functions below, for example how many people a roster lists, or a year of monthly revenue. To count only the entries that match a condition, such as how many of the workers are women, add a calculation inside the section that is 1 for a matching entry and 0 otherwise, and total it. The value follows the entries as they are added or removed, and is worked out again when the response is submitted.

  • count() the number of entries
  • sum() the total of one of its questions
  • min() the smallest value of one of its questions
  • max() the largest value of one of its questions
  • avg() the average of one of its questions

Importing an XLSForm

A form can also be built from an XLSForm workbook, the format KoboToolbox, ODK and SurveyCTO use. Import it from the Design tab, and upload the workbook again later to update the form. The import reports anything it could not apply, names a group too long for one phone screen and any rule that reads a later question, and keeps the columns it does not interpret so that they are exported back unchanged.

Each upload that is applied is recorded with its file name, who uploaded it and when, and the workbook itself can be downloaded again. The template offered on the import page carries a GUIDE sheet that explains what the importer accepts.

Forms → Import XLSForm creates a new form, and is linked from the forms list and its empty state. To replace a form you already have and keep its responses, use Import XLSForm on that form’s own Design tab, which matches your questions by their name column and updates them in place.

The form’s title is stored in the language the workbook declares, so an English title never lands in the Arabic slot.

A workbook may carry a commonlynk sheet (its bilingual title, the register the form is about, how it is scored) and cl:: columns: one set for scoring each question, and cl::bound, which shows a note with the question after it. CommonLynk reads these and applies the ones it recognises; a value it does not recognise is reported and left for you to set, never applied silently. They are optional, so a plain Kobo, SurveyCTO or ODK file imports unchanged. Exported, a bound note is an ordinary note that keeps its cl::bound marker, so importing the file again restores it.

A pattern (regex) must check an answer the same way on the phone as on the server, so a pattern the phone cannot check is refused when the form is written: in the question editor, and when a workbook is imported, naming the question and the part of the pattern. The cases are possessive quantifiers (a++), atomic and conditional groups, \N{…}, octal escapes such as \0, and a negated escape inside square brackets such as [\D]; inside a relevant, a calculation or a constraint joined with or, inline flags such as (?i) are refused too. Rewrite the pattern without them.

A rule on a date can compare it with the day the answer is given, using the function below, so a date can be kept out of the future, or the date of a next visit kept after today. A response collected offline is checked against the day it was collected, not the day it reached the server, and a response already submitted is never checked again against a later day. If a device did not report when it collected a response, the answer is kept and flagged for review rather than refused.

  • today() the day the answer is given, in the workspace's time zone

Ordonner les questions

Chaque carte de question comporte une poignée de glissement. Saisissez-la, faites glisser la carte vers le haut ou vers le bas jusqu'à l'emplacement voulu : le nouvel ordre est enregistré dès que vous la relâchez. Il n'y a pas d'étape d'enregistrement distincte pour l'ordre, ni de numérotation à tenir à jour manuellement.