---
title: "Documentation des instances de formulaire"
description: "Vue d'ensemble du dataset des instances de formulaires et de ses liens avec les données associées pour une gestion complète des formulaires"
url: https://help.finalcad.com/fr/articles/74-documentation-des-instances-de-formulaire
collection: "Documentation des jeux de données"
updated: 2026-08-21
language: fr
alternates: [en]
---

# Documentation des instances de formulaire

Vue d'ensemble du dataset des instances de formulaires et de ses liens avec les données associées pour une gestion complète des formulaires

## **Instances de formulaire et jeux de données associés**

Le jeu de données des **instances de formulaire** (FormInstances) est essentiel pour la gestion des données de formulaire, en se reliant à plusieurs autres jeux de données qui renforcent ses fonctionnalités et fournissent des informations de support. Chaque jeu de données associé apporte un contexte ou des détails supplémentaires, établissant une structure complète pour les données de formulaire. Vous trouverez ci-dessous les jeux de données directement liés aux instances de formulaire, avec les points de connexion mis en évidence.

1.  FormTemplates
    

-   **Lien :** Le champ _form\_id_ dans les instances de formulaire est lié au champ _id_ dans _FormTemplates_.
    
-   **Aperçu du schéma :** Les _FormTemplates_ définissent des structures de formulaire personnalisables, incluant des tableaux imbriqués pour les noms de modèles, les parties et les sections, tous prenant en charge la localisation. Cette connexion permet à chaque instance de formulaire d’utiliser un modèle spécifique, déterminant la structure et la mise en page du contenu de chaque formulaire.
    

2.  FormAnswers
    

-   **Lien :** Le champ _id_ dans les instances de formulaire correspond au champ _form\_instance\_id_ dans _FormAnswers_.
    
-   **Aperçu du schéma :** _FormAnswers_ contient les réponses individuelles aux champs de formulaire, avec des champs tels que _form\_answer\_id_, _form\_field\_id_ et une valeur multilingue. Cette relation fournit des données de réponse détaillées pour chaque instance de formulaire, capturant les saisies de l'utilisateur et les réponses au formulaire.
    

3.  Projects
    

-   **Lien :** Le champ _project\_id_ dans les instances de formulaire est lié au champ _id_ dans _Projects_.
    
-   **Aperçu du schéma :** _Projects_ fournit le contexte principal de projet pour chaque instance de formulaire, incluant des attributs tels que _id_, _organization\_id_, _name_, _description_, _start\_date_ et _end\_date_. Ce lien permet de situer chaque instance de formulaire dans le cadre d'un projet spécifique.
    

4.  Phases
    

-   **Lien :** Le champ _project\_phase\_id_ dans les instances de formulaire est lié au champ _id_ dans _Phases_.
    
-   **Aperçu du schéma :** _Phases_ décrit les différentes étapes d'un projet, avec des noms multilingues et des attributs tels que _updated\_at_. Cette relation indique la phase spécifique du projet associée à chaque instance de formulaire.
    

5.  Companies
    

-   **Lien :** Le champ _company\_id_ dans les instances de formulaire est lié au champ _id_ dans _Companies_.
    
-   **Aperçu du schéma :** _Companies_ inclut des détails tels que le nom, le statut activé et _organization\_id_. Cette association permet de rattacher chaque instance de formulaire à une entreprise spécifique, facilitant ainsi le suivi et le reporting organisationnel.
    

6.  Modules
    

-   **Lien :** Le champ _module\_id_ dans les instances de formulaire est lié au champ _module\_id_ dans _Modules_.
    
-   **Aperçu du schéma :** _Modules_ fournit des données telles que le moteur, la couleur, l'icône et des noms multilingues, permettant à chaque instance de formulaire d'être associée à des domaines fonctionnels spécifiques ou à des composants de projet représentés par les modules.
    

7.  Plans
    

-   **Lien :** Le champ _plan\_id_ dans les instances de formulaire est lié au champ _id_ dans _Plans_.
    
-   **Aperçu du schéma :** _Plans_ comprend des attributs tels que le nom, _parent\_id_ et _organization\_id_, établissant une structure de projet organisée à laquelle les instances de formulaire peuvent être associées, facilitant ainsi le suivi de la planification et de l'exécution.
    

