> ## 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.

# Contraintes d'unicité

> Comment Qwoty applique l'unicité des données lors de l'importation.

## Vue d'ensemble

Qwoty applique des contraintes d'unicité sur certains champs afin d'éviter les enregistrements en double et de garantir l'intégrité des données. Comprendre ces contraintes est essentiel pour réussir vos importations — en particulier lorsque vous souhaitez mettre à jour des enregistrements existants plutôt qu'en créer de nouveaux.

## Champs uniques par défaut

| Objet                | Champs uniques                                                                                 |
| -------------------- | ---------------------------------------------------------------------------------------------- |
| **Produits maîtres** | `product_id`, `product_api_name`                                                               |
| **Produits**         | `product_id`, `product_api_name`, `inventory[sku]` (lorsqu'utilisé comme clé de déduplication) |
| **Prix**             | `id`                                                                                           |
| **Clients**          | `id`, champs uniques personnalisés que vous définissez                                         |

Le champ `product_id`, `id` (selon l'objet) est l'identifiant interne de Qwoty, généré automatiquement pour chaque enregistrement. Il utilise le format UUID (par exemple, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).

Les champs `*_api_name` sont des identifiants stables et lisibles par l'humain que vous contrôlez. Ils sont utiles lors de migrations entre environnements ou lorsque vous souhaitez une référence permanente qui survive aux réinitialisations de données.

## Champs uniques personnalisés

Pour les [objets gérables](/user-guide/data-model/introduction#standard-vs-manageable-objects) comme Client et Modèle de contrat, vous pouvez définir des champs uniques supplémentaires sous **Paramètres → Données → Modèle de données** :

<Steps>
  <Step title="Ouvrir l'objet">
    Accédez à **Paramètres → Données → Modèle de données** et cliquez sur l'objet gérable.
  </Step>

  <Step title="Ouvrir le champ">
    Cliquez sur le champ que vous souhaitez rendre unique.
  </Step>

  <Step title="Marquer comme unique">
    Activez le bouton **Unique** dans les paramètres du champ.
  </Step>
</Steps>

### Cas d'usage pour les champs uniques personnalisés

* **Identifiants externes** — stocker les identifiants provenant d'autres systèmes (ID Salesforce, ID HubSpot, code client ERP)
* **Identifiants métier** — numéros d'employé, codes client, références produit internes
* **Informations de contact alternatives** — numéros de TVA, numéros d'enregistrement

<Note>
  Le nom de champ `id` est réservé à l'UUID interne de Qwoty. Utilisez un nom différent comme `external_id`, `legacy_id` ou `erp_id` pour les identifiants provenant d'autres systèmes.
</Note>

## Comportement lors de l'importation

### Création de nouveaux enregistrements

Si la valeur d'un champ unique n'existe pas dans Qwoty, un nouvel enregistrement est créé. Laissez la colonne ID vide dans votre CSV — Qwoty génère automatiquement un nouvel UUID.

### Mise à jour des enregistrements existants

Si la valeur d'un champ unique correspond à un enregistrement existant, cet enregistrement est **mis à jour** avec les nouvelles données. Seules les colonnes présentes dans votre CSV sont modifiées — les autres champs restent inchangés.

<Tip>
  Pour mettre à jour des enregistrements existants de manière fiable, **mappez un seul champ unique** (généralement l'ID). Mapper plusieurs champs uniques à la fois peut entraîner des correspondances ambiguës.
</Tip>

### Détection des doublons lors de l'importation

Lors de l'étape **Confirmer**, Qwoty valide votre fichier :

* Les doublons présents dans votre fichier sont signalés comme erreurs de validation
* Les enregistrements dont les valeurs uniques entrent en conflit avec des enregistrements Qwoty existants sont signalés
* Vous pouvez revenir à l'étape de Mappage ou corriger votre CSV source avant de continuer

Les erreurs ne bloquent pas l'importation — les lignes valides sont tout de même importées, et vous pouvez télécharger les lignes non importées après la fin de l'importation pour les corriger et les importer à nouveau.

## Bonnes pratiques

1. **Supprimez les doublons** de votre fichier avant d'importer — triez par le champ unique dans votre tableur pour les repérer rapidement
2. **Vérifiez les enregistrements existants** en exportant d'abord, en comparant avec votre fichier, puis en choisissant de mettre à jour ou de créer
3. **Utilisez des identifiants externes** lors de migrations depuis d'autres systèmes — ils simplifient les importations aller-retour
4. **Incluez la colonne ID** lorsque vous souhaitez mettre à jour des enregistrements existants, et laissez-la vide lorsque vous souhaitez en créer de nouveaux

## Voir aussi

<CardGroup cols={2}>
  <Card title="Mappage des champs" icon="arrow-right-arrow-left" href="/user-guide/data-migration/reference/field-mapping">
    Comment les champs sont mis en correspondance entre votre CSV et Qwoty.
  </Card>

  <Card title="Relations d'importation" icon="link" href="/user-guide/data-migration/reference/import-relations">
    Comment lier des enregistrements à leurs parents lors de l'importation.
  </Card>

  <Card title="Modèle de données" icon="diagram-project" href="/user-guide/data-model/introduction">
    Ajouter des champs personnalisés et les marquer comme uniques.
  </Card>

  <Card title="Gestion des erreurs" icon="triangle-exclamation" href="/user-guide/data-migration/reference/error-handling">
    Ce que signifient les erreurs de validation et comment les corriger.
  </Card>
</CardGroup>
