Skip to main content
Voir en Markdown

Préremplissage des formulaires

Un formulaire qui connaît déjà la réponse ne devrait pas la demander. La campagne qui a amené le visiteur est dans l'URL ; l'adresse e-mail de l'utilisateur connecté est dans la session. Poser quand même la question coûte un champ, et la réponse obtenue vaut moins que celle qu'on avait déjà.

prefill associe des noms de champs à l'origine de leur valeur initiale :

forms:
  - id: 1
    name: lead-capture
    title: Request a demo
    submitTo: { table: leads }
    prefill:
      utm_source: $query.utm_source
      utm_campaign: $query.utm_campaign
      plan: Starter
    fields:
      - { kind: table-field, column: email, required: true }
      - { kind: standalone, name: plan, inputType: short-text }
      - { kind: standalone, name: utm_source, inputType: short-text, hidden: true }
      - { kind: standalone, name: utm_campaign, inputType: short-text, hidden: true }

Sources de préremplissage

Chaque valeur de la table est soit une référence, soit un littéral. Les références sont résolues côté serveur pendant le rendu du formulaire.

Source Se résout en Si la résolution échoue
$query.<name> Le paramètre de chaîne de requête nommé, dans l'URL de la requête qui a rendu le formulaire. Entrée supprimée ; le champ s'affiche vide.
$user.<prop> Une propriété de l'utilisateur connecté — $user.email, $user.id. Entrée supprimée ; le champ s'affiche vide.
Chaîne, nombre, booléen Elle-même, telle quelle — une valeur par défaut que le contributeur peut remplacer.

Une référence non résolue est retirée de la table, jamais affichée. Le contributeur voit une saisie vide, et le littéral $query.utm_campaign ne fuit jamais dans le HTML.

Champs masqués préremplis

Un préremplissage sur un champ hidden: true est tout l'intérêt de la fonctionnalité pour le travail d'attribution. Le champ est rendu sous forme d'<input type="hidden"> porteur de la valeur résolue : la campagne d'où vient le visiteur entre dans l'enregistrement sans jamais apparaître à l'écran, et sans script de suivi écrit à la main.

prefill:
  campaign: $query.ref
fields:
  - { kind: table-field, column: email, required: true }
  - { kind: table-field, column: campaign, hidden: true }

/forms/lead-capture?ref=partner-x stocke désormais partner-x dans la colonne campaign de l'enregistrement.

$user exige une session

$user.<prop> ne se résout que si la requête porte une session authentifiée, ce qui suppose en pratique que le formulaire en exige une. Sur un formulaire public, la référence est simplement abandonnée et le champ s'affiche vide — sans erreur, sans fuite d'état de session.

Cette tolérance est propre à la table prefill. Un defaultValue: $user.email posé sur un champ d'un formulaire public relève de l'erreur de configuration plutôt que du haussement d'épaules à l'exécution : il est rejeté au décodage de la configuration, avec un message nommant le formulaire et le champ fautif. Exigez l'authentification, ou déplacez la référence dans prefill.

prefill ou defaultValue

Les deux alimentent une valeur initiale, et les deux acceptent les références $query / $user. Le choix porte sur l'endroit où vit le câblage.

À utiliser Quand
prefill Attribution et amorçage depuis la session — le câblage relève du formulaire, et se lit mieux regroupé en un bloc.
defaultValue Une valeur qui fait partie de la définition même du champ, comme une quantité de départ fixe.

Pages associées

Dernière mise à jour 27 juillet 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta — les contributions et corrections sont les bienvenues.

Construit avec Sovrium