8.  Documents
    

-   **Lien :** Le champ _project\_id_ dans les instances de formulaire est associé au champ _project\_id_ dans _Documents_.
    
-   **Aperçu du schéma :** _Documents_ fournit des métadonnées telles que _file\_type_, _name_, _type_ et des horodatages (_created\_at_, _updated\_at_). Ce lien permet d'associer des documents liés au projet aux instances de formulaire pour un contexte et une référence plus riches.
    

9.  Statuses
    

-   **Lien :** Le champ _status\_id_ dans les instances de formulaire est lié au champ _id_ dans _Statuses_.
    
-   **Aperçu du schéma :** _Statuses_ définit l'état des instances de formulaire, avec des noms multilingues, une couleur et une position. Ce lien permet de suivre l'état actuel ou l'avancement de chaque instance de formulaire.
    

10.  Users
     

-   **Lien :** Les champs _created\_by\_user\_id_ et _updated\_by\_user\_id_ dans les instances de formulaire sont liés au champ _user\_id_ dans _Users_.
    
-   **Aperçu du schéma :** _Users_ contient des informations telles que l'adresse e-mail, _first\_name_ et _last\_name_, identifiant les utilisateurs responsables de la création et de la mise à jour de chaque instance de formulaire, et permettant la responsabilisation et le suivi des actions des utilisateurs.
    

### **Structure des modèles de formulaire**

Le jeu de données _FormTemplates_ possède une structure hiérarchique complexe conçue pour prendre en charge des formulaires personnalisables. Chaque modèle de formulaire définit la structure et la mise en page du formulaire, avec des niveaux imbriqués permettant une personnalisation étendue. Cette hiérarchie est organisée en **parties** (parts), **sections** (sections) et **champs** (fields):

