Formulaire public prérempli ou "Dîtes-le nous une fois !"

La version 1.7.5 de GRIST apporte une nouvelle fonctionnalité : Le pré-remplissage d’un formulaire.
Dans un besoin de minimisation, de simplification, pour ne pas avoir à demander ce qu’on sait déjà du répondant, cette option est facilitante…

Prenons un cas d’usage : Lors d’une campagne, vous souhaitez interroger un panel de votre base de donnée, uniquement ceux qui résident dans le département 35 et qui aiment les pommes.

Classiquement, pour pouvoir positionner les répondants dans la base, il faudra leur demander le n° du département et le fruit préféré.

Maintenant, ce n’est plus nécessaire… il suffira de communiquer le lien vers le formulaire public enrichi des arguments adhoc selon la syntaxe :
[url public du formulaire]?NOM_DE_LA VARIABLE1=valeur1&NOM_DE_LA VARIABLE2=valeur2&…

Comment ?

  • Créer votre table
  • Ajouter une vue Formulaire qui s’appuie sur la table
  • Via la vue formulaire, déterminer le ou les champs qui seront pré-renseignés par l’option « Accept value from URL »
  • Cacher éventuellement le champ au répondant par l’option « Hidden field » (vous ne voulez pas que le répondant modifie cette valeur mais elle sera bien présente comme réponse du formulaire)

Exemple : https://grist.numerique.gouv.fr/o/docs/forms/i5o1r1Bbb4J3JCke7L8BuZ/7?Fruit=pomme&Departement=35
Ici je pré-remplis le fruit préféré et laisse le répondant éventuellement changer.
Je vise une population du département 35 et je cache la saisie.
Les valeurs des 5 champs seront inscrits en base de données à la soumission du formulaire.

A noter : Une date pré-remplie doit être écrite au format US aaaa-mm-jj dans l’URL public du formulaire (&Date=2025-10-15)

4 « J'aime »

Merci pour ce tuto !

A noter que cette fonctionnalité est actuellement buguée pour une colonne de type Référence (en cours de résolution) : Forms - Accept value from URL for Reference List - #8 by dmitry-grist - Grist Creators

Génial ! Merci.
Sauf que…

Ca ne fonctionne pas si on a le paramètre « id »…

Dans mon cas, on a une URL avec le paramètre « id » généré automatiquement et ça donne ce genre de lien (j’ai mis avec id2 dans ce formulaire) :

Le problème : Grist permet de préremplir les champs via URL (super feature !), mais quand je crée une colonne nommée exactement « id » dans ma table, Grist la renomme automatiquement en « id2 » (conflit avec l’ID interne de ligne j’imagine).

Résultat :

  • L’URL avec ?id=valeur ne préremplit rien.
  • Si je teste ?id2=valeur, ça marche, mais mon outil ne peut pas changer le terme « id », il enverra toujours « id=valeur »

Étapes pour reproduire :

  1. Créer une table avec une colonne « id » (type Texte) → Sera renommée auto en « id2 » par Grist
  2. Créer un formulaire basé sur cette table, ajouter le champ dans le formulaire (avec « Accept value from URL » coché).
  3. Tester l’URL du form avec ?id=test123 → Rien ne se préremplit.
  4. Tester avec ?id2=test123 → Ça préremplit « id2 ».

Donc, comment arriver à récupérer ce paramètre « id » avec un formulaire Grist ?

Bonjour Alexis, malheureusement la colonne $id dans Grist est une colonne utilisée par le système pour stocker l’identifiant de chaque ligne. Créez une colonne contenant la formule =$id dans n’importe quelle table et vous verrez.

Par conséquent, il me semble logique que Grist n’accepte pas qu’une autre colonne s’appelle $id, et qu’il n’accepte pas non plus qu’un formulaire essaye de forcer la valeur de $id.

Le problème que vous évoquez n’est vraiment pas propre au formulaire mais je comprends que c’est le cas d’usage qui vous pose problème. Vous ne pouvez vraiment pas configurer votre outil pour qu’il génère des liens avec « id2 » ?

1 « J'aime »

Bonjour Enro,
Merci pour la réponse.
Je vais devoir passer par une étape intermédiaire avec redirection avec un code javascript qui récupère id= et redirige vers le formulaire Grist avec id2=

Je sais que Brevo gère ça bien de cette manière :


source : https://help.brevo.com/hc/fr/articles/4796656936082-Préremplir-le-formulaire-d-une-landing-page-avec-les-attributs-des-contacts

J’ai posté aussi sur le forum anglophone mais pas de vraie solution à part la redirection pour l’instant.