> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qwoty.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Créer un champ personnalisé de devis

> Ajoutez un champ personnalisé qui se propage d'un modèle de devis au Dealroom de l'acheteur et à votre CRM.

Un champ personnalisé de devis est une information propre à votre processus de vente qui doit apparaître sur chaque devis — par exemple, une date d'événement, un code projet ou un nombre de participants. Vous définissez le champ une seule fois dans le Modèle de données, vous le configurez sur chaque modèle de devis, et vous pouvez optionnellement le synchroniser avec votre CRM.

Ce guide décrit le cycle de vie complet en trois étapes.

<Note>
  Vous devez avoir le rôle **Admin** avec l'autorisation **Données → Lecture & Écriture**. Le mapping CRM nécessite en outre l'accès **Développeurs**. Voir [Gérer les rôles](/user-guide/settings/users/manage-roles).
</Note>

## Ce que vous allez construire

Dans cet exemple, vous allez ajouter trois champs personnalisés à un devis utilisé par une société de production événementielle :

| Champ                      | Type   | Objectif                             |
| -------------------------- | ------ | ------------------------------------ |
| **Date(s) de l'événement** | Date   | Date à laquelle l'événement a lieu   |
| **Horaire de l'événement** | Texte  | Heure de début (ex. : `16:00`)       |
| **Nombre de personnes**    | Nombre | Nombre de participants (ex. : `160`) |

Les trois seront **obligatoires**, **modifiables par les commerciaux** et **affichés au client** dans le Dealroom.

## Étape 1 : Créer le champ dans le Modèle de données

Le Modèle de données est l'endroit où réside la définition du champ. Sans définition, le champ n'existe nulle part dans Qwoty.