```
root
 |-- id: string (nullable = true)
 |-- created_at: timestamp (nullable = true)
 |-- updated_at: timestamp (nullable = true)
 |-- deleted_at: timestamp (nullable = true)
 |-- created_by_id: string (nullable = true)
 |-- updated_by_id: string (nullable = true)
 |-- deleted_by_id: string (nullable = true)
 |-- template: struct (nullable = true)
 |    |-- names: array (nullable = true)
 |    |    |-- element: struct (containsNull = true)
 |    |    |    |-- id: string (nullable = true)
 |    |    |    |-- translation: string (nullable = true)
 |    |    |    |-- localization: string (nullable = true)
 |    |-- state: integer (nullable = true)
 |    |-- version: integer (nullable = true)
 |    |-- family_id: string (nullable = true)
 |    |-- parent_id: string (nullable = true)
 |    |-- visibility: string (nullable = true)
 |    |-- created_by_id: string (nullable = true)
 |    |-- deleted_by_id: string (nullable = true)
 |    |-- form_statuses: array (nullable = true)
 |    |    |-- element: struct (containsNull = true)
 |    |    |    |-- id: string (nullable = true)
 |    |    |    |-- num: integer (nullable = true)
 |    |    |    |-- color: string (nullable = true)
 |    |    |    |-- names: array (nullable = true)
 |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |-- translation: string (nullable = true)
 |    |    |    |    |    |-- localization: string (nullable = true)
 |    |    |    |-- form_id: string (nullable = true)
 |    |    |    |-- created_at: string (nullable = true)
 |    |    |    |-- deleted_at: string (nullable = true)
 |    |    |    |-- updated_at: string (nullable = true)
 |    |    |    |-- created_by_id: string (nullable = true)
 |    |    |    |-- deleted_by_id: string (nullable = true)
 |    |    |    |-- updated_by_id: string (nullable = true)
 |    |    |    |-- default_status: boolean (nullable = true)
 |    |    |    |-- name_translatable_cell_id: string (nullable = true)
 |    |-- form_template: struct (nullable = true)
 |    |    |-- id: string (nullable = true)
 |    |    |-- names: array (nullable = true)
 |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |-- translation: string (nullable = true)
 |    |    |    |    |-- localization: string (nullable = true)
 |    |    |-- parts: array (nullable = true)
 |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |-- num: integer (nullable = true)
 |    |    |    |    |-- names: array (nullable = true)
 |    |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |    |-- translation: string (nullable = true)
 |    |    |    |    |    |    |-- localization: string (nullable = true)
 |    |    |    |    |-- detail: string (nullable = true)
 |    |    |    |    |-- weight: integer (nullable = true)
 |    |    |    |    |-- sections: array (nullable = true)
 |    |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |    |-- num: integer (nullable = true)
 |    |    |    |    |    |    |-- names: array (nullable = true)
 |    |    |    |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- translation: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- localization: string (nullable = true)
 |    |    |    |    |    |    |-- detail: string (nullable = true)
 |    |    |    |    |    |    |-- weight: integer (nullable = true)
 |    |    |    |    |    |    |-- qr_code: boolean (nullable = true)
 |    |    |    |    |    |    |-- fields: array (nullable = true)
 |    |    |    |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- num: integer (nullable = true)
 |    |    |    |    |    |    |    |    |-- names: array (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- element: struct (containsNull = true)
 |    |    |    |    |    |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |    |-- translation: string (nullable = true)      
 |    |    |    |    |    |    |    |    |    |    |-- localization: string (nullable = true)     
 |    |    |    |    |    |    |    |    |-- points: integer (nullable = true)
 |    |    |    |    |    |    |    |    |-- prefix: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- suffix: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- weight: integer (nullable = true)
 |    |    |    |    |    |    |    |    |-- choices: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- details: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- required: boolean (nullable = true)
 |    |    |    |    |    |    |    |    |-- data_type: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- form_link: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- created_at: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- created_by: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- deleted_at: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- deleted_by: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- updated_at: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- updated_by: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- internal_code: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- summary_field: boolean (nullable = true)
 |    |    |    |    |    |    |    |    |-- qr_code_mapping_key: string (nullable = true)        
 |    |    |    |    |    |    |    |    |-- data_referential_tag: string (nullable = true)       
 |    |    |    |    |    |    |    |    |-- type_field_data: integer (nullable = true)
 |    |    |    |    |    |    |    |    |-- presentation_type: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- complementary_text: string (nullable = true)
 |    |    |    |    |    |    |    |    |-- form_field_sa_text: struct (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- id: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- end_with: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- only_text: boolean (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- max_length: integer (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- min_length: integer (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- start_with: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- contains_text: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- default_value: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- form_field_id: string (nullable = true)
 |    |    |    |    |    |    |    |    |    |-- case_sensitive: integer (nullable = true)       
 |    |    |    |    |    |    |    |    |    |-- case_sensitive_mode: string (nullable = true)   
 |    |    |    |    |    |    |    |    |-- form_template_section_id: string (nullable = true)   
 |    |    |    |    |    |    |    |    |-- qr_code_mapping_position: string (nullable = true)   
 |    |    |    |    |    |    |    |    |-- name_translatable_cell_id: string (nullable = true)  
 |    |    |    |    |    |    |    |    |-- description_translatable_cell_id: string (nullable = true)
 |    |    |    |    |    |    |-- created_at: string (nullable = true)
 |    |    |    |    |    |    |-- created_by: string (nullable = true)
 |    |    |    |    |    |    |-- deleted_at: string (nullable = true)
 |    |    |    |    |    |    |-- deleted_by: string (nullable = true)
 |    |    |    |    |    |    |-- is_enabled: boolean (nullable = true)
 |    |    |    |    |    |    |-- updated_at: string (nullable = true)
 |    |    |    |    |    |    |-- updated_by: string (nullable = true)
 |    |    |    |    |    |    |-- created_by_id: string (nullable = true)
 |    |    |    |    |    |    |-- deleted_by_id: string (nullable = true)
 |    |    |    |    |    |    |-- internal_code: string (nullable = true)
 |    |    |    |    |    |    |-- updated_by_id: string (nullable = true)
 |    |    |    |    |    |    |-- qr_code_format: string (nullable = true)
 |    |    |    |    |    |    |-- data_referential_id: string (nullable = true)
 |    |    |    |    |    |    |-- internal_description: string (nullable = true)
 |    |    |    |    |    |    |-- data_referential_tags: string (nullable = true)
 |    |    |    |    |    |    |-- form_template_part_id: string (nullable = true)
 |    |    |    |    |    |    |-- name_translatable_cell_id: string (nullable = true)
 |    |    |    |    |    |    |-- qr_code_separator_key_value: string (nullable = true)
 |    |    |    |    |    |    |-- qr_code_separator_information: string (nullable = true)        
 |    |    |    |    |    |    |-- description_translatable_cell_id: string (nullable = true)     
 |    |    |    |    |-- created_at: string (nullable = true)
 |    |    |    |    |-- created_by: string (nullable = true)
 |    |    |    |    |-- deleted_at: string (nullable = true)
 |    |    |    |    |-- deleted_by: string (nullable = true)
 |    |    |    |    |-- updated_at: string (nullable = true)
 |    |    |    |    |-- updated_by: string (nullable = true)
 |    |    |    |    |-- created_by_id: string (nullable = true)
 |    |    |    |    |-- deleted_by_id: string (nullable = true)
 |    |    |    |    |-- internal_code: string (nullable = true)
 |    |    |    |    |-- updated_by_id: string (nullable = true)
 |    |    |    |    |-- form_template_id: string (nullable = true)
 |    |    |    |    |-- internal_description: string (nullable = true)
 |    |    |    |    |-- name_translatable_cell_id: string (nullable = true)
 |    |    |    |    |-- description_translatable_cell_id: string (nullable = true)
 |    |    |-- state: integer (nullable = true)
 |    |    |-- weight: integer (nullable = true)
 |    |    |-- version: integer (nullable = true)
 |    |    |-- embedded: boolean (nullable = true)
 |    |    |-- parent_id: string (nullable = true)
 |    |    |-- created_at: string (nullable = true)
 |    |    |-- created_by: string (nullable = true)
 |    |    |-- deleted_at: string (nullable = true)
 |    |    |-- deleted_by: string (nullable = true)
 |    |    |-- updated_at: string (nullable = true)
 |    |    |-- updated_by: string (nullable = true)
 |    |    |-- allow_draft: boolean (nullable = true)
 |    |    |-- presentation: integer (nullable = true)
 |    |    |-- created_by_id: string (nullable = true)
 |    |    |-- deleted_by_id: string (nullable = true)
 |    |    |-- external_code: string (nullable = true)
 |    |    |-- internal_code: string (nullable = true)
 |    |    |-- updated_by_id: string (nullable = true)
 |    |    |-- duplicate_from_id: string (nullable = true)
 |    |    |-- internal_description: string (nullable = true)
 |    |    |-- name_translatable_cell_id: string (nullable = true)
 |    |    |-- description_translatable_cell_id: string (nullable = true)
 |    |-- finalcad_ready: boolean (nullable = true)
 |    |-- form_template_id: string (nullable = true)
 |    |-- duplicate_from_id: string (nullable = true)
 |    |-- current_organization_id: string (nullable = true)
 |    |-- name_translatable_cell_id: string (nullable = true)
 |    |-- parent_in_organization_id: string (nullable = true)
 |    |-- id_in_current_organization: string (nullable = true)
 |    |-- current_organization_visibility: string (nullable = true)
 |    |-- description_translatable_cell_id: string (nullable = true)
```

**Composants clés:**

-   **Parts :** Chaque modèle de formulaire est divisé en plusieurs _parts_, chacune représentant une section majeure du formulaire. Les _parts_ aident à organiser les sections de manière logique. Chaque _part_ comprend un _id_ unique, un tableau de _names_ (pour la prise en charge multilingue) et d’autres métadonnées.
    
-   **Sections :** À l'intérieur de chaque _part_, il y a une ou plusieurs _sections_. Les _sections_ servent de conteneurs pour les champs et permettent une subdivision supplémentaire au sein de chaque _part_. Chaque _section_ comprend des attributs tels que _id_, _num_ (pour l’ordre), et un tableau de _names_ pour des étiquettes localisées.
    
-   **Fields :** Les _fields_ sont les éléments les plus granulaires d'un modèle de formulaire et représentent les éléments individuels que les utilisateurs remplissent dans le formulaire. Chaque _field_ possède un _id_ unique, essentiel pour servir de point de référence dans **_FormAnswers_**. Le champ _form\_field\_id_ dans **_FormAnswers_** relie chaque réponse donnée dans une instance de formulaire au champ spécifique défini dans le jeu de données **_FormTemplates_**.
    
-   **Family ID** : Le `family_id` est un identifiant unique partagé entre toutes les versions d'un même modèle de formulaire, garantissant la continuité et la liaison entre différentes versions du même modèle.
    