<Steps>
  <Step title="Ouvrir le Modèle de données">
    Accédez à **Paramètres → Données → Modèle de données** et cliquez sur l'objet **Devis** (ou son objet parent Modèle — le modèle de données regroupe les champs personnalisés au niveau du devis sous Modèle, car les modèles pilotent la génération des devis).
  </Step>

  <Step title="Cliquer sur + Nouveau">
    En haut à droite de la liste des champs, cliquez sur **+ Nouveau** pour ouvrir le formulaire de création de champ.
  </Step>

  <Step title="Remplir les informations générales">
    * **Nom** : saisissez le libellé lisible (par exemple, `Date(s) de l'événement`)
    * **Nom d'API** : Qwoty le génère à partir du nom (par exemple, `dates_de_l_evenement`). Vous pouvez le modifier si nécessaire — gardez-le en minuscules, sans espaces, avec des underscores à la place des tirets.
    * **Type de données** : choisissez `Date` (ou `Nombre` pour les participants, `Texte` pour l'horaire)
  </Step>

  <Step title="Enregistrer">
    Cliquez sur **Enregistrer** en haut à droite. Le nouveau champ apparaît dans la liste des champs de l'objet Devis avec le badge **Personnalisé** et l'accès API **Inscriptible**.
  </Step>

  <Step title="Répéter pour les autres champs">
    Créez `Horaire de l'événement` (Texte) et `Nombre de personnes` (Nombre) de la même façon.
  </Step>
</Steps>

<Check>
  Trois champs personnalisés existent maintenant dans le Modèle de données. Configurez ensuite leur comportement sur un modèle de devis.
</Check>

## Étape 2 : Configurer le champ sur le modèle

Le champ existe, mais il n'apparaît encore sur aucun devis. Vous l'activez par modèle, avec trois propriétés qui contrôlent son comportement.

<Steps>
  <Step title="Ouvrir le modèle">
    Accédez à **Modèles → Modèles de devis** et ouvrez le modèle que vous souhaitez configurer (ou créez-en un nouveau — voir [Créer un modèle de devis](/user-guide/templates/how-tos/create-quote-template)).
  </Step>

  <Step title="Trouver la section Champs personnalisés">
    Faites défiler jusqu'à la section **Champs personnalisés** du modèle. Les trois champs que vous venez de créer apparaissent, chacun avec un interrupteur et trois cases à cocher.
  </Step>

  <Step title="Activer l'interrupteur">
    Cliquez sur l'interrupteur à côté de chaque nom de champ pour l'activer. L'interrupteur devient sombre — le champ est maintenant actif sur les devis générés à partir de ce modèle.
  </Step>

  <Step title="Configurer les propriétés">
    Pour chaque champ, cochez les cases correspondant à vos besoins :

    * **Obligatoire** — requis avant que le devis puisse être enregistré ou soumis
    * **Modifiable par le commercial** — les commerciaux peuvent modifier la valeur (sinon elle est en lecture seule après saisie par l'administrateur)
    * **Afficher au client** — le champ apparaît dans le Dealroom visible par l'acheteur

    Pour notre cas d'usage événementiel, cochez **les trois** pour chaque champ. Le client doit voir et confirmer la date de l'événement, l'horaire et le nombre de participants.
  </Step>

  <Step title="Définir des valeurs par défaut (optionnel)">
    Sous les cases à cocher de chaque champ, vous pouvez saisir une valeur par défaut qui pré-remplit les nouveaux devis. Laissez vide s'il n'existe pas de valeur par défaut pertinente.
  </Step>

  <Step title="Enregistrer le modèle">
    Cliquez sur **Enregistrer** en haut à droite de l'éditeur de modèle.
  </Step>
</Steps>

<Check>
  Vos trois champs sont maintenant actifs sur chaque nouveau devis créé à partir de ce modèle. La section Champs personnalisés les affiche avec des contrôles de saisie (sélecteur de date, zone de texte, saisie numérique) prêts à être renseignés par les commerciaux.
</Check>

### Ce que voit le client

Une fois un devis publié dans le Dealroom, le client voit les trois champs en haut du document, chacun marqué d'un badge violet **Afficher** :

```
Nombre de personnes  [Display]    Date(s) de l'événement  [Display]    Horaire de l'événement  [Display]
160                                29/04/2026                            16:00
```

Le badge Afficher confirme (dans l'aperçu administrateur) que le champ est visible par l'acheteur. Le client ne voit pas le badge — il voit une liste claire de valeurs aux côtés des lignes de devis.

## Étape 3 : Synchroniser avec votre CRM (optionnel)

Si vous avez connecté un CRM, vous pouvez associer chaque champ personnalisé Qwoty à un champ CRM. La synchronisation s'effectue dans la direction de votre choix : Bidirectionnelle, CRM → Qwoty ou Qwoty → CRM.

<Steps>
  <Step title="Ouvrir votre intégration CRM">
    Accédez à **Paramètres → Développeurs → Intégration** et cliquez sur votre CRM connecté (HubSpot, Salesforce, Pipedrive).
  </Step>

  <Step title="Trouver la section de mapping des champs personnalisés">
    Faites défiler jusqu'à la liste des champs personnalisés. Vos trois champs Qwoty apparaissent, préfixés par `Custom:` — par exemple, `Custom: Date(s) de l'événement`, `Custom: Horaire de l'événement`, `Custom: Nombre de personnes`.
  </Step>

  <Step title="Choisir une direction de synchronisation pour chaque champ">
    Ouvrez le menu déroulant de direction et choisissez l'une des options suivantes :

    * **Bidirectionnel** ↔ — les modifications dans l'un ou l'autre système se propagent à l'autre
    * **CRM → Qwoty** — Qwoty reçoit, mais ne renvoie jamais les données
    * **Qwoty → CRM** — Qwoty envoie, mais ignore les modifications provenant du CRM

    Pour les champs liés à des événements, **Qwoty → CRM** est la configuration habituelle : le commercial renseigne la valeur dans Qwoty, qui apparaît ensuite dans la fiche CRM pour le reporting et le suivi.
  </Step>

  <Step title="Sélectionner le champ CRM correspondant">
    Dans le menu déroulant **Sélectionner un champ CRM**, choisissez le champ côté CRM qui doit recevoir (ou envoyer) la valeur. Seuls les types de champs compatibles sont listés :

    * Date → Date ou Date-heure
    * Nombre → Nombre, Entier, Décimal ou Devise
    * Texte → Texte, Liste de sélection ou Menu déroulant
  </Step>

  <Step title="Enregistrer les modifications">
    Cliquez sur **Enregistrer les modifications** en bas de la page. Le nouveau mapping est pris en compte au prochain cycle de synchronisation (en temps réel pour la plupart des CRM modernes).
  </Step>
</Steps>

<Check>
  Vos champs personnalisés circulent maintenant entre Qwoty et votre CRM. Testez la synchronisation en modifiant une valeur dans l'une ou l'autre application et vérifiez qu'elle apparaît dans l'autre en quelques secondes.
</Check>

## Résolution des problèmes

<AccordionGroup>
  <Accordion title="Le champ n'apparaît pas dans la section Champs personnalisés du modèle">
    Vérifiez que vous avez enregistré le champ dans le Modèle de données. Actualisez la page du modèle. Si le champ n'apparaît toujours pas, vérifiez que le **Type** du champ dans le Modèle de données est `Personnalisé` (et non `Système`).
  </Accordion>

  <Accordion title="Les commerciaux voient le champ mais ne peuvent pas le modifier">
    La case **Modifiable par le commercial** est décochée sur le modèle. Ouvrez le modèle, trouvez le champ dans la section Champs personnalisés, cochez la case et enregistrez.
  </Accordion>

  <Accordion title="Le client ne voit pas le champ dans le Dealroom">
    La case **Afficher au client** est décochée. Activez-la sur le modèle et republiez le devis — le champ apparaîtra au prochain rendu du Dealroom.
  </Accordion>

  <Accordion title="Le menu déroulant des champs CRM est vide">
    Soit le CRM ne dispose pas d'un champ compatible, soit les autorisations de l'intégration ne lui donnent pas accès. Ajoutez ou exposez le champ côté CRM, puis actualisez l'intégration.
  </Accordion>

  <Accordion title="Le mapping affiche 'Custom: <nom du champ>' mais ne se synchronise pas">
    Cliquez sur **Enregistrer les modifications** en bas de la section de mapping — les modifications ne sont pas appliquées tant que vous n'enregistrez pas. Attendez ensuite un cycle de synchronisation (les CRM en temps réel propagent les données en quelques secondes).
  </Accordion>
</AccordionGroup>

## Voir aussi

<CardGroup cols={2}>
  <Card title="Propriétés des champs" icon="sliders" href="/user-guide/data-model/reference/field-properties">
    Référence détaillée pour Obligatoire, Modifiable, Afficher.
  </Card>

  <Card title="Mapping CRM" icon="arrows-rotate" href="/user-guide/data-model/reference/crm-mapping">
    Toutes les directions de synchronisation et les règles de compatibilité.
  </Card>

  <Card title="Créer un champ personnalisé de contrat" icon="file-signature" href="/user-guide/data-model/how-tos/create-contract-custom-field">
    Le même processus, appliqué aux modèles de contrat.
  </Card>

  <Card title="Modèles de devis" icon="clone" href="/user-guide/templates/introduction">
    Gérez les modèles sur lesquels sont configurés les champs personnalisés de devis.
  </Card>
</CardGroup>