-   **Internal Code** : Le `internal_code` permet de référencer de manière cohérente un champ, une section et une partie entre les différentes versions d'un modèle de formulaire, facilitant le suivi et la connexion des champs à travers les différentes itérations du modèle.
    
-   **type\_field\_data** : Spécifie le type de données du champ utilisé dans le formulaire.
    
    -   Le **type\_field\_data** définit le type de données pour chaque champ de formulaire et détermine comment les afficher:
        
        -   **type\_field\_data** égal à **Text**, **Paragraph**, **Phone**, **Email**, ou **Formula** est de type **Text**.
            
        -   **type\_field\_data** égal à **Number** est de type **Number**.
            
        -   **type\_field\_data** égal à **Date**, **Time**, ou **DateTime** est de type **Calendar**.
            
        -   **type\_field\_data** égal à **Radio** est de type **SingleChoice**.
            
        -   **type\_field\_data** égal à **Checkboxes** est de type **MultipleChoice**.
            
        -   **type\_field\_data** égal à **OkKo** ou **OkKo+NA** est de type **Control**.
            
        -   **type\_field\_data** égal à **Grid** est de type **Resources**. Il associe plusieurs champs à l'intérieur d'une grille.
            

### Structure des Réponses de Formulaire

Le dataset `FormAnswers` est dédié au stockage de l’historique complet des réponses pour chaque champ d’un formulaire. Cette structure garantit un suivi et une traçabilité exhaustive de toutes les saisies utilisateur au fil du temps.

Voici le schéma détaillé du dataset `FormAnswers` :

```javascript
root
 |-- form_answer_id: string (nullable = true)
 |-- edited_at: timestamp (nullable = true)
 |-- form_field_id: string (nullable = true)
 |-- form_instance_id: string (nullable = true)
 |-- form_template_section_id: string (nullable = true)
 |-- is_deleted: boolean (nullable = true)
 |-- project_id: string (nullable = true)
 |-- user_id: string (nullable = true)
 |-- value: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- _: string (nullable = true)
 |    |    |-- en: string (nullable = true)
 |    |    |-- fr: string (nullable = true)
 |    |    |-- ... (Autres locales)
 |-- organization_id: string (nullable = true)
```

L’attribut `value` contient un tableau de valeurs associées à un champ (`form_field_id`). Deux cas sont possibles :

1.  **Champs de type multi-choix**
    
    -   Le tableau `value` contient plusieurs éléments, chaque élément correspondant à un choix sélectionné par l’utilisateur.
        
2.  **Autres types de champs**
    
    -   Le tableau `value` ne contient qu’un seul élément, représentant la valeur saisie ou prédéfinie pour le champ.
        

Chaque élément du tableau `value` est stocké sous l’un des deux formats suivants, en utilisant une structure clé-valeur :

-   **Format multilingue**
    
    -   Si la clé `_` est vide, la réponse est enregistrée sous des clés spécifiques aux langues (par exemple, `en`, `fr`, …).
        
    -   Ce format est utilisé pour les champs ayant des valeurs prédéfinies nécessitant une gestion multilingue.
        
-   **Format sans distinction de langue**
    
    -   Lorsque la clé `_` est renseignée, elle contient la valeur brute saisie par l’utilisateur ou définie par défaut.
        
    -   Ce format est utilisé pour les champs qui ne nécessitent pas de traduction, comme les champs de texte libre ou les valeurs numériques.
        

## Schéma relationnel

![](https://staticfiles.gleap.io/ghelparticle/DGrluGDmziXWXT57kJqIuVQQwFw0e97N9hJpnyoALaZ9ZdH4iCwa5uzvBoCuMJHgr1aOMwJ7Jhv.png)
