i18n - docs translations (#17433)

Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2026-01-26 07:11:01 +01:00
committed by GitHub
parent c8c821a692
commit 2353bc62cc
361 changed files with 20096 additions and 17317 deletions
@@ -1,76 +1,76 @@
---
title: Error Handling & Validation
description: Review and fix import errors directly in the UI before confirming.
title: Gestion des erreurs et validation
description: Examinez et corrigez les erreurs d'importation directement dans l'interface avant de confirmer.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Pre-Import Validation
## Validation préalable à l'importation
After uploading your file and mapping fields, Twenty validates your data **before** importing. This allows you to catch and fix errors without affecting your existing data.
Après avoir téléversé votre fichier et fait la correspondance des champs, Twenty valide vos données **avant** l'importation. Cela vous permet de détecter et de corriger les erreurs sans affecter vos données existantes.
## How It Works
## Comment ça marche
1. **Upload** your CSV file
2. **Map** your columns to Twenty fields
3. **Review** the potential errors highlighted in yellow
4. **Fix errors** directly in the UI
5. **Confirm** the import
1. **Téléversez** votre fichier CSV
2. **Faites correspondre** vos colonnes aux champs de Twenty
3. **Passez en revue** les erreurs potentielles mises en évidence en jaune
4. **Corrigez les erreurs** directement dans l'interface
5. **Confirmez** l'importation
<VimeoEmbed videoId="1145273857" title="Video demonstration" />
<VimeoEmbed videoId="1145273857" title="monstration vidéo" />
## Error Display
## Affichage des erreurs
Rows with issues are highlighted in **yellow**. You can:
Les lignes présentant des problèmes sont mises en évidence en **jaune**. Vous pouvez :
* **Edit the cell directly** to fix the error
* **Remove the row** to skip it entirely
* **Modifiez la cellule directement** pour corriger l'erreur
* **Supprimez la ligne** pour l'ignorer complètement
This inline editing saves time—no need to go back to your spreadsheet, fix errors, and re-upload.
Cette modification en ligne vous fait gagner du temps — inutile de revenir à votre feuille de calcul, de corriger les erreurs et de téléverser à nouveau.
## Common Error Types
## Types d'erreurs courants
### Duplicate Values
### Valeurs en double
**Cause**: A unique field (email, domain) already exists in Twenty or appears twice in your file.
**Cause** : Un champ unique (email, domaine) existe déjà dans Twenty ou apparaît deux fois dans votre fichier.
**Fix**:
**Correctif** :
* Edit the duplicate value in the import UI
* Remove one of the duplicate rows
* Modifiez la valeur en double dans l'interface d'importation
* Supprimez l'une des lignes en double
See [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints) for more details on how uniqueness is enforced.
Voir [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints) pour plus de détails sur la façon dont l'unicité est appliquée.
### Invalid Format
### Format invalide
**Cause**: Data doesn't match the expected format (e.g., invalid email, wrong date format).
**Cause** : Les données ne correspondent pas au format attendu (p. ex., email invalide, format de date incorrect).
**Fix**: Edit the cell to use the correct format.
**Correctif** : Modifiez la cellule pour utiliser le format correct.
See [Field Mapping](/l/fr/user-guide/data-migration/capabilities/field-mapping) for the expected format of each field type.
Voir [Correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping) pour le format attendu de chaque type de champ.
### Missing Required Fields
### Champs obligatoires manquants
**Cause**: A required field is empty.
**Cause** : Un champ obligatoire est vide.
**Fix**: Enter a value in the required field or remove the row.
**Correctif** : Saisissez une valeur dans le champ obligatoire ou supprimez la ligne.
### Relation Not Found
### Relation introuvable
**Cause**: The referenced record doesn't exist (e.g., a Company domain that wasn't imported).
**Cause** : L'enregistrement référencé n'existe pas (p. ex., un domaine d'entreprise qui n'a pas été importé).
**Fix**:
**Correctif** :
* Import the parent records first
* Or correct the reference value
* Importez d'abord les enregistrements parents
* Ou corrigez la valeur de référence
See [Import Relations](/l/fr/user-guide/data-migration/capabilities/import-relations) for the correct import order and how to link records.
Voir [Importation des relations](/l/fr/user-guide/data-migration/capabilities/import-relations) pour l'ordre d'importation correct et la manière de lier les enregistrements.
## Tips for Fewer Errors
## Conseils pour réduire les erreurs
1. **Download the template** to see expected format prior to importing your file
2. **Clean your data** in the spreadsheet first
3. **Import files in correct order** to import relations (Companies → People → Opportunities)
4. **Test with small batches** before full import
5. **Check for duplicates** before uploading
6. **Limit the size of your file to 10,000 records** per file
1. **Téléchargez le modèle** pour voir le format attendu avant d'importer votre fichier
2. **Nettoyez vos données** d'abord dans votre feuille de calcul
3. **Importez les fichiers dans le bon ordre** pour importer les relations (Entreprises → Personnes → Opportunités)
4. **Testez avec de petits lots** avant l'importation complète
5. **Vérifiez les doublons** avant de téléverser
6. **Limitez la taille de votre fichier à 10 000 enregistrements** par fichier
@@ -164,11 +164,11 @@ Phone is a nested field with multiple columns that **must be filled**
Use the API name format: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Relation Fields
### Champs de relation
Please see our dedicated article: [Import Relations Between Objects](/l/fr/user-guide/data-migration/capabilities/import-relations)
### Select Fields
### Champs de sélection
Use the **API name** of the option (not the display label):
@@ -176,23 +176,23 @@ Use the **API name** of the option (not the display label):
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
Voir [ici](#finding-api-names-for-select-fields) où trouver les noms d'API.
<Note>Les nouvelles options de sélection ne seront pas créées automatiquement par l'importation. Elles doivent être ajoutées sous **Paramètres → Modèle de données** avant l'importation.</Note>
### Text Fields
### Champs de texte
* No special formatting required
* Leading/trailing spaces are trimmed
* Aucun formatage particulier requis
* Les espaces au début et à la fin sont supprimés
## Finding API Names
## Recherche des noms d'API
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
Pour les champs Select, Multi-Select et Array avec des options prédéfinies, vous devez utiliser les **noms d'API**, et non les libellés affichés.
### How to Find API Names
### Comment trouver les noms d'API
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez l'objet et le champ
3. Activez le **mode avancé** (bouton à bascule en bas à droite de la page des paramètres)
4. Affichez le nom d'API pour chaque option
<VimeoEmbed videoId="1144910809" title="Video demonstration" />
<VimeoEmbed videoId="1144910809" title="monstration vidéo" />
@@ -1,48 +1,48 @@
---
title: Supported File Formats
description: File formats supported for data import in Twenty.
title: Formats de fichiers pris en charge
description: Formats de fichiers pris en charge pour limportation de données dans Twenty.
---
## Supported Formats
## Formats pris en charge
Twenty supports three file formats for import:
Twenty prend en charge trois formats de fichiers pour limportation :
| Format | Extension | Notes |
| ------------------ | --------- | ---------------------------- |
| **CSV** | .csv | Recommended, most compatible |
| **Excel** | .xlsx | Modern Excel format |
| **Excel (Legacy)** | .xls | Older Excel format |
| Format | Extension | Notes |
| ------------------ | --------- | ------------------------------ |
| **CSV** | .csv | Recommandé, le plus compatible |
| **Excel** | .xlsx | Format Excel moderne |
| **Excel (hérité)** | .xls | Ancien format Excel |
## File Requirements
## Exigences relatives aux fichiers
| Requirement | Value |
| ---------------- | ------------------------------------- |
| **Encoding** | UTF-8 recommended |
| **Record limit** | 10,000 records per file |
| **Structure** | First row must contain column headers |
| **Content** | One object type per file |
| Exigence | Valeur |
| ---------------------------- | -------------------------------------------------------- |
| **Encodage** | UTF-8 recommandé |
| **Limite denregistrements** | 10 000 enregistrements par fichier |
| **Structure** | La première ligne doit contenir les en-têtes de colonnes |
| **Contenu** | Un seul type dobjet par fichier |
## CSV Best Practices
## Meilleures pratiques pour les fichiers CSV
* **Delimiter**: Use comma (`,`) or semicolon (`;`)
* **Text qualifier**: Use double quotes (`"`) for text containing commas
* **Line endings**: Windows (CRLF) or Unix (LF) both supported
* **Empty values**: Leave cells empty, don't use "NULL" or "N/A"
* **Délimiteur** : Utilisez une virgule (`,`) ou un point-virgule (`;`)
* **Délimiteur de texte** : Utilisez des guillemets doubles (`\"`) pour le texte contenant des virgules
* **Fins de ligne** : Windows (CRLF) ou Unix (LF) sont tous deux pris en charge
* **Valeurs vides** : Laissez les cellules vides, nutilisez pas "NULL" ni "N/A"
## Excel Best Practices
## Meilleures pratiques pour Excel
When exporting from Excel:
Lors de lexportation depuis Excel :
* Remove formulas (export values only)
* Delete empty rows at the end
* Ensure no merged cells
* Use the first sheet only
* Supprimez les formules (exportez uniquement les valeurs)
* Supprimez les lignes vides à la fin
* Assurez-vous quaucune cellule nest fusionnée
* Utilisez uniquement la première feuille
## Large Datasets
## Jeux de données volumineux
For datasets larger than 10,000 records:
Pour les jeux de données de plus de 10 000 enregistrements :
* Split into multiple files
* Or use the [API import](/l/fr/user-guide/data-migration/how-tos/import-data-via-api) for unlimited records
* Divisez en plusieurs fichiers
* Ou utilisez l[importation via lAPI](/l/fr/user-guide/data-migration/how-tos/import-data-via-api) pour un nombre illimité denregistrements
<Note>For very large migrations (100,000+ records), the API is significantly faster and more reliable than CSV imports.</Note>
<Note>Pour des migrations très volumineuses (plus de 100 000 enregistrements), lAPI est nettement plus rapide et plus fiable que les importations CSV.</Note>
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Importer des relations entre objets
description: Importer des relations entre enregistrements via CSV.
---
## Overview
## Vue d'ensemble
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty prend en charge l'importation de relations entre objets lors de l'importation CSV. Cela vous permet de lier des enregistrements (p. ex., associer des Personnes à des Entreprises) dans le cadre de votre migration de données.
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**Actuellement pris en charge pour l'importation** : Relations un-à-plusieurs pointant vers un seul type d'objet de chaque côté (p. ex., Personnes → Entreprises). Les relations pointant vers plusieurs types d'objet ne sont pas encore prises en charge pour l'import/export.</Note>
## How Relations Work in Twenty
## Fonctionnement des relations dans Twenty
### One to Many / Many to One
### Un à plusieurs / Plusieurs à un
Twenty supports standard relations where one record links to many others:
Twenty prend en charge des relations standard où un enregistrement est lié à plusieurs autres :
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **Une Entreprise → Plusieurs Personnes** : Une entreprise peut avoir plusieurs employés, mais chaque personne appartient à une seule entreprise
* **Une Entreprise → Plusieurs Opportunités** : Une entreprise peut avoir plusieurs affaires, mais chaque opportunité appartient à une seule entreprise
### Relations That Can Point to Multiple Object Types
### Relations pouvant pointer vers plusieurs types d'objet
Some relations can connect to different types of objects. This works in two ways:
Certaines relations peuvent se connecter à différents types d'objets. Cela fonctionne de deux façons :
**Pattern 1: Many records linking to one record each from different object types**
**Modèle 1 : De nombreux enregistrements liés chacun à un enregistrement provenant de différents types d'objets**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Plusieurs Notes, Tâches ou Activités peuvent chacune être rattachées simultanément à plusieurs types d'objets :
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Notes** peuvent être liées à une Personne, une Entreprise et une Opportunité simultanément
* **Tâches** peuvent être liées à une Personne, une Entreprise et une Opportunité simultanément
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Ici, les Notes/Tâches sont du côté "plusieurs". Chacune est liée à un enregistrement par type d'objet.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Modèle 2 : Un enregistrement recevant des liens de nombreux enregistrements de différents types d'objets**
A Project can receive links from multiple records across different object types:
Un Projet peut recevoir des liens de plusieurs enregistrements provenant de différents types d'objets :
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Un Projet** peut avoir de nombreuses Personnes qui lui sont liées, de nombreuses Entreprises qui lui sont liées, et de nombreuses Notes qui y sont rattachées
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Ici, le Projet est du côté "un". Plusieurs enregistrements issus d'objets différents peuvent tous être liés au même Projet.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**Limitation d'import/export** : Les relations qui pointent vers plusieurs types d'objet (comme Notes → Personnes/Entreprises/Opportunités) ne sont **pas encore prises en charge** lors de l'import ou de l'export CSV.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **Import** : Seules les relations un-à-plusieurs pointant vers un seul type d'objet de chaque côté peuvent être importées
* **Export** : Les colonnes pour les relations pointant vers plusieurs types d'objet sont actuellement laissées vides
This is on our roadmap.
C'est sur notre feuille de route.
</Warning>
### What's Not Supported Today
### Ce qui n'est pas pris en charge aujourd'hui
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Les relations plusieurs à plusieurs** ne sont pas encore disponibles. Par exemple, vous ne pouvez pas actuellement créer une relation :
* Many People are linked to many Projects
* De nombreuses Personnes sont liées à de nombreux Projets
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Les relations plusieurs à plusieurs sont prévues pour S1 2026.</Note>
## Linking Records During Import
## Lier des enregistrements lors de l'importation
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Rappel** : Seules les relations un-à-plusieurs pointant vers un seul type d'objet peuvent être importées (p. ex., Personnes → Entreprises). Les relations pointant vers plusieurs types d'objet (p. ex., Notes → Personnes/Entreprises/Opportunités) ne sont pas encore prises en charge.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Étape 1 : Identifier les côtés "un" et "plusieurs"
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Commencez par déterminer quel objet est du côté "un" et lequel est du côté "plusieurs" de la relation.
**Example**:
**Exemple**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Entreprise** est le côté "un" (une entreprise a de nombreux employés)
* **Personnes** est le côté "plusieurs" (chaque personne appartient à une seule entreprise)
### Step 2: Ensure the "One" Side Records Exist
### Étape 2 : Assurez-vous que les enregistrements du côté "un" existent
Before importing the "many" side, the "one" side records must already exist in Twenty.
Avant d'importer le côté "plusieurs", les enregistrements du côté "un" doivent déjà exister dans Twenty.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Importez ou créez d'abord les enregistrements du côté "un" (p. ex., Entreprises)
* Validez leur identifiant unique. Cela peut être :
* L'`id` (UUID de Twenty)
* Un champ défini comme unique (p. ex., `domain` pour les Entreprises, ou un identifiant externe provenant de votre système précédent)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>L'importation échouera si une référence est faite à un enregistrement inexistant.</Warning>
### Step 3: Prepare Your CSV File
### Étape 3 : Préparer votre fichier CSV
Add a column in your "many" side CSV file that references the "one" side record.
Ajoutez une colonne dans votre fichier CSV du côté "plusieurs" qui référence l'enregistrement du côté "un".
**Example**: For a People CSV file linking to Companies:
**Exemple** : Pour un fichier CSV Personnes lié aux Entreprises :
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**Important** :
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* La valeur doit **correspondre exactement** au champ unique de l'enregistrement de l'Entreprise
* Pour les domaines, utilisez l'**URL de domaine** (p. ex., `https://acme.com`), pas le libellé de domaine
* N'associez qu'**un seul** identifiant unique par relation : cela rendra l'importation plus fluide
### Step 4: Ensure the Relation Field Exists
### Étape 4 : Vérifier que le champ de relation existe
Before uploading your file, make sure the relation field exists between your objects.
Avant de téléverser votre fichier, assurez-vous que le champ de relation existe entre vos objets.
If it doesn't exist:
S'il n'existe pas :
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez votre objet (p. ex., Personnes)
3. Créez un champ de relation pointant vers l'objet cible (p. ex., Entreprise)
### Step 5: Upload and Map the Relation
### Étape 5 : Téléverser et associer la relation
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. Téléversez votre fichier CSV via l'interface d'importation
2. À l'étape de correspondance des champs, trouvez votre colonne de relation (p. ex., `companyDomain`)
3. Associez-la au champ de relation (p. ex., Entreprise)
4. Twenty liera automatiquement chaque enregistrement au parent correspondant
### Available Unique Fields for Relations
### Champs uniques disponibles pour les relations
| Object | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Companies** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **Workspace Members** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Objet | Champs uniques disponibles |
| ------------------------------------------- | ---------------------------------------------- |
| **Entreprises** | `id`, `domain`, tout champ unique personnalisé |
| **Personnes** | `id`, `email`, tout champ unique personnalisé |
| **Membres de l'espace de travail** | `id`, `email` (pas le nom) |
| **Autres objets standard et personnalisés** | `id`, tout champ marqué comme unique |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Liaison vers les membres de l'espace de travail** : Lorsque la relation pointe vers des membres de l'espace de travail (votre équipe se connectant à Twenty), référencez-les par leur **adresse e-mail**, et non par leur nom.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Nous recommandons d'utiliser `domain` pour les Entreprises et `email` pour les Personnes, car ces valeurs sont lisibles par l'humain et faciles à maintenir dans les feuilles de calcul.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Rappel** : Les enregistrements supprimés de manière logique (visibles sous Menu Commandes → Voir les enregistrements supprimés) comptent pour les critères d'unicité. Si vous importez un enregistrement avec la même valeur unique qu'un enregistrement supprimé, l'enregistrement supprimé sera restauré. Voir [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints) pour plus de détails.</Note>
## Import Order Rule
## Règle d'ordre d'importation
<Warning>
**Always import the "one" side first!**
**Importez toujours d'abord le côté "un" !**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. **Entreprises** d'abord (aucune dépendance)
2. **Personnes** en second (liées aux Entreprises)
3. **Opportunités** en troisième (liées aux Entreprises/Personnes)
4. **Objets personnalisés** en suivant leurs dépendances
The parent record must exist before you can reference it.
L'enregistrement parent doit exister avant que vous puissiez y faire référence.
</Warning>
@@ -1,72 +1,72 @@
---
title: Uniqueness Constraints
description: How Twenty enforces data uniqueness during import.
title: Contraintes d'unicité
description: Comment Twenty impose l'unicité des données lors de l'importation.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Overview
## Vue d'ensemble
Twenty enforces uniqueness on certain fields to prevent duplicate records and ensure data integrity. Understanding these constraints is essential for successful imports.
Twenty impose l'unicité sur certains champs afin d'éviter les doublons et d'assurer l'intégrité des données. Comprendre ces contraintes est essentiel pour des importations réussies.
## Default Unique Fields
## Champs uniques par défaut
| Object | Unique Fields |
| ------------------ | ---------------------- |
| **People** | `id`, `email` |
| **Companies** | `id`, `domain` |
| **Custom objects** | `id` only (by default) |
| Objet | Champs uniques |
| ------------------------ | ---------------------------- |
| **Personnes** | `id`, `email` |
| **Entreprises** | `id`, `domain` |
| **Objets personnalisés** | `id` uniquement (par défaut) |
<Note>The `id` field is Twenty's internal identifier, auto-generated for each record. It uses UUID format (e.g., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
<Note>Le champ `id` est l'identifiant interne de Twenty, généré automatiquement pour chaque enregistrement. Il utilise le format UUID (par exemple, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
## Custom Unique Fields
## Champs uniques personnalisés
You can define additional unique fields under **Settings → Data Model**:
Vous pouvez définir des champs uniques supplémentaires sous **Paramètres → Modèle de données** :
1. Go to **Settings → Data Model**
2. Select the object
3. Click on a field
4. Enable **Unique** in field settings
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez l'objet
3. Cliquez sur un champ
4. Activez **Unique** dans les paramètres du champ
### Use Cases for Custom Unique Fields
### Cas d'utilisation pour les champs uniques personnalisés
* **External IDs**: Store IDs from other systems (Salesforce ID, HubSpot ID)
* **Business identifiers**: Employee numbers, customer codes
* **Alternative contact info**: LinkedIn profile, phone number
* **ID externes** : Stockez les ID provenant d'autres systèmes (Salesforce ID, HubSpot ID)
* **Identifiants métier** : Numéros d'employé, codes client
* **Coordonnées alternatives** : Profil LinkedIn, numéro de téléphone
<Note>The field name `id` is reserved for Twenty's internal ID. Use a different name like `externalId` or `legacyId` for external identifiers.</Note>
<Note>Le nom de champ `id` est réservé à l'ID interne de Twenty. Utilisez un nom différent comme `externalId` ou `legacyId` pour les identifiants externes.</Note>
## Import Behavior
## Comportement de l'importation
### Creating New Records
### Création de nouveaux enregistrements
If a unique field value doesn't exist, a new record is created.
Si la valeur d'un champ unique n'existe pas, un nouvel enregistrement est créé.
### Updating Existing Records
### Mise à jour des enregistrements existants
If a unique field value matches an existing record, that record is **updated** with the new data.
<Warning>To **update existing records**, it is recommended to **only match one unique field**.</Warning>
Si la valeur d'un champ unique correspond à un enregistrement existant, cet enregistrement est **mis à jour** avec les nouvelles données.
<Warning>Pour **mettre à jour des enregistrements existants**, il est recommandé de **ne faire correspondre qu'un seul champ unique**.</Warning>
### Soft-Deleted Records
### Enregistrements supprimés de manière logique
<Warning>
**Deleted records count toward uniqueness.**
**Les enregistrements supprimés de manière logique comptent pour l'unicité.**
Soft-deleted records (visible under Command Menu → See deleted records) are included in uniqueness checks. If you import a record with the same unique value as a deleted record, the deleted record will be **restored** with the new data.
Les enregistrements supprimés de manière logique (visibles sous Menu Commandes → Voir les enregistrements supprimés) sont inclus dans les vérifications d'unicité. Si vous importez un enregistrement avec la même valeur unique qu'un enregistrement supprimé, l'enregistrement supprimé sera **restauré** avec les nouvelles données.
</Warning>
## Duplicate Detection During Import
## Détection des doublons lors de l'importation
During the validation phase:
Pendant la phase de validation :
* Duplicates within your file are highlighted in yellow
* You can edit or remove duplicate rows from the UI before starting the import
* Les doublons dans votre fichier sont surlignés en jaune
* Vous pouvez modifier ou supprimer les lignes en double depuis l'interface avant de lancer l'importation
<VimeoEmbed videoId="1145246326" title="Video demonstration" />
<VimeoEmbed videoId="1145246326" title="monstration vidéo" />
## Best Practices
## Meilleures pratiques
1. **Remove duplicates** from your file before importing
2. **Check for existing records** in Twenty before importing
3. **Use external IDs** when migrating from other systems
4. **Include unique fields** if you want to update existing records
1. **Supprimez les doublons** de votre fichier avant l'importation
2. **Vérifiez les enregistrements existants** dans Twenty avant l'importation
3. **Utilisez des ID externes** lors de la migration depuis d'autres systèmes
4. **Incluez des champs uniques** si vous souhaitez mettre à jour des enregistrements existants
@@ -1,209 +1,209 @@
---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
title: Exportez vos données
description: Guide complet étape par étape pour exporter des données depuis Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Overview
## Vue d'ensemble
Export your workspace data to CSV for backups, reporting, or migration.
Exportez les données de votre espace de travail en CSV pour des sauvegardes, des rapports ou des migrations.
**Use cases:**
**Cas d'utilisation :**
* **Regular backups** — keep copies of your data
* **External reporting** — analyze data in Excel, Google Sheets, or BI tools
* **Migration** — move data to another system
* **Bulk updates** — export, edit, and re-import to update records
* **Sauvegardes régulières** — conservez des copies de vos données
* **Reporting externe** — analysez les données dans Excel, Google Sheets ou des outils de BI
* **Migration** — déplacez les données vers un autre système
* **Mises à jour en masse** — exportez, modifiez et réimportez pour mettre à jour les enregistrements
## What You Need to Know
## Ce que vous devez savoir
### Export Limits
### Limites d'exportation
* **Maximum 20,000 records** per export
* Only **visible columns** are exported
* Only **filtered records** are exported (based on your current view)
* **20 000 enregistrements maximum** par export
* Seules les **colonnes visibles** sont exportées
* Seuls les **enregistrements filtrés** sont exportés (selon votre vue actuelle)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/fr/developers/extend/capabilities/apis).</Note>
<Note>Pour des exports plus volumineux (plus de 20 000 enregistrements), utilisez des filtres pour exporter par lots ou utilisez l'[API](/l/fr/developers/extend/capabilities/apis).</Note>
### Permissions
### Autorisations
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
Vous avez besoin de l'autorisation **"Export CSV"** pour exporter des données. Contactez l'administrateur de votre espace de travail si vous n'avez pas cette option.
## Step 1: Navigate to the Object
## Étape 1 : Accédez à l'objet
Go to the object you want to export:
Accédez à l'objet que vous souhaitez exporter :
* **People** — for contacts
* **Companies** — for organizations
* **Opportunities** — for deals
* **Custom objects** — any object you've created
* **People** — pour les contacts
* **Companies** — pour les organisations
* **Opportunities** — pour les affaires
* **Objets personnalisés** — tout objet que vous avez créé
## Step 2: Configure Your View
## Étape 2 : Configurez votre vue
**Important:** The export includes only what's visible in your current view.
**Important :** L'export n'inclut que ce qui est visible dans votre vue actuelle.
### Add/Remove Columns
### Ajouter/Supprimer des colonnes
1. Click **Options → Fields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
1. Cliquez sur **Options → Fields** (ou sur le **+** à la fin des colonnes)
2. Cochez les champs que vous souhaitez exporter
3. Décochez les champs dont vous n'avez pas besoin
### Filter Records (Optional)
### Filtrer les enregistrements (optionnel)
If you only need a subset of data:
Si vous avez seulement besoin d'un sous-ensemble de données :
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
1. Cliquez sur **Filter**
2. Ajoutez des conditions de filtrage (p. ex. "Created date > January 1, 2024")
3. Seuls les enregistrements correspondants seront exportés
### Sort Records (Optional)
### Trier les enregistrements (optionnel)
1. Click a column header to sort
2. The export will follow your sort order
1. Cliquez sur l'en-tête d'une colonne pour trier
2. L'export respectera votre ordre de tri
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
<Note>**Créez une vue dédiée à l'export.** Enregistrez une vue spécialement configurée pour les exports afin d'éviter de reconfigurer à chaque fois.</Note>
## Step 3: Export the Data
## Étape 3 : Exportez les données
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
1. Cliquez sur l'icône **⋮** en haut à droite du tableau
2. Sélectionnez **Export view**
3. Choisissez où enregistrer le fichier CSV
4. Attendez la fin du téléchargement
## What Gets Exported
## Ce qui est exporté
| Included | Not Included |
| -------------------------------- | ---------------------- |
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
| Inclus | Non inclus |
| ------------------------------------------------- | -------------------------------------- |
| Toutes les colonnes visibles | Colonnes masquées |
| Enregistrements correspondant aux filtres actuels | Enregistrements exclus par les filtres |
| Valeurs des champs personnalisés | Champs non présents dans la vue |
| ID des enregistrements | Fichiers joints |
| ID des relations | Images |
### Relation Fields
### Champs de relation
Relation IDs are only exported on the **"many" side** of a relationship:
Les ID de relations ne sont exportés que du côté **"many"** d'une relation :
* **People export** includes a `companyId` column (People → Company relation)
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
* **L'export People** inclut une colonne `companyId` (relation People → Company)
* **L'export Companies** n'inclut PAS `peopleIds` (Companies est le côté "one")
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
Cela signifie que vous pouvez utiliser l'export People pour réimporter et conserver le lien avec Company, mais vous devrez réimporter People après Companies pour recréer les relations.
## Exporting for Specific Purposes
## Exporter pour des besoins spécifiques
### For Backups
### Pour les sauvegardes
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
1. Créez une vue avec **tous les champs** visibles
2. Retirez tous les filtres pour inclure tous les enregistrements
3. Exportez chaque type d'objet séparément
4. Stockez les exports dans un emplacement sécurisé
5. Définissez un rappel récurrent (hebdomadaire/mensuel)
### For External Reporting
### Pour le reporting externe
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
1. N'incluez que les champs nécessaires à l'analyse
2. Appliquez des filtres pour vous concentrer sur les données pertinentes
3. Envisagez de trier selon le champ que vous analyserez
### For Bulk Updates
### Pour les mises à jour en masse
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import)
1. Exportez les enregistrements que vous souhaitez mettre à jour
2. Incluez l'identifiant unique (`email`, `domain` ou `id`)
3. Modifiez le fichier exporté
4. Réimportez pour mettre à jour les enregistrements
Voir : [Comment mettre à jour des enregistrements existants](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
### Pour la migration
If you're exporting to migrate to another system:
Si vous exportez pour migrer vers un autre système :
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
1. **Exportez chaque objet séparément** — People, Companies, Opportunities, etc.
2. **Incluez les champs d'ID** — ils aident à maintenir les relations
3. **Documentez les correspondances de champs** — notez comment les champs Twenty sont mis en correspondance avec votre système cible
## Handling Large Datasets (20,000+ Records)
## Gestion de grands jeux de données (plus de 20 000 enregistrements)
The export limit is 20,000 records. For larger datasets:
La limite d'export est de 20 000 enregistrements. Pour des jeux de données plus volumineux :
### Option 1: Export in Batches
### Option 1 : Exporter par lots
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
1. Ajoutez un filtre (p. ex. des plages de "Created date")
2. Exportez le premier lot
3. Modifiez le filtre
4. Exportez le lot suivant
5. Combinez les fichiers dans votre feuille de calcul
**Example filters for batching:**
**Exemples de filtres pour le traitement par lots :**
* By date range (January, February, March...)
* By owner (Team member A, Team member B...)
* By status (Active, Inactive...)
* Par plage de dates (janvier, février, mars...)
* Par propriétaire (membre de l'équipe A, membre de l'équipe B...)
* Par statut (Actif, Inactif...)
### Option 2: Use the API
### Option 2 : Utiliser l'API
The API has no record limit:
L'API n'a pas de limite d'enregistrements :
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
1. Récupérez votre clé API depuis **Settings → Developers**
2. Utilisez l'API GraphQL pour interroger les enregistrements
3. Traitez les résultats dans votre application
See: [API Documentation](/l/fr/developers/extend/capabilities/apis)
Voir : [Documentation de l'API](/l/fr/developers/extend/capabilities/apis)
## Tips and Best Practices
## Conseils et bonnes pratiques
### Create Export Views
### Créez des vues d'export
Save views configured specifically for exports:
Enregistrez des vues configurées spécifiquement pour les exports :
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
1. Configurez les colonnes et les filtres
2. Cliquez sur **View options** → **Save as new view**
3. Nommez-la "Export - [Purpose]"
### Secure Your Exports
### Sécurisez vos exports
Exported files may contain sensitive data:
Les fichiers exportés peuvent contenir des données sensibles :
* Store in secure locations
* Delete old exports when no longer needed
* Be careful sharing export files
* Stockez-les dans des emplacements sécurisés
* Supprimez les anciens exports lorsqu'ils ne sont plus nécessaires
* Soyez prudent lors du partage des fichiers d'export
### Check Before Exporting
### À vérifier avant l'export
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
<Check>Les colonnes appropriées sont visibles</Check>
<Check>Les filtres sont correctement définis (ou supprimés pour un export complet)</Check>
<Check>Vous disposez de l'autorisation d'export</Check>
## FAQ
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **Options → Fields** before exporting.
<Accordion title="Pourquoi certaines colonnes manquent-elles dans mon export ?">
Seules les colonnes visibles sont exportées. Ajoutez les colonnes nécessaires via **Options → Fields** avant d'exporter.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
<Accordion title="Pourquoi mon export ne contient-il pas tous les enregistrements ?">
Vérifiez vos filtres. L'export n'inclut que les enregistrements correspondant aux filtres de votre vue actuelle. Supprimez les filtres pour exporter tous les enregistrements.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
<Accordion title="Puis-je exporter plus de 20 000 enregistrements ?">
Pas en un seul export. Utilisez des filtres pour exporter par lots, ou utilisez l'API pour des jeux de données plus volumineux.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
<Accordion title="Quel est le format du fichier d'export ?">
CSV (valeurs séparées par des virgules). S'ouvre dans Excel, Google Sheets ou toute application de feuille de calcul.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
<Accordion title="Les ID de relations sont-ils inclus ?">
Oui, mais seulement du côté "many" des relations. Par exemple, un export People inclut `companyId`, mais un export Companies n'inclut pas les ID des personnes.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
<Accordion title="Puis-je automatiser les exports ?">
Pas directement via l'interface utilisateur. Utilisez l'API pour créer des workflows d'export automatisés.
</Accordion>
</AccordionGroup>
## Next Steps
## Prochaines étapes
* [How to Update Existing Records](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
* [How to Import Data via API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
* [API Documentation](/l/fr/developers/extend/capabilities/apis) — build custom export workflows
* [Comment mettre à jour des enregistrements existants](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import) — modifiez et réimportez votre export
* [Comment importer des données via l'API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api) — pour de grands jeux de données
* [Documentation de l'API](/l/fr/developers/extend/capabilities/apis) — créez des flux de travail d'exportation personnalisés
@@ -1,122 +1,122 @@
---
title: Fix Import Errors
description: Complete troubleshooting guide for resolving CSV import errors.
title: Corriger les erreurs d'importation
description: Guide de dépannage complet pour résoudre les erreurs d'importation CSV.
---
## Overview
## Vue d'ensemble
Import not working? This guide helps you identify and fix common import errors step by step.
L'importation ne fonctionne pas ? Ce guide vous aide, étape par étape, à identifier et à corriger les erreurs d'importation courantes.
## How Import Validation Works
## Comment fonctionne la validation de l'importation
After uploading your file and mapping columns, Twenty validates your data:
Après avoir téléversé votre fichier et fait la correspondance des colonnes, Twenty valide vos données :
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **Exécution de la validation** — Twenty vérifie chaque ligne pour détecter des erreurs
2. **Les erreurs sont mises en évidence** — les lignes problématiques apparaissent en **jaune**
3. **Vous pouvez corriger sur place** — modifiez les cellules directement dans l'interface d'importation
4. **Ou supprimer des lignes** — ignorez complètement les enregistrements problématiques
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**Corrigez les erreurs dans l'interface.** Vous n'avez pas besoin de revenir à votre feuille de calcul. Modifiez les cellules directement pendant l'importation pour gagner du temps.</Note>
## Step-by-Step Troubleshooting
## Dépannage étape par étape
### Step 1: Identify the Error Type
### Étape 1 : Identifier le type d'erreur
Click on a highlighted row to see the specific error message. Common error types:
Cliquez sur une ligne surlignée pour voir le message d'erreur spécifique. Types d'erreurs courants :
| Error Message | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| Message d'erreur | Ce que cela signifie |
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| Valeurs en double surlignées en jaune | La valeur existe déjà dans Twenty ou apparaît deux fois dans votre fichier |
| `{field} is not a valid {type}` (survolez la cellule jaune) | Les données ne correspondent pas au format attendu |
| Champ obligatoire surligné | Un champ obligatoire est vide |
| `Can't connect to {object}. No unique record found...` (l'importation échoue) | L'enregistrement référencé n'existe pas |
| `Too many records. Up to 10000 allowed` (téléversement bloqué) | Le fichier contient plus de 10 000 enregistrements |
### Step 2: Fix the Error
### Étape 2 : Corriger l'erreur
Follow the specific instructions below for each error type.
Suivez les instructions spécifiques ci-dessous pour chaque type d'erreur.
---
## Error: Duplicate Value
## Erreur : Valeur en double
### What You'll See
### Ce que vous verrez
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
Les lignes avec des valeurs en double sont **surlignées en jaune** dans l'interface d'importation avant le début de l'importation.
### What It Means
### Ce que cela signifie
A unique field (email, domain) either:
Un champ unique (e-mail, domaine) :
* Already exists in Twenty
* Appears twice in your file
* Existe déjà dans Twenty
* Apparaît deux fois dans votre fichier
### How to Fix
### Comment corriger
**Option 1: Edit the duplicate value**
**Option 1 : Modifier la valeur en double**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. Cliquez sur la cellule contenant l'erreur
2. Remplacez par une valeur unique
3. Continuer l'importation
**Option 2: Remove the duplicate row**
**Option 2 : Supprimer la ligne en double**
1. Click the X next to the row
2. The row will be skipped during import
1. Cliquez sur le X à côté de la ligne
2. La ligne sera ignorée pendant l'importation
**Option 3: Let Twenty update the existing record**
**Option 3 : Laisser Twenty mettre à jour l'enregistrement existant**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. Assurez-vous que votre fichier inclut un identifiant unique (`email`, `domain` ou `id`)
2. Faites correspondre le champ d'identifiant unique
3. Twenty mettra à jour l'enregistrement existant au lieu de créer un doublon
<Note>
**You can update unique fields too.**
**Vous pouvez aussi mettre à jour les champs uniques.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* Si vous conservez l'`id` mais changez l'`email` → l'adresse e-mail sera mise à jour
* Si vous conservez l'`email` mais changez l'`id` → l'id sera mis à jour
As long as one unique identifier matches, Twenty updates the record.
Tant qu'un identifiant unique correspond, Twenty met à jour l'enregistrement.
</Note>
### How to Prevent This Error
### Comment éviter cette erreur
Before importing:
Avant l'importation :
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. Triez votre feuille de calcul par le champ unique
2. Supprimez les lignes en double
3. Vérifiez si des enregistrements existent déjà dans Twenty
<Warning>
**Soft-deleted records count toward uniqueness.**
**Les enregistrements supprimés de façon logique comptent pour l'unicité.**
Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
Vérifiez le menu Commande → Voir les enregistrements supprimés. Les enregistrements qui s'y trouvent imposent toujours l'unicité. Supprimez-les définitivement ou restaurez-les et mettez-les à jour.
</Warning>
For more details: [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
Pour plus de détails : [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## Erreur : Format invalide
### What You'll See
### Ce que vous verrez
The cell value is highlighted in yellow. Hover over it to see the error message:
La valeur de la cellule est surlignée en jaune. Survolez-la pour voir le message d'erreur :
```
{field name} is not a valid {field type}
```
### What It Means
### Ce que cela signifie
The data doesn't match the expected format for that field type.
Les données ne correspondent pas au format attendu pour ce type de champ.
### How to Fix — By Field Type
### Comment corriger — selon le type de champ
#### Email
#### E-mail
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**Problème :** Format d'e-mail invalide
**Solution :** Utilisez le format `name@domain.com`
```
❌ john.smith@
@@ -124,10 +124,10 @@ The data doesn't match the expected format for that field type.
✓ john.smith@acme.com
```
#### Domain
#### Domaine
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**Problème :** Un format incohérent peut provoquer des doublons
**Solution :** Utilisez le format `https://domain.com` (recommandé)
```
⚠️ acme.com (valid, but not recommended)
@@ -135,12 +135,12 @@ The data doesn't match the expected format for that field type.
✅ https://acme.com (recommended)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>Tous les formats sont valides, mais `https://domain.com` est recommandé car il correspond au format utilisé par la synchronisation e-mail/calendrier. L'utilisation d'autres formats peut créer des entreprises en double.</Note>
#### Date
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**Problème :** Format de date non reconnu
**Solution :** Utilisez un format cohérent dans tout le fichier
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
@@ -148,21 +148,21 @@ The data doesn't match the expected format for that field type.
✓ 15/03/2024 (DD/MM/YYYY)
```
#### Phone
#### Téléphone
**Problem:** Missing required columns
**Solution:** Include all phone columns
**Problème :** Colonnes obligatoires manquantes
**Solution :** Incluez toutes les colonnes de téléphone
| Column | Example |
| Colonne | Exemple |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
#### Boolean
#### Booléen
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**Problème :** Valeur booléenne incorrecte
**Solution :** Utilisez `TRUE` ou `FALSE` en majuscules
```
❌ true
@@ -172,37 +172,37 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### Sélection / Sélection multiple
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**Problème :** La valeur ne correspond pas aux options existantes
**Solution :** Utilisez les **noms d'API**, pas les libellés d'affichage
How to find API names:
Comment trouver les noms d'API :
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez l'objet et le champ
3. Activez le **mode avancé** (bouton à bascule en bas à droite)
4. Utilisez le nom d'API (p. ex., `OPTION_1`, pas "Option 1")
```
❌ High Priority
✓ HIGH_PRIORITY
```
#### Currency
#### Devise
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**Problème :** Montant ou code de devise manquant
**Solution :** Renseignez les deux colonnes
| Column | Example |
| Colonne | Exemple |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Number
#### Nombre
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**Problème :** Caractères non numériques
**Solution :** Chiffres uniquement, point pour les décimales
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/fr/user-guide/data-migration/capabilities/field-mapping)
Pour la référence complète des formats : [Correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## Erreur : Champ obligatoire manquant
### What You'll See
### Ce que vous verrez
The row is highlighted in yellow with the required field cell marked.
La ligne est surlignée en jaune et la cellule du champ obligatoire est indiquée.
### What It Means
### Ce que cela signifie
A required field is empty for this row.
Un champ obligatoire est vide pour cette ligne.
### How to Fix
### Comment corriger
**Option 1: Enter a value**
**Option 1 : Saisir une valeur**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. Cliquez sur la cellule vide
2. Saisissez une valeur
3. Continuer l'importation
**Option 2: Remove the row**
**Option 2 : Supprimer la ligne**
1. If you don't have the data, click X to skip the row
1. Si vous n'avez pas les données, cliquez sur X pour ignorer la ligne
### How to Prevent This Error
### Comment éviter cette erreur
Before importing, identify required fields:
Avant l'importation, identifiez les champs obligatoires :
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez votre objet
3. Vérifiez quels champs sont marqués comme obligatoires
---
## Error: Relation Not Found
## Erreur : Relation introuvable
### What You'll See
### Ce que vous verrez
This error appears **after the import starts** — the import fails with a message like:
Cette erreur apparaît **après le début de l'importation** — l'importation échoue avec un message comme :
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
Cela signifie qu'il n'existe aucune entreprise dans Twenty avec cet identifiant précis.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>Contrairement aux autres erreurs, celle-ci n'est pas détectée lors de l'étape de révision des données. L'importation commencera puis échouera lorsqu'elle rencontrera la relation manquante.</Note>
### What It Means
### Ce que cela signifie
You're trying to link to a record that doesn't exist in Twenty.
Vous essayez de lier un enregistrement qui n'existe pas dans Twenty.
### How to Fix
### Comment corriger
**Option 1: Import parent records first**
**Option 1 : Importer d'abord les enregistrements parents**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. Annulez l'importation en cours
2. Importez les enregistrements parents (p. ex., Entreprises)
3. Importez ensuite les enregistrements enfants (p. ex., Personnes)
**Option 2: Fix the reference value**
**Option 2 : Corriger la valeur de référence**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. Vérifiez la valeur de référence dans votre fichier
2. Assurez-vous qu'elle correspond exactement à un enregistrement existant
3. Vérifiez le format : les domaines doivent être `https://domain.com`
**Option 3: Remove the relation**
**Option 3 : Supprimer la relation**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. Effacez la cellule pour importer sans la relation
2. Ajoutez la relation manuellement plus tard
### How to Prevent This Error
### Comment éviter cette erreur
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **Importez dans le bon ordre :**
* Entreprises en premier
* Personnes ensuite (avec références à l'entreprise)
* Opportunités en troisième
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **Vérifiez les valeurs de référence :**
* Exportez les enregistrements parents pour obtenir les identifiants exacts
* Utilisez le format de domaine `https://domain.com`
* Vérifiez les fautes de frappe et la casse
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**L'importation échouera si une référence est faite à un enregistrement inexistant.**
Always import parent objects before child objects.
Importez toujours les objets parents avant les objets enfants.
</Warning>
For more details: [Import Relations](/l/fr/user-guide/data-migration/capabilities/import-relations)
Pour plus de détails : [Import des relations](/l/fr/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## Erreur : Fichier trop volumineux
### What You'll See
### Ce que vous verrez
This error appears **when uploading your file** — the upload is blocked entirely:
Cette erreur apparaît **lors du téléversement de votre fichier** — le téléversement est entièrement bloqué :
```
Too many records. Up to 10000 allowed
```
You won't be able to proceed to the data review step until you reduce the file size.
Vous ne pourrez pas passer à l'étape de révision des données tant que vous n'aurez pas réduit la taille du fichier.
### What It Means
### Ce que cela signifie
Your file has more than 10,000 records.
Votre fichier contient plus de 10 000 enregistrements.
### How to Fix
### Comment corriger
**Option 1: Split into multiple files**
**Option 1 : Fractionner en plusieurs fichiers**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. Divisez vos données en fichiers de 10 000 enregistrements ou moins
2. Importez chaque fichier séparément
3. Conservez l'ordre d'importation (Entreprises avant Personnes)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api)
**Option 2 : Utiliser l'import via l'API**
Pour de très grands jeux de données, utilisez l'API qui n'a pas de limite d'enregistrements.
Voir : [Comment importer des données via l'API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## Erreur : Champ non reconnu
### What It Means
### Ce que cela signifie
A column in your file can't be mapped because the field doesn't exist in Twenty.
Une colonne de votre fichier ne peut pas être mise en correspondance car le champ n'existe pas dans Twenty.
### How to Fix
### Comment corriger
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez l'objet que vous importez
3. Cliquez sur **+ Add field**
4. Créez le champ personnalisé avec le type approprié
5. Téléversez de nouveau votre fichier
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>L'import CSV crée des enregistrements, pas des champs. Tous les champs doivent exister avant l'importation.</Note>
---
## Error: User Relation Empty
## Erreur : Relation utilisateur vide
### What It Means
### Ce que cela signifie
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
Vous essayez d'assigner un enregistrement à un utilisateur (Propriétaire, Assignataire) mais la relation n'est pas mise en correspondance.
### Common Causes
### Causes courantes
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **L'utilisateur n'a pas accepté son invitation** — l'utilisateur n'existe pas encore dans Twenty
2. **Utilisation de l'ID utilisateur de l'ancien système** — Twenty ne peut pas faire correspondre les ID d'un autre système
3. **Format d'e-mail incorrect** — l'adresse e-mail ne correspond pas au compte Twenty de l'utilisateur
### How to Fix
### Comment corriger
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. Assurez-vous que tous les utilisateurs ont **accepté leur invitation** à votre espace de travail Twenty
2. Utilisez l'**adresse e-mail** de l'utilisateur (pas son nom ni l'ID de l'ancien système)
3. Utilisez la même adresse e-mail que celle utilisée pour rejoindre Twenty
<Warning>
**Users must accept invitations before importing.**
**Les utilisateurs doivent accepter les invitations avant l'importation.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
Si un utilisateur n'a pas accepté son invitation, les enregistrements qui s'y réfèrent auront des relations utilisateur vides.
</Warning>
---
## Pre-Import Checklist
## Liste de vérification avant l'importation
Avoid errors by checking these before importing:
Évitez les erreurs en vérifiant ces éléments avant l'importation :
### File Requirements
### Exigences relatives au fichier
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>Le fichier est au format CSV, XLSX ou XLS</Check>
<Check>Le fichier contient moins de 10 000 enregistrements</Check>
<Check>Le fichier utilise l'encodage UTF-8</Check>
### Data Quality
### Qualité des données
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>Aucune adresse e-mail en double (pour Personnes)</Check>
<Check>Aucun domaine en double (pour Entreprises)</Check>
<Check>Toutes les dates utilisent un format cohérent</Check>
<Check>Tous les domaines utilisent le format `https://domain.com`</Check>
### Field Formats
### Formats des champs
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>Les champs booléens utilisent `TRUE` ou `FALSE` (majuscules)</Check>
<Check>Les champs de sélection utilisent les noms d'API, pas les libellés d'affichage</Check>
<Check>Les champs de téléphone ont toutes les colonnes requises</Check>
<Check>Les champs de devise ont à la fois Montant et Code de devise</Check>
### Relations
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>Enregistrements parents importés avant les enregistrements enfants</Check>
<Check>Les colonnes de relation font référence à des enregistrements existants</Check>
<Check>Le format de domaine correspond exactement au format de Twenty</Check>
### Data Model
### Modèle de données
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>Tous les champs personnalisés existent dans Paramètres → Modèle de données</Check>
<Check>Les options de sélection existent avant l'importation</Check>
---
## Still Having Issues?
## Vous avez encore des problèmes ?
If you've tried the above solutions:
Si vous avez essayé les solutions ci-dessus :
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/fr/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/fr/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/fr/user-guide/data-migration/capabilities/error-handling)
1. **Téléchargez le fichier d'exemple** — voyez le format exact attendu par Twenty
2. **Exportez les enregistrements existants** — comparez votre fichier à des données fonctionnelles
3. **Testez avec un petit lot** — essayez d'abord 5 à 10 lignes
4. **Consultez les articles de référence :**
* [Correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping)
* [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import des relations](/l/fr/user-guide/data-migration/capabilities/import-relations)
* [Gestion des erreurs](/l/fr/user-guide/data-migration/capabilities/error-handling)
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: Importer des entreprises via CSV
description: Guide complet étape par étape pour importer des entreprises dans Twenty.
---
## Overview
## Vue d'ensemble
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Ce guide vous accompagne pour importer vos entreprises dans Twenty. **Les entreprises doivent être importées en premier** car les Personnes et les Opportunités sont liées aux Entreprises.
## Before You Start
## Avant de démarrer
### Prerequisites Checklist
### Liste de vérification des prérequis
<Check>
Your file is CSV, XLSX, or XLS format
Votre fichier est au format CSV, XLSX ou XLS
</Check>
<Check>
File has fewer than 10,000 records
Le fichier contient moins de 10 000 enregistrements
</Check>
<Check>
No duplicate domains in your file
Aucun domaine en double dans votre fichier
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Tous les champs personnalisés existent dans **Paramètres → Modèle de données**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/fr/user-guide/data-migration/how-tos/import-data-via-api).
Besoin d'importer plus de 10 000 entreprises ? Divisez en plusieurs fichiers ou utilisez l[importation via lAPI](/l/fr/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## Étape 1 : Préparer vos données d'entreprises
### Required and Recommended Fields
### Champs obligatoires et recommandés
| Field | Required? | Format | Notes |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Text | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Number | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Champ | Obligatoire ? | Format | Notes |
| ------------------------ | ------------- | -------------------- | -------------------------------------- |
| **Nom** | Recommandé | Texte | Nom d'affichage de l'entreprise |
| **Domaine** | Recommandé | `https://domain.com` | Identifiant unique |
| **Adresse** | Facultatif | Plusieurs colonnes | Voir ci-dessous |
| **Employés** | Facultatif | Nombre | Nombre d'employés |
| **Champs personnalisés** | Facultatif | Variable | Doit exister dans le Modèle de données |
### Domain Format
### Format du domaine
<Warning>
**Use the format `https://domain.com` for domains.**
**Utilisez le format `https://domain.com` pour les domaines.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
Cela correspond au format utilisé lorsque des entreprises sont créées automatiquement à partir de la synchronisation e-mail/calendrier, ce qui évite les doublons par la suite.
</Warning>
**Domain columns:**
**Colonnes de domaine :**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
* **Domaine / Libellé du domaine** : `acme.com`
* **Domaine / URL du domaine** : `https://acme.com`
### Address Format
### Format de l'adresse
Address is a nested field with multiple columns:
L'adresse est un champ imbriqué avec plusieurs colonnes :
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Exemple de structure CSV
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,128 +74,128 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**Astuce :** Cliquez sur **Télécharger le fichier d'exemple** lors de l'import pour voir les noms de colonnes exacts attendus par Twenty.
</Note>
## Step 2: Access the Import Feature
## Étape 2 : Accéder à la fonction d'importation
**Option 1: From the Companies View**
**Option 1 : Depuis la vue Entreprises**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Accédez à **Entreprises** dans la barre latérale gauche
2. Cliquez sur l'icône **⋮** en haut à droite
3. Sélectionnez **Importer des enregistrements**
**Option 2: Using Command Menu**
**Option 2 : Utiliser le menu de commandes**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **Companies**
1. Appuyez sur `Cmd + K` (Mac) ou `Ctrl + K` (Windows)
2. Tapez "import"
3. Sélectionnez **Importer des enregistrements**
4. Choisissez **Entreprises**
## Step 3: Upload Your File
## Étape 3 : Téléverser votre fichier
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Cliquez sur **Sélectionner un fichier**
2. Choisissez votre fichier CSV, XLSX ou XLS
3. Attendez que Twenty analyse votre fichier
## Step 4: Map Your Columns
## Étape 4 : Associer vos colonnes
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty tente automatiquement d'associer vos colonnes aux champs. Vérifiez et ajustez :
1. **Check automatic mappings** — verify they're correct
2. **Fix incorrect mappings** — click the dropdown to select the right field
3. **Skip columns** — select **Do not map** for columns you don't want to import
1. **Vérifiez les correspondances automatiques** — assurez-vous qu'elles sont correctes
2. **Corrigez les correspondances incorrectes** — cliquez sur la liste déroulante pour sélectionner le bon champ
3. **Ignorer des colonnes** — sélectionnez **Do not map** pour les colonnes que vous ne souhaitez pas importer
### Important Mapping Rules
### Règles de mappage importantes
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Domaine** : Associez à **Domaine / URL du domaine** (et non au Libellé du domaine)
* **Adresse** : Associez chaque partie à sa colonne spécifique (Ville, État, etc.)
* **Champs de sélection** : les valeurs doivent correspondre aux options existantes (ou vous les associerez à l'étape suivante)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Étape 5 : Faire correspondre les valeurs des champs de sélection
If you have Select or Multi-Select fields:
Si vous avez des champs Sélection ou Multi-lection :
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty affiche vos valeurs à côté des options existantes
2. Faites correspondre chaque valeur de votre fichier à une option Twenty
3. Ou créez de nouvelles options si nécessaire
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Les options de sélection utilisent les **noms d'API**, pas les libellés d'affichage. Accédez à **Paramètres → Modèle de données** → activez le **Mode avancé** pour voir les noms d'API.
</Note>
## Step 6: Review and Fix Errors
## Étape 6 : Examiner et corriger les erreurs
Before completing the import, Twenty validates your data:
Avant de terminer l'import, Twenty valide vos données :
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Cliquez sur **Prochaines étapes**
2. Les lignes comportant des erreurs sont mises en évidence en **jaune**
3. **Corrigez les erreurs directement** — cliquez sur une cellule et modifiez la valeur
4. **Supprimez les lignes problématiques** — cliquez sur le X pour ignorer cette ligne
### Common Company Import Errors
### Erreurs courantes lors de l'import d'entreprises
| Error | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Erreur | Cause | Solution |
| ------------------------------ | ---------------------------------- | ------------------------------------------------------------------ |
| **Domaine en double** | Le domaine existe déjà dans Twenty | Supprimez-le du fichier ou mettez à jour l'enregistrement existant |
| **Format de domaine invalide** | Mauvais format | Utilisez `https://domain.com` |
| **Champ obligatoire manquant** | Le champ obligatoire est vide | Renseignez la valeur ou supprimez la ligne |
## Step 7: Complete the Import
## Étape 7 : Finaliser l'import
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records
1. Vérifiez le récapitulatif de l'import
2. Cliquez sur **Confirmer** pour importer
3. Attendez la fin de l'import
4. Vérifiez en examinant quelques enregistrements
## After Importing Companies
## Après l'import des entreprises
Now you can import records that link to Companies:
Vous pouvez maintenant importer des enregistrements liés aux entreprises :
1. **[Import People](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Importer des personnes](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)** — liez-les aux entreprises à l'aide du domaine
2. **Importez des opportunités** — liez-les aux entreprises
3. **Vérifiez l'import** — faites un contrôle ponctuel de quelques enregistrements pour vous assurer que les données sont correctes
## Updating Existing Companies
## Mise à jour des entreprises existantes
To update companies instead of creating new ones:
Pour mettre à jour des entreprises au lieu d'en créer de nouvelles :
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Incluez la colonne `domain` ou `id` dans votre fichier
2. Twenty fait correspondre les enregistrements à partir de cet identifiant unique
3. Les entreprises existantes sont mises à jour ; les nouvelles sont créées
See [How to Update Existing Records](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Voir [Comment mettre à jour des enregistrements existants](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import) pour plus de détails.
## FAQ
<AccordionGroup>
<Accordion title="Why can't two Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="Pourquoi deux entreprises ne peuvent-elles pas avoir le même domaine ?">
Le domaine est un identifiant unique dans Twenty. Cela évite les entreprises en double et garantit que la synchronisation des e-mails associe correctement les e-mails à la bonne entreprise.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Que faire si j'ai des entreprises sans domaine ?">
Vous pouvez laisser le domaine vide. Cependant, nous recommandons d'ajouter des domaines lorsque c'est possible pour une meilleure qualité des données et une liaison automatique des e-mails.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
Yes! You can import companies first, then import People later and link them using the company domain.
<Accordion title="Puis-je importer des entreprises sans aucune personne liée ?">
Oui! Vous pouvez d'abord importer des entreprises, puis importer des Personnes plus tard et les lier en utilisant le domaine de l'entreprise.
</Accordion>
<Accordion title="What happens if I import a domain that already exists?">
If you include a unique identifier (domain or id) that matches an existing company, Twenty updates that company instead of creating a duplicate.
<Accordion title="Que se passe-t-il si j'importe un domaine qui existe déjà ?">
Si vous incluez un identifiant unique (domaine ou id) correspondant à une entreprise existante, Twenty met à jour cette entreprise au lieu de créer un doublon.
</Accordion>
<Accordion title="How do I fix 'duplicate domain' errors?">
Either remove the duplicate from your file, or include the company's `id` to update the existing record instead.
<Accordion title="Comment corriger les erreurs 'duplicate domain' ?">
Supprimez le doublon de votre fichier ou incluez l'`id` de l'entreprise pour mettre à jour l'enregistrement existant.
</Accordion>
</AccordionGroup>
## Troubleshooting
## Résolution des problèmes
Having issues? Check:
Vous rencontrez des problèmes ? Consultez :
* [How to Fix Import Errors](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Field Mapping Reference](/l/fr/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Comment corriger les erreurs d'import](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Référence de correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping)
* [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
@@ -1,90 +1,90 @@
---
title: Import Contacts via CSV
description: Complete step-by-step guide to importing people/contacts into Twenty.
title: Importer des contacts via CSV
description: Guide complet étape par étape pour importer des personnes/contacts dans Twenty.
---
## Overview
## Vue d'ensemble
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
Ce guide vous accompagne pour importer vos contacts (Personnes) dans Twenty. **Importez d'abord les entreprises** si vous souhaitez lier des personnes à des entreprises.
## Before You Start
## Avant de démarrer
### Prerequisites Checklist
### Liste de vérification des prérequis
<Check>
Your file is CSV, XLSX, or XLS format
Votre fichier est au format CSV, XLSX ou XLS
</Check>
<Check>
File has fewer than 10,000 records
Le fichier contient moins de 10 000 enregistrements
</Check>
<Check>
No duplicate email addresses in your file
Aucune adresse e-mail en double dans votre fichier
</Check>
<Check>
**Companies imported first** (if linking People to Companies)
**Entreprises importées en premier** (si vous liez des personnes à des entreprises)
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Tous les champs personnalisés existent dans **Paramètres → Modèle de données**
</Check>
<Warning>
**Import Companies Before People**
**Importer les entreprises avant les personnes**
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
Si vous souhaitez lier des personnes à des entreprises, importez d'abord les entreprises. L'entreprise doit exister avant que vous puissiez y faire référence.
</Warning>
## Step 1: Prepare Your Contact Data
## Étape 1 : Préparer vos données de contacts
### Required and Recommended Fields
### Champs obligatoires et recommandés
| Field | Required? | Format | Notes |
| ----------------- | ----------- | ----------------- | ------------------------- |
| **Email** | Recommended | `name@domain.com` | Must be unique |
| **First Name** | Recommended | Text | |
| **Last Name** | Recommended | Text | |
| **Company** | Optional | Domain or ID | Links to existing Company |
| **Phone** | Optional | Multiple columns | See below |
| **Job Title** | Optional | Text | |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Champ | Obligatoire ? | Format | Notes |
| ------------------------ | ------------- | ------------------ | -------------------------------------- |
| **Email** | Recommandé | `name@domain.com` | Doit être unique |
| **Prénom** | Recommandé | Texte | |
| **Nom de famille** | Recommandé | Texte | |
| **Entreprise** | Facultatif | Domaine ou ID | Lie à une entreprise existante |
| **Téléphone** | Facultatif | Plusieurs colonnes | Voir ci-dessous |
| **Titre du poste** | Facultatif | Texte | |
| **Champs personnalisés** | Facultatif | Variable | Doit exister dans le Modèle de données |
### Email Format
### Format de l'e-mail
* Must be valid email format: `name@domain.com`
* **Must be unique** — no duplicates in your file or in Twenty
* For additional emails, use the **Emails / Additional Emails** column:
* Doit être un format d'e-mail valide : `name@domain.com`
* **Doit être unique** — aucun doublon dans votre fichier ni dans Twenty
* Pour des e-mails supplémentaires, utilisez la colonne **Emails / Additional Emails** :
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Phone Format
### Format du téléphone
Phone is a **nested field** requiring multiple columns:
Le téléphone est un **champ imbriqué** nécessitant plusieurs colonnes :
| Column | Example |
| Colonne | Exemple |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Linking to Companies
### Lier aux entreprises
Add a column with the Company's unique identifier:
Ajoutez une colonne contenant l'identifiant unique de l'entreprise :
| Column Name | Format | Example |
| --------------- | ---------- | -------------------------------------- |
| `companyDomain` | URL format | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
| Nom de la colonne | Format | Exemple |
| ----------------- | ------------ | -------------------------------------- |
| `companyDomain` | Format d'URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use Domain URL format** (`https://acme.com`), not the label. This matches how Companies are stored in Twenty.
**Utilisez le format d'URL de domaine** (`https://acme.com`), pas le libellé. Cela correspond à la façon dont les entreprises sont stockées dans Twenty.
</Note>
### Sample CSV Structure
### Exemple de structure CSV
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
@@ -93,150 +93,150 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**Pro tip:** Click **Download sample file** during import or export a few existing People to see the exact column names Twenty expects.
**Astuce :** Cliquez sur **Télécharger le fichier d'exemple** lors de l'importation ou exportez quelques personnes existantes pour voir les noms de colonnes exacts attendus par Twenty.
</Note>
## Step 2: Access the Import Feature
## Étape 2 : Accéder à la fonction d'importation
**Option 1: From the People View**
**Option 1 : Depuis la vue Personnes**
1. Navigate to **People** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Accédez à **Personnes** dans la barre latérale gauche
2. Cliquez sur l'icône **⋮** en haut à droite
3. Sélectionnez **Importer des enregistrements**
**Option 2: Using Command Menu**
**Option 2 : Utiliser le menu de commandes**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **People**
1. Appuyez sur `Cmd + K` (Mac) ou `Ctrl + K` (Windows)
2. Tapez "import"
3. Sélectionnez **Importer des enregistrements**
4. Choisissez **Personnes**
## Step 3: Upload Your File
## Étape 3 : Téléverser votre fichier
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Cliquez sur **Sélectionner un fichier**
2. Choisissez votre fichier CSV, XLSX ou XLS
3. Attendez que Twenty analyse votre fichier
## Step 4: Map Your Columns
## Étape 4 : Associer vos colonnes
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty tente automatiquement d'associer vos colonnes aux champs. Vérifiez et ajustez :
1. **Check automatic mappings** — verify they're correct
2. **Fix incorrect mappings** — click the dropdown to select the right field
3. **Skip columns** — select **Do not map** for columns you don't want to import
1. **Vérifiez les correspondances automatiques** — assurez-vous qu'elles sont correctes
2. **Corrigez les correspondances incorrectes** — cliquez sur la liste déroulante pour sélectionner le bon champ
3. **Ignorer des colonnes** — sélectionnez **Do not map** pour les colonnes que vous ne souhaitez pas importer
### Important Mapping Rules
### Règles de mappage importantes
| Column Type | Map To | Notes |
| ----------------- | ------------------------------ | ---------------------------------- |
| Company reference | **Company** relation field | Use domain OR id, not both |
| Email | **Email** | Primary email address |
| Additional emails | **Emails / Additional Emails** | Array format |
| Phone | Separate columns | Number, Country Code, Calling Code |
| Type de colonne | Associer à | Notes |
| ----------------------- | -------------------------------- | ----------------------------------------- |
| Référence d'entreprise | Champ de relation **Entreprise** | Utilisez le domaine OU l'ID, pas les deux |
| E-mail | **Email** | Adresse e-mail principale |
| E-mails supplémentaires | **Emails / Additional Emails** | Format de tableau |
| Téléphone | Colonnes séparées | Numéro, Code pays, Indicatif d'appel |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapping the Company Relation
### Mappage de la relation Entreprise
When mapping the company column:
Lors du mappage de la colonne entreprise :
1. Find your company reference column (e.g., `companyDomain`)
2. Map it to the **Company** relation field
3. Twenty will link each Person to the matching Company
1. Trouvez votre colonne de référence de l'entreprise (par ex. `companyDomain`)
2. Associez-la au champ de relation **Entreprise**
3. Twenty liera chaque personne à l'entreprise correspondante
<Warning>
**Map only ONE unique identifier for relations.**
**N'associez qu'UN SEUL identifiant unique pour les relations.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Ne mappez pas à la fois `companyId` ET `companyDomain`. Choisissez-en un — de préférence le domaine, car il est lisible par un humain.
</Warning>
## Step 5: Map Select Field Values
## Étape 5 : Faire correspondre les valeurs des champs de sélection
If you have Select or Multi-Select fields (like Lead Source):
Si vous avez des champs Sélection ou Multi-lection (comme Source du lead) :
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty affiche vos valeurs à côté des options existantes
2. Faites correspondre chaque valeur de votre fichier à une option Twenty
3. Ou créez de nouvelles options si nécessaire
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Les options de sélection utilisent les **noms d'API**, pas les libellés d'affichage. Accédez à **Settings → Data Model** → activez **Advanced mode** pour voir les noms d'API.
</Note>
## Step 6: Review and Fix Errors
## Étape 6 : Examiner et corriger les erreurs
Before completing the import, Twenty validates your data:
Avant de terminer l'import, Twenty valide vos données :
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Cliquez sur **Prochaines étapes**
2. Les lignes comportant des erreurs sont mises en évidence en **jaune**
3. **Corrigez les erreurs directement** — cliquez sur une cellule et modifiez la valeur
4. **Supprimez les lignes problématiques** — cliquez sur le X pour ignorer cette ligne
### Common Contact Import Errors
### Erreurs courantes lors de l'import de contacts
| Error | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Erreur | Cause | Solution |
| ------------------------------------ | ----------------------------------------------------------- | --------------------------------------------------------------- |
| **Adresse e-mail en double** | L'adresse e-mail existe déjà dans Twenty ou dans le fichier | Supprimez le doublon ou mettez à jour l'enregistrement existant |
| **Format d'adresse e-mail invalide** | Format d'adresse e-mail incorrect | Corrigez au format `name@domain.com` |
| **Relation introuvable** | L'entreprise n'existe pas | Importez d'abord les entreprises ou corrigez la référence |
| **Champ obligatoire manquant** | Le champ obligatoire est vide | Renseignez la valeur ou supprimez la ligne |
## Step 7: Complete the Import
## Étape 7 : Finaliser l'import
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. Vérifiez le récapitulatif de l'import
2. Cliquez sur **Confirmer** pour importer
3. Attendez la fin de l'import
4. Vérifiez en consultant quelques enregistrements et leurs liens avec l'entreprise
## After Importing Contacts
## Après l'import des contacts
Your contacts are now in Twenty! Next steps:
Vos contacts sont maintenant dans Twenty ! Prochaines étapes :
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Vérifiez les liens avec l'entreprise** — ouvrez quelques enregistrements de personnes pour confirmer qu'ils sont liés à la bonne entreprise
2. **Importez des opportunités** — si nécessaire, liez-les aux personnes et aux entreprises
3. **Configurez la synchronisation des e-mails** — connectez votre boîte mail pour voir l'historique des e-mails sur les enregistrements de contacts
## Updating Existing Contacts
## Mise à jour des contacts existants
To update contacts instead of creating new ones:
Pour mettre à jour des contacts au lieu d'en créer de nouveaux :
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Incluez la colonne `email` ou `id` dans votre fichier
2. Twenty fait correspondre les enregistrements à partir de cet identifiant unique
3. Les contacts existants sont mis à jour ; les nouveaux sont créés
See [How to Update Existing Records](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Voir [Comment mettre à jour des enregistrements existants](/l/fr/user-guide/data-migration/how-tos/update-existing-records-via-import) pour plus de détails.
## FAQ
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="Pourquoi deux personnes ne peuvent-elles pas avoir la même adresse e-mail ?">
L'adresse e-mail est un identifiant unique dans Twenty. Cela évite les contacts en double et garantit que la synchronisation des e-mails associe correctement les e-mails à la bonne personne.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="Que faire si j'ai des personnes sans adresse e-mail ?">
Vous pouvez laisser l'adresse e-mail vide. Cependant, nous recommandons d'ajouter des adresses e-mail lorsque c'est possible pour une meilleure qualité des données et une synchronisation des e-mails plus efficace.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="Comment lier des personnes à des entreprises lors de l'import ?">
Ajoutez une colonne avec le domaine de l'entreprise (par exemple, `https://acme.com`) ou l'ID. Lors du mapping, connectez cette colonne au champ de relation Entreprise.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="Que faire si l'entreprise n'existe pas encore ?">
Importez d'abord les entreprises, puis importez les personnes. L'entreprise doit exister avant que vous ne puissiez y faire référence.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Yes! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Puis-je importer l'ID depuis mon CRM précédent ?">
Oui! Créez un champ personnalisé marqué comme "unique" dans votre modèle de données pour stocker l'ID externe. Remarque : le nom de champ `id` est réservé à l'ID interne de Twenty.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="Comment corriger les erreurs 'relation not found' ?">
L'entreprise à laquelle vous faites référence n'existe pas. Soit importez d'abord l'entreprise, soit vérifiez que le domaine/l'ID correspond exactement à une entreprise existante.
</Accordion>
</AccordionGroup>
## Troubleshooting
## Résolution des problèmes
Having issues? Check:
Des problèmes ? Consultez :
* [How to Fix Import Errors](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/fr/user-guide/data-migration/capabilities/field-mapping)
* [Comment corriger les erreurs d'import](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Comment importer des relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Référence de correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping)
@@ -1,176 +1,176 @@
---
title: Import Data via API
description: When and how to use Twenty's APIs for large-scale data imports.
title: Importer des données via l'API
description: Quand et comment utiliser les API de Twenty pour des importations de données à grande échelle.
---
## Overview
## Vue d'ensemble
Twenty provides both **GraphQL** and **REST APIs** for programmatic data import. Use the API when CSV import isn't practical for your data volume or when you need automated, recurring imports.
Twenty propose des **API GraphQL** et **REST** pour l'importation programmatique de données. Utilisez l'API lorsque l'importation CSV n'est pas pratique pour votre volume de données ou lorsque vous avez besoin d'importations automatisées et récurrentes.
## When to Use API Import
## Quand utiliser l'importation via l'API
| Scenario | Recommended Method |
| ---------------------------------- | ----------------------------- |
| Under 10,000 records | CSV Import |
| 10,000 - 50,000 records | CSV Import (split into files) |
| **50,000+ records** | **API Import** |
| One-time migration | Either (based on volume) |
| **Recurring imports** | **API Import** |
| **Real-time sync** | **API Import** |
| **Integration with other systems** | **API Import** |
| Scénario | Méthode recommandée |
| -------------------------------------- | ----------------------------------------------- |
| Moins de 10 000 enregistrements | Importation CSV |
| 10 000 - 50 000 enregistrements | Importation CSV (divisée en plusieurs fichiers) |
| **50 000+ enregistrements** | **Importation via l'API** |
| Migration ponctuelle | L'un ou l'autre (selon le volume) |
| **Importations récurrentes** | **Importation via l'API** |
| **Synchronisation en temps réel** | **Importation via l'API** |
| **Intégration avec d'autres systèmes** | **Importation via l'API** |
<Note>For datasets in the hundreds of thousands, the API is significantly faster and more reliable than multiple CSV imports.</Note>
<Note>Pour des jeux de données comptant des centaines de milliers d'éléments, l'API est nettement plus rapide et plus fiable que plusieurs importations CSV.</Note>
## API Rate Limits
## Limites de débit de l'API
Twenty enforces rate limits to ensure system stability:
Twenty applique des limites de débit pour garantir la stabilité du système :
| Limit | Value |
| -------------------------- | --------------------- |
| **Requests per minute** | 100 |
| **Records per batch call** | 60 |
| **Maximum throughput** | ~6,000 records/minute |
| Limite | Valeur |
| -------------------------------------- | ----------------------------- |
| **Requêtes par minute** | 100 |
| **Enregistrements par appel par lots** | 60 |
| **Débit maximal** | ~6 000 enregistrements/minute |
<Warning>
**Plan your import around these limits.**
**Planifiez votre importation en fonction de ces limites.**
For 100,000 records at maximum throughput, expect approximately 17 minutes of import time. Add buffer time for error handling and retries.
Pour 100 000 enregistrements au débit maximal, prévoyez environ 17 minutes d'importation. Ajoutez une marge pour la gestion des erreurs et les nouvelles tentatives.
</Warning>
## Getting Started
## Prise en main
### Step 1: Get Your API Key
### Étape 1 : Obtenez votre clé API
1. Go to **Settings → Developers**
2. Click **+ Create API key**
3. Give your key a descriptive name
4. Copy the API key immediately (it won't be shown again)
5. Store it securely
1. Allez dans **Paramètres → Développeurs**
2. Cliquez sur **+ Créer une clé API**
3. Donnez à votre clé un nom descriptif
4. Copiez immédiatement la clé API (elle ne sera plus affichée)
5. Stockez-la en toute sécurité
<Warning>
**Keep your API key secret.**
**Gardez votre clé API secrète.**
Anyone with your API key can access and modify your workspace data. Never commit it to code repositories or share it publicly.
Toute personne disposant de votre clé API peut accéder aux données de votre espace de travail et les modifier. Ne la validez jamais dans des dépôts de code et ne la partagez pas publiquement.
</Warning>
### Step 2: Choose Your API
### Étape 2 : Choisissez votre API
Twenty supports two API types:
Twenty prend en charge deux types d'API :
| API | Best For | Documentation |
| ----------- | ----------------------------------------------------------- | ------------------------------------------------ |
| **GraphQL** | Flexible queries, fetching related data, complex operations | [API Docs](/l/fr/developers/extend/capabilities/apis) |
| **REST** | Simple CRUD operations, familiar REST patterns | [API Docs](/l/fr/developers/extend/capabilities/apis) |
| API | Idéal pour | Documentation |
| ----------- | ----------------------------------------------------------------------- | -------------------------------------------------------------- |
| **GraphQL** | Requêtes flexibles, récupération de données liées, opérations complexes | [Documentation de l'API](/l/fr/developers/extend/capabilities/apis) |
| **REST** | Opérations CRUD simples, modèles REST familiers | [Documentation de l'API](/l/fr/developers/extend/capabilities/apis) |
Both APIs support:
Les deux API prennent en charge :
* Creating, reading, updating, and deleting records
* **Batch operations** — create or update up to 60 records per call
* Créer, lire, mettre à jour et supprimer des enregistrements
* **Opérations par lots** — créez ou mettez à jour jusqu'à 60 enregistrements par appel
**For imports, use batch operations** to maximize throughput within rate limits.
**Pour les importations, utilisez les opérations par lots** afin de maximiser le débit tout en respectant les limites de débit.
### Step 3: Plan Your Import Order
### Étape 3 : Planifiez l'ordre d'importation
Just like CSV imports, **order matters** for relations:
Comme pour les importations CSV, **l'ordre compte** pour les relations :
1. **Companies** first (no dependencies)
2. **People** second (can link to Companies)
3. **Opportunities** third (can link to Companies and People)
4. **Tasks/Notes** (can link to any of the above)
5. **Custom objects** (following their dependencies)
1. **Entreprises** d'abord (aucune dépendance)
2. **Personnes** ensuite (peuvent être liées aux Entreprises)
3. **Opportunités** en troisième (peuvent être liées aux Entreprises et aux Personnes)
4. **Tâches/Notes** (peuvent être liées à l'un des éléments ci-dessus)
5. **Objets personnalisés** (en suivant leurs dépendances)
## Best Practices
## Meilleures pratiques
### Batch Your Requests
### Regroupez vos requêtes par lots
* Don't send records one at a time
* Group up to **60 records per API call**
* This maximizes throughput within rate limits
* N'envoyez pas les enregistrements un par un
* Regroupez jusqu'à **60 enregistrements par appel d'API**
* Cela maximise le débit tout en respectant les limites de débit
### Handle Rate Limits
### Gérez les limites de débit
* Implement delays between requests (600ms minimum for sustained imports)
* Use exponential backoff when you hit limits
* Monitor for 429 (Too Many Requests) responses
* Mettez en place des délais entre les requêtes (600 ms minimum pour des importations soutenues)
* Utilisez un backoff exponentiel lorsque vous atteignez les limites
* Surveillez les réponses 429 (Too Many Requests)
### Validate Data First
### Validez d'abord les données
* Clean and validate your data before importing
* Check required fields are populated
* Verify formats match Twenty's requirements (see [Field Mapping](/l/fr/user-guide/data-migration/capabilities/field-mapping))
* Nettoyez et validez vos données avant l'importation
* Vérifiez que les champs obligatoires sont renseignés
* Vérifiez que les formats correspondent aux exigences de Twenty (voir [Correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping))
### Log Everything
### Consignez tout
* Log every record imported (including IDs)
* Log errors with full context
* This helps debug issues and verify completion
* Consignez chaque enregistrement importé (y compris les identifiants)
* Consignez les erreurs avec tout le contexte
* Cela aide à déboguer les problèmes et à vérifier l'achèvement
### Test First
### Testez d'abord
* Test with a small batch (10-20 records)
* Verify data appears correctly in Twenty
* Then run the full import
* Testez avec un petit lot (10 à 20 enregistrements)
* Vérifiez que les données s'affichent correctement dans Twenty
* Exécutez ensuite l'importation complète
### Upsert to Avoid Duplicates
### Upsert pour éviter les doublons
The GraphQL API supports **batch upsert** — update if the record exists, create if not. This prevents duplicates when re-running imports.
L'API GraphQL prend en charge l'**upsert par lots** — mise à jour si l'enregistrement existe, création sinon. Cela évite les doublons lors de la réexécution des importations.
## Finding Object and Field Names
## Trouver les noms d'objets et de champs
To see available objects and fields:
Pour voir les objets et champs disponibles :
1. Go to **Settings → API and Webhooks**
2. Browse the **Metadata API**
3. View all standard and custom objects with their fields
1. Allez dans **Paramètres → API et Webhooks**
2. Parcourez l'**API de métadonnées**
3. Affichez tous les objets standard et personnalisés avec leurs champs
The documentation shows all standard and custom objects, their fields, and the expected data types.
La documentation présente tous les objets standard et personnalisés, leurs champs et les types de données attendus.
## Professional Services
## Services Professionnels
For complex API migrations, our partners can help:
Pour des migrations API complexes, nos partenaires peuvent vous aider :
| Service | What's Included |
| ----------------------- | ---------------------------------- |
| **Data Model Design** | design your optimal data structure |
| **Migration Scripts** | write and run the import scripts |
| **Data Transformation** | handle complex mapping and cleanup |
| **Validation & QA** | verify the migration is complete |
| Service | Ce qui est inclus |
| ----------------------------------- | ------------------------------------------------ |
| **Conception du modèle de données** | concevoir votre structure de données optimale |
| **Scripts de migration** | écrire et exécuter les scripts d'importation |
| **Transformation des données** | gérer la correspondance complexe et le nettoyage |
| **Validation et assurance qualité** | vérifier que la migration est complète |
**Best for:**
**Idéal pour :**
* Migrations of 100,000+ records
* Complex data transformations
* Tight timelines
* Teams without developer resources
* Migrations de plus de 100 000 enregistrements
* Transformations de données complexes
* Délais serrés
* Équipes sans ressources de développement
Contact us at [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/l/fr/user-guide/getting-started/capabilities/implementation-services).
Contactez-nous à [contact@twenty.com](mailto:contact@twenty.com) ou découvrez nos [services de mise en œuvre](/l/fr/user-guide/getting-started/capabilities/implementation-services).
## FAQ
<AccordionGroup>
<Accordion title="What's the difference between GraphQL and REST?">
GraphQL lets you request exactly the data you need in a single query and is better for complex operations. REST uses standard HTTP methods (GET, POST, PUT, DELETE) and may be more familiar if you've worked with traditional APIs.
<Accordion title="Quelle est la différence entre GraphQL et REST ?">
GraphQL vous permet de demander exactement les données dont vous avez besoin en une seule requête et est mieux adapté aux opérations complexes. REST utilise les méthodes HTTP standard (GET, POST, PUT, DELETE) et peut être plus familier si vous avez travaillé avec des API traditionnelles.
</Accordion>
<Accordion title="Can I update existing records via API?">
Yes! Use update mutations (GraphQL) or PUT/PATCH requests (REST) with the record's `id`.
<Accordion title="Puis-je mettre à jour des enregistrements existants via l'API ?">
Oui! Utilisez des mutations de mise à jour (GraphQL) ou des requêtes PUT/PATCH (REST) avec l'`id` de l'enregistrement.
</Accordion>
<Accordion title="How do I handle duplicates?">
Query for existing records first using unique identifiers (email, domain). Update if exists, create if not.
<Accordion title="Comment gérer les doublons ?">
Recherchez d'abord les enregistrements existants en utilisant des identifiants uniques (e-mail, domaine). Mettez à jour s'il existe, créez s'il n'existe pas.
</Accordion>
<Accordion title="Can I delete records via API?">
Yes, use delete mutations (GraphQL) or DELETE requests (REST).
<Accordion title="Puis-je supprimer des enregistrements via l'API ?">
Oui, utilisez des mutations de suppression (GraphQL) ou des requêtes DELETE (REST).
</Accordion>
<Accordion title="Is there a Python or Node.js SDK?">
Not currently, but both APIs work with any HTTP client in any language.
<Accordion title="Existe-t-il un SDK Python ou Node.js ?">
Pas pour le moment, mais les deux API fonctionnent avec n'importe quel client HTTP dans n'importe quel langage.
</Accordion>
</AccordionGroup>
## API Documentation
## Documentation de l'API
For full implementation details, code examples, and schema reference:
Pour les détails complets de mise en œuvre, des exemples de code et la référence du schéma :
* [API Documentation](/l/fr/developers/extend/capabilities/apis)
* [Documentation de l'API](/l/fr/developers/extend/capabilities/apis)
@@ -1,103 +1,103 @@
---
title: Import Relations Between Objects via CSV
description: Complete step-by-step guide to linking records during CSV import.
title: Importer des relations entre objets via CSV
description: Guide complet étape par étape pour lier des enregistrements lors de l'importation CSV.
---
## Overview
## Vue d'ensemble
This guide walks you through importing relations between objects—for example, linking People to Companies, or Opportunities to People.
Ce guide vous accompagne dans l'importation des relations entre objets — par exemple, lier des Personnes à des Entreprises, ou des Opportunités à des Personnes.
<Note>**What can be imported:** Only one-to-many relations pointing to a single object type. Relations pointing to multiple object types (like Notes linking to People AND Companies) are not yet supported for import.</Note>
<Note>**Ce qui peut être importé :** Uniquement des relations un-à-plusieurs pointant vers un seul type d'objet. Les relations pointant vers plusieurs types d'objet (comme des Notes liées à des Personnes ET à des Entreprises) ne sont pas encore prises en charge pour l'importation.</Note>
## Understanding Relations
## Comprendre les relations
### What is a "One-to-Many" Relation?
### Qu'est-ce qu'une relation "un-à-plusieurs" ?
In a one-to-many relation:
Dans une relation un-à-plusieurs :
* **One** Company has **many** People (employees)
* **One** Company has **many** Opportunities
* **One** Person has **many** Tasks
* **Une** Entreprise a **de nombreuses** Personnes (employés)
* **Une** Entreprise a **de nombreuses** Opportunités
* **Une** Personne a **de nombreuses** Tâches
The "one" side is the **parent**. The "many" side is the **child**.
Le côté "un" est le **parent**. Le côté "plusieurs" est l'**enfant**.
### Common Relations in Twenty
### Relations courantes dans Twenty
| Relation | "One" Side (Parent) | "Many" Side (Child) |
| ------------------------- | ------------------- | ------------------- |
| Companies → People | Company | People |
| Companies → Opportunities | Company | Opportunities |
| People → Tasks | Person | Tasks |
| People → Notes | Person | Notes |
| Relation | Côté "un" (Parent) | Côté "plusieurs" (Enfant) |
| -------------------------- | ------------------ | ------------------------- |
| Entreprises → Personnes | Entreprise | Personnes |
| Entreprises → Opportunités | Entreprise | Opportunités |
| Personnes → Tâches | Personne | Tâches |
| Personnes → Notes | Personne | Notes |
## Step 1: Identify the "One" and "Many" Sides
## Étape 1 : Identifier les côtés "un" et "plusieurs"
Before importing, determine which object is the parent and which is the child.
Avant l'importation, déterminez quel objet est le parent et lequel est l'enfant.
**Ask yourself:** "Does ONE [Object A] have MANY [Object B]?"
**Posez-vous la question :** "Est-ce qu'UN [Objet A] a PLUSIEURS [Objet B] ?"
* One Company → Many People ✓ (Company is parent)
* One Person → Many Companies ✗ (This is wrong—a person belongs to one company)
* Une Entreprise → Plusieurs Personnes ✓ (l'Entreprise est le parent)
* Une PersonnePlusieurs Entreprises ✗ (C'est faux — une personne appartient à une seule entreprise)
## Step 2: Import the Parent Records First
## Étape 2 : Importer d'abord les enregistrements parents
The parent ("one" side) must exist in Twenty before you can reference it.
Le parent (côté "un") doit exister dans Twenty avant que vous ne puissiez y faire référence.
**Import order:**
**Ordre d'import :**
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies and/or People)
4. **Tasks/Notes** (link to any of the above)
1. **Entreprises** d'abord (aucune dépendance)
2. **Personnes** ensuite (liées aux Entreprises)
3. **Opportunités** en troisième (liées aux Entreprises et/ou aux Personnes)
4. **Tâches/Notes** (liées à l'un des éléments ci-dessus)
<Warning>
**If the parent record doesn't exist, the import will fail.**
**Si l'enregistrement parent n'existe pas, l'import échouera.**
Always verify that Companies are imported before importing People with company references.
Vérifiez toujours que les Entreprises sont importées avant d'importer des Personnes avec des références à l'Entreprise.
</Warning>
## Step 3: Note the Parent's Unique Identifier
## Étape 3 : Noter l'identifiant unique du parent
You need to reference the parent record using a **unique identifier**. Available options:
Vous devez référencer l'enregistrement parent à l'aide d'un **identifiant unique**. Options disponibles :
| Parent Object | Available Unique Identifiers |
| --------------------- | --------------------------------------------------------------- |
| **Companies** | `id` (UUID), `domain` (recommended), or any custom unique field |
| **People** | `id` (UUID), `email`, or any custom unique field |
| **Workspace Members** | `id` (UUID), `email` (not name) |
| **Custom Objects** | `id` (UUID), or any field marked as unique |
| Objet parent | Identifiants uniques disponibles |
| ---------------------------------- | --------------------------------------------------------------------- |
| **Entreprises** | `id` (UUID), `domain` (recommandé), ou tout champ unique personnalisé |
| **Personnes** | `id` (UUID), `email`, ou tout champ unique personnalisé |
| **Membres de l'espace de travail** | `id` (UUID), `email` (pas le nom) |
| **Objets personnalisés** | `id` (UUID), ou tout champ marqué comme unique |
<Note>**Recommended:** Use `domain` for Companies and `email` for People. These are human-readable and easy to verify in your spreadsheet.</Note>
<Note>**Recommandé :** Utilisez `domain` pour les Entreprises et `email` pour les Personnes. Ils sont lisibles par l'humain et faciles à vérifier dans votre feuille de calcul.</Note>
### Finding the Identifier
### Trouver l'identifiant
If you need the `id`:
Si vous avez besoin de l'`id` :
1. Export the parent records from Twenty
2. The export includes the `id` column
3. Use these IDs in your child records file
1. Exportez les enregistrements parents depuis Twenty
2. L'export comprend la colonne `id`
3. Utilisez ces identifiants dans votre fichier d'enregistrements enfants
## Step 4: Verify the Relation Field Exists
## Étape 4 : Vérifier que le champ de relation existe
Before importing, ensure the relation field exists between your objects.
Avant l'importation, assurez-vous que le champ de relation existe entre vos objets.
**To check or create:**
**Pour vérifier ou créer :**
1. Go to **Settings → Data Model**
2. Select your child object (e.g., People)
3. Look for a relation field pointing to the parent (e.g., Company)
4. If it doesn't exist, create it:
* Click **+ Add field**
* Select **Relation** type
* Choose the parent object
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez votre objet enfant (par ex., Personnes)
3. Recherchez un champ de relation pointant vers le parent (par ex., Entreprise)
4. S'il n'existe pas, créez-le :
* Cliquez sur **+ Add field**
* Sélectionnez le type **Relation**
* Choisissez l'objet parent
## Step 5: Prepare Your CSV File
## Étape 5 : Préparer votre fichier CSV
Add a column to your child CSV that references the parent using its unique identifier.
Ajoutez une colonne à votre CSV enfant qui référence le parent en utilisant son identifiant unique.
### Example: People Linking to Companies
### Exemple : Personnes liées aux Entreprises
**Your People CSV:**
**Votre CSV Personnes :**
```csv
firstName,lastName,email,jobTitle,companyDomain
@@ -106,66 +106,66 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
The `companyDomain` column references the Company's domain.
La colonne `companyDomain` référence le domaine de l'Entreprise.
### Format Requirements
### Exigences de format
| Identifier | Format | Example |
| ---------- | -------------- | -------------------------------------- |
| Domain | URL format | `https://acme.com` |
| Email | Standard email | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
| Identifiant | Format | Exemple |
| ----------- | ----------------------- | -------------------------------------- |
| Domaine | Format d'URL | `https://acme.com` |
| E-mail | Adresse e-mail standard | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**Domain format matters!**
**Le format du domaine est important !**
Use `https://domain.com` (not just `domain.com`). This matches how Twenty stores Company domains and prevents matching errors.
Utilisez `https://domain.com` (et non simplement `domain.com`). Cela correspond à la manière dont Twenty stocke les domaines des Entreprises et évite les erreurs d'association.
</Warning>
### Important Rules
### Règles importantes
1. **Exact match required** — the value must exactly match the parent record
2. **Map only ONE unique identifier** — don't include both `companyId` AND `companyDomain`
3. **Case sensitive** — `Acme.com` ≠ `acme.com`
1. **Correspondance exacte requise** — la valeur doit correspondre exactement à l'enregistrement parent
2. **N'associez qu'UN SEUL identifiant unique** — n'incluez pas à la fois `companyId` ET `companyDomain`
3. **Sensible à la casse** — `Acme.com` ≠ `acme.com`
## Step 6: Upload and Map the Relation
## Étape 6 : Téléverser et associer la relation
1. Navigate to the child object (e.g., People)
2. Click **⋮** → **Import records**
3. Upload your CSV file
4. In the field mapping step:
* Find your relation column (e.g., `companyDomain`)
* Map it to the **Company** relation field
5. Complete the remaining mapping
6. Review errors and confirm
1. Accédez à l'objet enfant (par ex., Personnes)
2. Cliquez sur **⋮** → **Importer des enregistrements**
3. Téléversez votre fichier CSV
4. Lors de l'étape de correspondance des champs :
* Trouvez votre colonne de relation (par ex., `companyDomain`)
* Associez-la au champ de relation **Entreprise**
5. Complétez les correspondances restantes
6. Passez en revue les erreurs et confirmez
Twenty will automatically link each child record to the matching parent.
Twenty liera automatiquement chaque enregistrement enfant au parent correspondant.
## Step 7: Verify the Import
## Étape 7 : Vérifier l'importation
After importing:
Après l'importation :
1. Open a few child records (e.g., People)
2. Verify the relation field shows the correct parent (e.g., Company)
3. Open a parent record and check the related records section
1. Ouvrez quelques enregistrements enfants (par ex., Personnes)
2. Vérifiez que le champ de relation affiche le parent correct (par ex., Entreprise)
3. Ouvrez un enregistrement parent et vérifiez la section des enregistrements liés
## Common Mistakes to Avoid
## Erreurs courantes à éviter
| Mistake | Problem | Solution |
| -------------------------- | -------------------------------------------------- | ------------------------------------------------------- |
| **Wrong import order** | Importing People before Companies | Always import parents first, then children |
| **Wrong domain format** | Using `acme.com` instead of `https://acme.com` | Use full URL format with `https://` |
| **Multiple unique fields** | Mapping both `companyId` AND `companyDomain` | Map only ONE unique identifier |
| **Missing relation field** | The relation field doesn't exist in the data model | Create it in **Settings → Data Model** before importing |
| **Non-existent records** | The parent record doesn't exist in Twenty | Import parent records first, or check for typos |
| **Case mismatch** | `Acme.com` in file but `acme.com` in Twenty | Ensure exact case matching |
| Erreur | Problème | Solution |
| ------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------------ |
| **Mauvais ordre d'import** | Importer des Personnes avant des Entreprises | Importez toujours les parents d'abord, puis les enfants |
| **Mauvais format de domaine** | Utiliser `acme.com` au lieu de `https://acme.com` | Utilisez le format d'URL complet avec `https://` |
| **Plusieurs champs uniques** | Associer à la fois `companyId` ET `companyDomain` | N'associez qu'UN SEUL identifiant unique |
| **Champ de relation manquant** | Le champ de relation n'existe pas dans le modèle de données | Créez-le dans **Paramètres → Modèle de données** avant l'importation |
| **Enregistrements inexistants** | L'enregistrement parent n'existe pas dans Twenty | Importez d'abord les enregistrements parents, ou vérifiez les fautes de frappe |
| **Incohérence de casse** | `Acme.com` dans le fichier mais `acme.com` dans Twenty | Assurez une correspondance exacte de la casse |
## Linking to Workspace Members
## Liaison aux membres de l'espace de travail
When linking to Workspace Members (your team):
Lors de la liaison à des membres de l'espace de travail (votre équipe) :
* Use their **email address**, not their name
* Example: `owner@yourcompany.com`, not "John Smith"
* Utilisez leur **adresse e-mail**, pas leur nom
* Exemple : `owner@yourcompany.com`, pas "John Smith"
```csv
taskName,assignedTo
@@ -176,53 +176,53 @@ Review proposal,jane@yourcompany.com
## FAQ
<AccordionGroup>
<Accordion title="What if my parent record doesn't have a domain or email?">
You have two options:
<Accordion title="Que faire si mon enregistrement parent n'a pas de domaine ni d'e-mail ?">
Vous avez deux options :
1. Use the Twenty `id` (export parent records to get their IDs)
2. Create a custom unique field in your data model to store an external ID from your previous system
1. Utilisez l'`id` Twenty (exportez les enregistrements parents pour obtenir leurs identifiants)
2. Créez un champ unique personnalisé dans votre modèle de données pour stocker un identifiant externe provenant de votre système précédent
</Accordion>
<Accordion title="Can I update relations on existing records?">
Yes! Include the child record's unique identifier (e.g., `email` for People) and the new relation value. The import will update the relation.
<Accordion title="Puis-je mettre à jour les relations sur des enregistrements existants ?">
Oui! Incluez l'identifiant unique de l'enregistrement enfant (par ex., `email` pour les Personnes) ainsi que la nouvelle valeur de relation. L'import mettra à jour la relation.
</Accordion>
<Accordion title="Can I import Many-to-Many relationships?">
Many-to-Many relations are not yet supported for import. This is planned for H1 2026.
<Accordion title="Puis-je importer des relations plusieurs-à-plusieurs ?">
Les relations plusieurs-à-plusieurs ne sont pas encore prises en charge pour l'importation. C'est prévu pour S1 2026.
</Accordion>
<Accordion title="Can I link to multiple object types (like Notes to People AND Companies)?">
Relations pointing to multiple object types are not yet supported for import/export. This is on our roadmap.
<Accordion title="Puis-je lier à plusieurs types d'objet (comme des Notes à des Personnes ET à des Entreprises) ?">
Les relations pointant vers plusieurs types d'objet ne sont pas encore prises en charge pour l'import/export. C'est sur notre feuille de route.
</Accordion>
<Accordion title="What happens if a parent record doesn't exist?">
The import will show an error for that row. You can either:
<Accordion title="Que se passe-t-il si un enregistrement parent n'existe pas ?">
L'import affichera une erreur pour cette ligne. Vous pouvez :
* Import the parent record first, then re-import
* Fix the reference value
* Remove the row from import
* Importez d'abord l'enregistrement parent, puis réimportez
* Corrigez la valeur de référence
* Supprimez la ligne de l'import
</Accordion>
<Accordion title="Why is my relation not linking correctly?">
Common causes:
<Accordion title="Pourquoi ma relation ne se lie-t-elle pas correctement ?">
Causes courantes :
* Wrong format (use `https://domain.com` for domains)
* Case mismatch (check exact spelling)
* Parent doesn't exist (import parents first)
* Mapping multiple identifiers (use only one)
* Mauvais format (utilisez `https://domain.com` pour les domaines)
* Incohérence de casse (vérifiez l'orthographe exacte)
* Le parent n'existe pas (importez d'abord les parents)
* Association de plusieurs identifiants (n'en utilisez qu'un seul)
</Accordion>
</AccordionGroup>
<Warning>
**Remember: Soft-deleted records count toward uniqueness.**
**Rappel : Les enregistrements supprimés de façon logique comptent pour l'unicité.**
If you're getting "not found" errors but the record seems to exist, check Command Menu → See deleted records. The parent may have been soft-deleted.
Si vous obtenez des erreurs "introuvable" mais que l'enregistrement semble exister, vérifiez le menu de commande → Voir les enregistrements supprimés. Le parent a peut-être été supprimé de façon logique.
</Warning>
## Troubleshooting
## Résolution des problèmes
Having issues? Check:
Vous rencontrez des problèmes ? Consultez :
* [How to Fix Import Errors](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Import Relations Capabilities](/l/fr/user-guide/data-migration/capabilities/import-relations)
* [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Comment corriger les erreurs d'import](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Fonctionnalités d'import des relations](/l/fr/user-guide/data-migration/capabilities/import-relations)
* [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
@@ -1,133 +1,133 @@
---
title: Migrating from Other CRMs
description: Step-by-step guide to migrate your data from any CRM to Twenty.
title: Migration depuis d'autres CRM
description: Guide pas à pas pour migrer vos données de n'importe quel CRM vers Twenty.
---
## Overview
## Vue d'ensemble
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
Ce guide vous accompagne pour migrer vos données depuis n'importe quel CRM vers Twenty. Le processus consiste à auditer vos données, à préparer votre espace de travail sur Twenty, à exporter depuis votre système actuel et à importer dans Twenty.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Les vues, les flux de travail et les autorisations doivent être recréés manuellement après la migration. Prévoyez du temps pour ce travail de configuration.</Note>
## Step 1: Audit Your Current Data
## Étape 1 : Auditez vos données actuelles
Migration is an opportunity for a fresh start. Don't bring over clutter.
La migration est une occasion de repartir sur de bonnes bases. N'importez pas de données superflues.
**What to keep:**
**À conserver :**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* Contacts et entreprises actifs
* Opportunités et affaires ouvertes
* Notes et activités importantes
* Champs personnalisés que vous utilisez réellement
**What to leave behind:**
**À laisser de côté :**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* Contacts obsolètes (aucune activité depuis plus de 2 ans)
* Doublons
* Données de test
* Champs personnalisés inutilisés
## Step 2: Map Your Data Model
## Étape 2 : Cartographiez votre modèle de données
Create a mapping document between your current CRM and Twenty:
Créez un document de correspondance entre votre CRM actuel et Twenty :
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Votre CRM | Twenty |
| --------------------- | ---------------------- |
| Compte / Organisation | **Entreprise** |
| Contact / Personne | **Personnes** |
| Affaire / Opportunité | **Opportunité** |
| Activité | **Tâche** ou **Note** |
| Objet personnalisé | **Objet personnalisé** |
**For each field, document:**
**Pour chaque champ, documentez :**
* The source field name
* The target Twenty field
* Any format transformations needed (dates, phone numbers, etc.)
* Le nom du champ source
* Le champ Twenty cible
* Toute transformation de format nécessaire (dates, numéros de téléphone, etc.)
<Note>Keep this mapping document handy during import—you'll reference it when mapping columns.</Note>
<Note>Gardez ce document de mappage à portée de main pendant l'importation — vous vous y référerez lors de la mise en correspondance des colonnes.</Note>
## Step 3: Set Up Your Twenty Workspace
## Étape 3 : Configurez votre espace de travail Twenty
Before importing data, prepare your Twenty workspace:
Avant d'importer des données, préparez votre espace de travail Twenty :
### Create Custom Objects and Fields
### Créez des objets et des champs personnalisés
1. Go to **Settings → Data Model**
2. Create any custom objects you need
3. Add custom fields to standard and custom objects
4. Configure field settings (unique, required, select options, etc.)
1. Allez dans **Paramètres → Modèle de données**
2. Créez tous les objets personnalisés dont vous avez besoin
3. Ajoutez des champs personnalisés aux objets standard et personnalisés
4. Configurez les paramètres des champs (unique, obligatoire, options de sélection, etc.)
<Warning>
**Fields must exist before import.**
**Les champs doivent exister avant l'importation.**
The CSV import creates records, not fields. Create all custom fields in Settings → Data Model before importing.
L'import CSV crée des enregistrements, pas des champs. Créez tous les champs personnalisés dans **Paramètres → Modèle de données** avant l'importation.
</Warning>
### Invite Your Team
### Invitez votre équipe
<Warning>
**Invite users BEFORE importing data.**
**Invitez les utilisateurs AVANT d'importer des données.**
If your data includes user references (Account Owner, Assignee, etc.), those users must exist in Twenty before import. Otherwise, those relations cannot be mapped.
Si vos données incluent des références à des utilisateurs (propriétaire du compte, assigné, etc.), ces utilisateurs doivent exister dans Twenty avant l'importation. Sinon, ces relations ne pourront pas être mises en correspondance.
</Warning>
1. Go to **Settings → Members**
2. Invite all team members
3. **Wait for everyone to accept** their invitation
4. Verify all users appear in your Members list
1. Allez dans **Paramètres → Membres**
2. Invitez tous les membres de l'équipe
3. **Attendez que tout le monde accepte** son invitation
4. Vérifiez que tous les utilisateurs apparaissent dans votre liste des membres
## Step 4: Export from Your Current CRM
## Étape 4 : Exportez depuis votre CRM actuel
Export your data from your current CRM:
Exportez vos données depuis votre CRM actuel :
1. Look for an **Export** function (usually under Settings, Data Management, or Admin)
2. Export to **CSV format** when possible
3. Export each object type separately (Companies, Contacts, Deals, etc.)
4. Include all fields you want to migrate
1. Recherchez une fonction **Export** (généralement dans Paramètres, Gestion des données ou Admin)
2. Exportez au **format CSV** lorsque c'est possible
3. Exportez chaque type d'objet séparément (Entreprises, Contacts, Affaires, etc.)
4. Incluez tous les champs que vous souhaitez migrer
**Export these objects (in this order for reference):**
**Exportez ces objets (dans cet ordre à titre de référence) :**
1. Companies / Accounts / Organizations
2. Contacts / People
3. Deals / Opportunities
4. Notes and Activities
5. Custom objects
1. Entreprises / Comptes / Organisations
2. Contacts / Personnes
3. Affaires / Opportunités
4. Notes et activités
5. Objets personnalisés
## Step 5: Clean and Format Your Data
## Étape 5 : Nettoyez et mettez en forme vos données
Open each exported CSV in a spreadsheet application and prepare it for Twenty.
Ouvrez chaque CSV exporté dans une application de tableur et préparez-le pour Twenty.
### Remove Duplicates
### Supprimez les doublons
1. Sort by the unique field (email for People, domain for Companies)
2. Remove or merge duplicate rows
3. Verify no duplicates exist in Twenty already
1. Triez par le champ unique (e-mail pour les Personnes, domaine pour les Entreprises)
2. Supprimez ou fusionnez les lignes en double
3. Vérifiez qu'il n'existe pas déjà de doublons dans Twenty
### Format Fields Correctly
### Formatez correctement les champs
| Field Type | Required Format |
| ----------------- | ------------------------------------------------- |
| **Domain** | `https://domain.com` |
| **Email** | `name@domain.com` (must be unique) |
| **Date** | `YYYY-MM-DD` |
| **Phone** | Three columns: Number, Country Code, Calling Code |
| **Boolean** | `TRUE` or `FALSE` (uppercase) |
| **Select fields** | Use API names, not display labels |
| Type de champ | Format requis |
| ----------------------- | ----------------------------------------------------- |
| **Domaine** | `https://domain.com` |
| **Email** | `name@domain.com` (doit être unique) |
| **Date** | `YYYY-MM-DD` |
| **Téléphone** | Trois colonnes : numéro, code pays, indicatif d'appel |
| **Booléen** | `TRUE` ou `FALSE` (majuscules) |
| **Champs de sélection** | Utilisez les noms d'API, pas les libellés d'affichage |
<Warning>
**Domain format is critical.**
**Le format du domaine est critique.**
Use `https://domain.com` (not `domain.com` or `www.domain.com`). This matches Twenty's format and prevents duplicates when you connect email/calendar sync.
Utilisez `https://domain.com` (pas `domain.com` ni `www.domain.com`). Cela correspond au format de Twenty et évite les doublons lorsque vous connectez la synchronisation e-mail/calendrier.
</Warning>
See [How to Prepare Your CSV Files](/l/fr/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting requirements for all field types.
Voir [Comment préparer vos fichiers CSV](/l/fr/user-guide/data-migration/how-tos/prepare-your-csv-files) pour connaître les exigences complètes de formatage pour tous les types de champs.
### Add Relation Columns
### Ajoutez des colonnes de relation
To link records (e.g., People to Companies), add a column with the parent's unique identifier.
Pour lier des enregistrements (par exemple, des Personnes à des Entreprises), ajoutez une colonne avec l'identifiant unique de l'entité parente.
**Example: People CSV with Company link**
**Exemple : CSV Personnes avec lien vers l'Entreprise**
```csv
firstName,lastName,email,companyDomain
@@ -135,159 +135,159 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
See [How to Import Relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for detailed instructions on linking records.
Voir [Comment importer des relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) pour des instructions détaillées sur la liaison des enregistrements.
### Update User References
### Mettez à jour les références utilisateur
If your data includes user assignments (Owner, Assignee):
Si vos données incluent des attributions d'utilisateur (propriétaire, assigné) :
1. Add a column with the **user's email** (not just their ID from the old system)
2. Use the same email addresses that users used to join your Twenty workspace
1. Ajoutez une colonne avec l'**e-mail de l'utilisateur** (pas seulement son ID de l'ancien système)
2. Utilisez les mêmes adresses e-mail que celles utilisées par les utilisateurs pour rejoindre votre espace de travail Twenty
See [How to Prepare Your CSV Files](/l/fr/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting guide.
Voir [Comment préparer vos fichiers CSV](/l/fr/user-guide/data-migration/how-tos/prepare-your-csv-files) pour un guide de formatage complet.
## Step 6: Import to Twenty
## Étape 6 : Importez dans Twenty
<Warning>
**Import Order Matters!**
**L'ordre d'importation est important !**
Always import in this order:
Importez toujours dans cet ordre :
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies/People)
4. **Notes and Tasks** (link to records)
5. **Custom objects** following their dependencies
1. **Entreprises** d'abord (aucune dépendance)
2. **Personnes** ensuite (liées aux Entreprises)
3. **Opportunités** en troisième (liées aux Entreprises/Personnes)
4. **Notes et tâches** (liées aux enregistrements)
5. **Objets personnalisés** en suivant leurs dépendances
The parent record must exist before you can reference it.
L'enregistrement parent doit exister avant que vous puissiez y faire référence.
</Warning>
### Import Each Object
### Importez chaque objet
For each CSV file, in order:
Pour chaque fichier CSV, dans l'ordre :
1. Navigate to the object in Twenty
2. Click **⋮ → Import records**
3. Upload the CSV file
4. Map columns to fields:
* Map user email columns to the appropriate relation fields
* Map relation columns (like `companyDomain`) to relation fields
5. Review and fix any errors in the UI
6. Confirm the import
7. Verify a few records before proceeding to the next file
1. Accédez à l'objet dans Twenty
2. Cliquez sur **⋮ → Importer des enregistrements**
3. Téléversez le fichier CSV
4. Faites correspondre les colonnes aux champs :
* Faites correspondre les colonnes d'e-mail des utilisateurs aux champs de relation appropriés
* Faites correspondre les colonnes de relation (comme `companyDomain`) aux champs de relation
5. Examinez et corrigez les erreurs éventuelles dans l'interface
6. Confirmez l'importation
7. Vérifiez quelques enregistrements avant de passer au fichier suivant
**Detailed guides:**
**Guides détaillés :**
* [How to Import Companies](/l/fr/user-guide/data-migration/how-tos/import-companies-via-csv)
* [How to Import Contacts](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [How to Import Relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Comment importer des entreprises](/l/fr/user-guide/data-migration/how-tos/import-companies-via-csv)
* [Comment importer des contacts](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Comment importer des relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Step 7: Large Migrations (50,000+ Records)
## Étape 7 : Grandes migrations (50 000+ enregistrements)
For large migrations:
Pour les grandes migrations :
| Volume | Recommended Approach |
| ----------------------- | ----------------------------- |
| Under 10,000 records | Single CSV import |
| 10,000 - 50,000 records | Split into multiple CSV files |
| 50,000+ records | Use the API |
| Volume | Approche recommandée |
| ------------------------------- | ------------------------------------- |
| Moins de 10 000 enregistrements | Importation CSV unique |
| 10 000 - 50 000 enregistrements | Fractionnez en plusieurs fichiers CSV |
| 50 000+ enregistrements | Utilisez l'API |
**For API imports:**
**Pour les importations via l'API :**
* Faster and more reliable for large datasets
* Supports batch operations (up to 60 records per call)
* See [How to Import Data via API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api)
* Plus rapide et plus fiable pour les grands jeux de données
* Prend en charge les opérations par lots (jusqu'à 60 enregistrements par appel)
* Voir [Comment importer des données via l'API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api)
## Step 8: Post-Migration Setup
## Étape 8 : Configuration post-migration
After importing data, complete your workspace configuration:
Après l'importation des données, terminez la configuration de votre espace de travail :
### Recreate Views
### Recréez les vues
* Set up saved views with filters, sorts, and column configurations
* Create any kanban or calendar views you need
* Configurez des vues enregistrées avec des filtres, des tris et des configurations de colonnes
* Créez toutes les vues kanban ou calendrier dont vous avez besoin
### Recreate Workflows
### Recréez les workflows
* Rebuild your automations in **Settings → Workflows**
* Start with the most critical workflows
* Test each one before relying on it
* Recréez vos automatisations dans **Paramètres → Flux de travail**
* Commencez par les flux de travail les plus critiques
* Testez chacun d'eux avant de vous y fier
### Configure Roles and Permissions
### Configurez les rôles et les autorisations
* Set up roles in **Settings → Roles**
* Assign users to appropriate roles
* Configurez les rôles dans **Paramètres → Rôles**
* Affectez les utilisateurs aux rôles appropriés
### Connect Email and Calendar
### Connectez les e-mails et le calendrier
* Each user connects their own account in **Settings → Accounts**
* Twenty will start syncing emails to contact records
* See [Email & Calendar](/l/fr/user-guide/calendar-emails/overview)
* Chaque utilisateur connecte son propre compte dans **Paramètres → Comptes**
* Twenty commencera à synchroniser les e-mails avec les enregistrements de contacts
* Voir [E-mails et calendrier](/l/fr/user-guide/calendar-emails/overview)
### Train Your Team
### Formez votre équipe
* Walk through the new interface together
* Document any team-specific processes
* Parcourez ensemble la nouvelle interface
* Documentez tous les processus spécifiques à l'équipe
## Common Issues and Solutions
## Problèmes Courants et Solutions
| Issue | Cause | Solution |
| ----------------------- | --------------------------- | ------------------------------------------------------------------------------------ |
| **Duplicate errors** | Email/domain already exists | Remove duplicates from file, or include unique identifier to update existing records |
| **Relation not found** | Parent record doesn't exist | Import parent objects first (Companies before People) |
| **Missing fields** | Custom field doesn't exist | Create field in Settings → Data Model before importing |
| **Select field errors** | Using display labels | Use API names (enable Advanced mode in Settings to find them) |
| **User relation empty** | User hasn't accepted invite | Ensure all users accept invitations before importing |
| Problème | Cause | Solution |
| ---------------------------------- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| **Erreurs de doublons** | L'e-mail/le domaine existe déjà | Supprimez les doublons du fichier, ou incluez un identifiant unique pour mettre à jour les enregistrements existants |
| **Relation introuvable** | L'enregistrement parent n'existe pas | Importez d'abord les objets parents (Entreprises avant Personnes) |
| **Champs manquants** | Le champ personnalisé n'existe pas | Créez le champ dans **Paramètres → Modèle de données** avant l'importation |
| **Erreurs de champs de sélection** | Utilisation de libellés d'affichage | Utilisez les noms d'API (activez le mode avancé dans Paramètres pour les trouver) |
| **Relation utilisateur vide** | L'utilisateur n'a pas accepté l'invitation | Assurez-vous que tous les utilisateurs acceptent les invitations avant d'importer |
See [How to Fix Import Errors](/l/fr/user-guide/data-migration/how-tos/fix-import-errors) for detailed troubleshooting steps.
Voir [Comment corriger les erreurs d'importation](/l/fr/user-guide/data-migration/how-tos/fix-import-errors) pour des étapes détaillées de dépannage.
## Post-Migration Checklist
## Liste de vérification post-migration
### Data Integrity
### Intégrité des données
<Check>All records imported (compare counts with source system)</Check>
<Check>Relations working correctly (People linked to Companies)</Check>
<Check>User assignments mapped correctly (Owner, Assignee)</Check>
<Check>Custom fields populated</Check>
<Check>No unexpected duplicates</Check>
<Check>Tous les enregistrements importés (comparez les nombres avec le système source)</Check>
<Check>Relations fonctionnant correctement (Personnes liées aux Entreprises)</Check>
<Check>Attributions utilisateur correctement mises en correspondance (Propriétaire, Assigné)</Check>
<Check>Champs personnalisés renseignés</Check>
<Check>Aucun doublon inattendu</Check>
### Configuration
<Check>Views recreated</Check>
<Check>Workflows recreated and tested</Check>
<Check>Roles and permissions configured</Check>
<Check>Email/calendar sync connected</Check>
<Check>Vues recréées</Check>
<Check>Flux de travail recréés et testés</Check>
<Check>Rôles et autorisations configurés</Check>
<Check>Synchronisation e-mail/calendrier connectée</Check>
### Team Readiness
### Préparation de l'équipe
<Check>Team trained on new system</Check>
<Check>Old CRM access plan decided (keep for reference? When to disable?)</Check>
<Check>Équipe formée au nouveau système</Check>
<Check>Plan d'accès à l'ancien CRM décidé (le conserver comme référence ? Quand le désactiver ?)</Check>
## FAQ
<AccordionGroup>
<Accordion title="Can I migrate workflows automatically?">
Not currently. Workflows must be recreated manually in Twenty.
<Accordion title="Puis-je migrer les flux de travail automatiquement ?">
Pas pour le moment. Les flux de travail doivent être recréés manuellement dans Twenty.
</Accordion>
<Accordion title="What about file attachments?">
File attachments are not included in CSV exports. You'll need to re-upload them manually, migrate via API, or contact our team for assistance.
<Accordion title="Qu'en est-il des pièces jointes ?">
Les pièces jointes ne sont pas incluses dans les exportations CSV. Vous devrez les téléverser à nouveau manuellement, les migrer via l'API ou contacter notre équipe pour obtenir de l'aide.
</Accordion>
<Accordion title="Can I keep both systems running during migration?">
Yes, we recommend keeping your old CRM running until you've verified the migration is complete. Just be careful not to create new data in both places.
<Accordion title="Puis-je garder les deux systèmes actifs pendant la migration ?">
Oui, nous recommandons de garder votre ancien CRM actif jusqu'à ce que vous ayez vérifié que la migration est terminée. Veillez simplement à ne pas créer de nouvelles données aux deux endroits.
</Accordion>
<Accordion title="How long does migration typically take?">
Depends on data volume and complexity. Small migrations (under 10,000 records) can be done in a few hours. Large migrations may take several days including data cleanup and testing.
<Accordion title="Combien de temps la migration prend-elle généralement ?">
Cela dépend du volume et de la complexité des données. Les petites migrations (moins de 10 000 enregistrements) peuvent être effectuées en quelques heures. Les grandes migrations peuvent prendre plusieurs jours, y compris le nettoyage des données et les tests.
</Accordion>
</AccordionGroup>
## Need Help?
## Besoin d'aide ?
For complex migrations or large datasets:
Pour des migrations complexes ou de grands jeux de données :
* **Guided setup:** Book a 4-hour onboarding pack
* **Full migration service:** Our partners can handle the entire migration
* **Configuration guidée :** Réservez un forfait d'intégration de 4 heures
* **Service de migration complet :** Nos partenaires peuvent prendre en charge l'intégralité de la migration
Contact [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/l/fr/user-guide/getting-started/capabilities/implementation-services).
Contactez [contact@twenty.com](mailto:contact@twenty.com) ou découvrez nos [services de mise en œuvre](/l/fr/user-guide/getting-started/capabilities/implementation-services).
@@ -1,171 +1,171 @@
---
title: Migrating from Self-Hosted to Cloud
description: Step-by-step guide to migrate your Twenty self-hosted instance to Twenty Cloud.
title: Migration de l'hébergement local vers le cloud
description: Guide pas à pas pour migrer votre instance Twenty auto-hébergée vers Twenty Cloud.
---
## Overview
## Vue d'ensemble
This guide walks you through migrating your data from a Twenty self-hosted instance to Twenty Cloud. The process involves setting up your cloud workspace, exporting your data, and re-importing it.
Ce guide vous accompagne pour migrer vos données d'une instance Twenty auto-hébergée vers Twenty Cloud. Le processus consiste à configurer votre espace de travail cloud, à exporter vos données, puis à les réimporter.
<Note>Views, workflows, and roles must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Les vues, les flux de travail et les rôles doivent être recréés manuellement après la migration. Prévoyez du temps pour ce travail de configuration.</Note>
## Step 1: Create Your Cloud Workspace
## Étape 1: Créez votre espace de travail cloud
1. Go to [app.twenty.com](https://app.twenty.com) and create a new workspace
2. Complete the initial setup wizard
3. Note your new workspace URL
1. Accédez à [app.twenty.com](https://app.twenty.com) et créez un nouvel espace de travail
2. Terminez l'assistant de configuration initial
3. Notez l'URL de votre nouvel espace de travail
## Step 2: Recreate Your Data Model
## Étape 2: Recréez votre modèle de données
Before importing data, recreate your custom objects and fields:
Avant d'importer des données, recréez vos objets et champs personnalisés:
1. Go to **Settings → Data Model** in your cloud instance
2. Create custom objects that match your self-hosted setup
3. Add custom fields to standard and custom objects
4. Configure field settings (unique, required, etc.)
1. Allez dans **Paramètres → Modèle de données** dans votre instance cloud
2. Créez des objets personnalisés correspondant à votre configuration auto-hébergée
3. Ajoutez des champs personnalisés aux objets standard et personnalisés
4. Configurez les paramètres des champs (unique, obligatoire, etc.)
<Note>Take screenshots of your self-hosted data model for reference, or keep both instances open side by side.</Note>
<Note>Faites des captures d'écran de votre modèle de données auto-hébergé pour référence, ou gardez les deux instances ouvertes côte à côte.</Note>
## Step 3: Invite All Users
## Étape 3: Invitez tous les utilisateurs
<Warning>
**Critical: Invite users BEFORE importing data.**
**Critique: invitez les utilisateurs AVANT d'importer des données.**
Users must accept their invitations before you import any records that reference them (like Account Owner fields). If users don't exist yet, those relations cannot be mapped.
Les utilisateurs doivent accepter leurs invitations avant que vous n'importiez des enregistrements qui les référencent (comme les champs Propriétaire du compte). Si les utilisateurs n'existent pas encore, ces relations ne pourront pas être mises en correspondance.
</Warning>
1. Go to **Settings → Members** in your cloud instance
2. Invite all team members who had accounts on self-hosted
3. **Wait for everyone to accept** their invitation
4. Verify all users appear in your Members list
1. Allez dans **Paramètres → Membres** dans votre instance cloud
2. Invitez tous les membres de l'équipe qui avaient des comptes sur l'instance auto-hébergée
3. **Attendez que tout le monde accepte** son invitation
4. Vérifiez que tous les utilisateurs apparaissent dans votre liste des membres
## Step 4: Export Data from Self-Hosted
## Étape 4: Exportez les données depuis l'instance auto-hébergée
Export each object from your self-hosted instance:
Exportez chaque objet depuis votre instance auto-hébergée:
1. Navigate to each object (Companies, People, Opportunities, etc.)
2. Configure the view to show **all columns** you want to migrate
3. Click **⋮ → Export view**
4. Save each CSV file with a clear name (e.g., `companies-export.csv`)
1. Accédez à chaque objet (Entreprises, Personnes, Opportunités, etc.)
2. Configurez la vue pour afficher **toutes les colonnes** que vous souhaitez migrer
3. Cliquez sur **⋮ → Exporter la vue**
4. Enregistrez chaque fichier CSV avec un nom explicite (par exemple, `companies-export.csv`)
**Export in this order** (for reference when importing):
**Exportez dans cet ordre** (pour référence lors de l'importation):
1. Companies
2. People
3. Opportunities
4. Custom objects (following their dependencies)
5. Tasks, Notes
1. Entreprises
2. Personnes
3. Opportunités
4. Objets personnalisés (en suivant leurs dépendances)
5. Tâches, notes
## Step 5: Update Workspace Member References
## Étape 5 : Mettez à jour les références des membres de l'espace de travail
The exported CSVs contain user IDs from your self-hosted instance. These IDs won't match your cloud instance, so you need to replace them with emails.
Les fichiers CSV exportés contiennent des ID utilisateur provenant de votre instance auto-hébergée. Ces ID ne correspondront pas à votre instance cloud, vous devez donc les remplacer par des adresses e-mail.
**For each CSV file with user references (Owner, Assignee, etc.):**
**Pour chaque fichier CSV contenant des références utilisateur (propriétaire, assigné, etc.):**
1. Open the CSV in a spreadsheet application
2. Add a new column next to each user ID column (e.g., `accountOwnerEmail` next to `accountOwnerId`)
3. Fill in the **email address** of each user
4. You can delete the old ID column or leave it (it will be skipped during import)
1. Ouvrez le CSV dans une application de feuille de calcul
2. Ajoutez une nouvelle colonne à côté de chaque colonne d'ID utilisateur (par exemple, `accountOwnerEmail` à côté de `accountOwnerId`)
3. Renseignez l'**adresse e-mail** de chaque utilisateur
4. Vous pouvez supprimer l'ancienne colonne d'ID ou la laisser (elle sera ignorée lors de l'importation)
**Example:**
**Exemple:**
Before:
Avant:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
After:
Après:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>Use the same email addresses that users used to accept their cloud workspace invitation.</Note>
<Note>Utilisez les mêmes adresses e-mail que celles utilisées par les utilisateurs pour accepter l'invitation à l'espace de travail cloud.</Note>
## Step 6: Plan Your Import Order
## Étape 6: Planifiez l'ordre d'importation
Import files in the correct order to maintain relationships:
Importez les fichiers dans le bon ordre pour conserver les relations:
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies and People)
4. **Custom objects** (following their dependencies)
5. **Tasks and Notes** last (link to other records)
1. **Entreprises** en premier (aucune dépendance)
2. **Personnes** en deuxième (liées aux entreprises)
3. **Opportunités** en troisième (liées aux entreprises et aux personnes)
4. **Objets personnalisés** (en suivant leurs dépendances)
5. **Tâches et notes** en dernier (liées aux autres enregistrements)
See [How to Import Relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for details on maintaining relationships.
Voir [Comment importer des relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) pour plus de détails sur le maintien des relations.
## Step 7: Import to Cloud
## Étape 7: Importez vers le cloud
For each CSV file, in order:
Pour chaque fichier CSV, dans l'ordre:
1. Navigate to the object in your cloud instance
2. Click **⋮ → Import records**
3. Upload the CSV file
4. Map columns to fields:
* Map user email columns to the appropriate relation fields
* Map other columns as usual
5. Review and fix any errors
6. Confirm the import
7. Verify a few records before proceeding to the next file
1. Accédez à l'objet dans votre instance cloud
2. Cliquez sur **⋮ → Importer des enregistrements**
3. Téléversez le fichier CSV
4. Faites correspondre les colonnes aux champs:
* Faites correspondre les colonnes d'e-mail des utilisateurs aux champs de relation appropriés
* Faites correspondre les autres colonnes comme d'habitude
5. Examinez et corrigez les erreurs éventuelles
6. Confirmez l'importation
7. Vérifiez quelques enregistrements avant de passer au fichier suivant
## Step 8: Recreate Configuration
## Étape 8: Recréez la configuration
After importing data, manually recreate:
Après l'importation des données, recréez manuellement:
### Views
### Vues
* Recreate saved views with filters, sorts, and column configurations
* Set up any kanban or calendar views
* Recréez les vues enregistrées avec des filtres, des tris et des configurations de colonnes
* Configurez d'éventuelles vues kanban ou calendrier
### Workflows
### Flux de travail
* Recreate automations in **Settings → Workflows**
* Test each workflow before relying on it
* Recréez les automatisations dans **Paramètres → Flux de travail**
* Testez chaque flux de travail avant de vous y fier
### Roles and Permissions
### Rôles et autorisations
* Configure roles in **Settings → Roles**
* Assign users to appropriate roles
* Configurez les rôles dans **Paramètres → Rôles**
* Affectez les utilisateurs aux rôles appropriés
### Integrations
### Intégrations
* Reconnect email and calendar sync for each user
* Reconfigure any API integrations with new API keys
* Reconnectez la synchronisation e-mail et calendrier pour chaque utilisateur
* Reconfigurez les intégrations API avec de nouvelles clés API
## Post-Migration Checklist
## Liste de vérification post-migration
<Check>All data imported successfully</Check>
<Check>Relations between objects working correctly</Check>
<Check>User assignments (Owner, Assignee) mapped correctly</Check>
<Check>Views recreated</Check>
<Check>Workflows recreated and tested</Check>
<Check>Roles and permissions configured</Check>
<Check>Email/calendar sync reconnected</Check>
<Check>API integrations updated with new keys</Check>
<Check>Toutes les données importées avec succès</Check>
<Check>Relations entre objets fonctionnant correctement</Check>
<Check>Affectations des utilisateurs (propriétaire, assigné) correctement mises en correspondance</Check>
<Check>Vues recréées</Check>
<Check>Flux de travail recréés et testés</Check>
<Check>Rôles et autorisations configurés</Check>
<Check>Synchronisation e-mail/calendrier reconnectée</Check>
<Check>Intégrations API mises à jour avec de nouvelles clés</Check>
## FAQ
<AccordionGroup>
<Accordion title="Can I migrate workflows automatically?">
Not currently. Workflows must be recreated manually in your cloud instance.
<Accordion title="Puis-je migrer les flux de travail automatiquement ?">
Pas pour le moment. Les flux de travail doivent être recréés manuellement dans votre instance cloud.
</Accordion>
<Accordion title="What about file attachments and images?">
File attachments are not included in CSV exports. You'll need to re-upload any attachments manually, migrate them via API or contact our team for assistance with large migrations.
<Accordion title="Qu'en est-il des pièces jointes et des images ?">
Les pièces jointes ne sont pas incluses dans les exportations CSV. Vous devrez téléverser à nouveau les pièces jointes manuellement, les migrer via l'API ou contacter notre équipe pour obtenir de l'aide pour les migrations de grande envergure.
</Accordion>
<Accordion title="Can I keep both instances running during migration?">
Yes, we recommend keeping your self-hosted instance running until you've verified the cloud migration is complete. Just be careful not to create new data in both places.
<Accordion title="Puis-je garder les deux instances actives pendant la migration ?">
Oui, nous vous recommandons de garder votre instance auto-hébergée active jusqu'à ce que vous ayez vérifié que la migration vers le cloud est terminée. Veillez simplement à ne pas créer de nouvelles données aux deux endroits.
</Accordion>
<Accordion title="What if a user hasn't accepted their invitation yet?">
Records referencing that user will fail to import or the relation will be empty. Ensure all users accept invitations before importing data.
<Accordion title="Que se passe-t-il si un utilisateur n'a pas encore accepté son invitation ?">
Les enregistrements faisant référence à cet utilisateur échoueront à l'importation ou la relation sera vide. Assurez-vous que tous les utilisateurs acceptent les invitations avant d'importer des données.
</Accordion>
</AccordionGroup>
## Need Help?
## Besoin d'aide ?
For complex migrations or large datasets, contact us at [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/l/fr/user-guide/getting-started/capabilities/implementation-services).
Pour des migrations complexes ou de grands jeux de données, contactez-nous à [contact@twenty.com](mailto:contact@twenty.com) ou découvrez nos [services de mise en œuvre](/l/fr/user-guide/getting-started/capabilities/implementation-services).
@@ -1,200 +1,200 @@
---
title: Prepare Your CSV Files
description: Complete step-by-step guide to format your data for import into Twenty.
title: Préparez vos fichiers CSV
description: Guide complet étape par étape pour formater vos données en vue de leur importation dans Twenty.
---
## Overview
## Vue d'ensemble
This guide walks you through preparing your CSV file for a successful import. Follow these steps in order to avoid errors.
Ce guide vous explique comment préparer votre fichier CSV pour un import réussi. Suivez ces étapes afin d’éviter les erreurs.
## Step 1: Check File Requirements
## Étape 1 : Vérifiez les exigences du fichier
Before you start, ensure your file meets these requirements:
Avant de commencer, assurez-vous que votre fichier répond à ces exigences :
| Requirement | Details |
| -------------- | ------------------------ |
| **Format** | CSV, XLSX, or XLS |
| **Size limit** | 10,000 records per file |
| **Encoding** | UTF-8 recommended |
| **Structure** | One object type per file |
| Exigence | Détails |
| -------------------- | ---------------------------------- |
| **Format** | CSV, XLSX ou XLS |
| **Limite de taille** | 10 000 enregistrements par fichier |
| **Encodage** | UTF-8 recommandé |
| **Structure** | Un type dobjet par fichier |
<Note>For datasets larger than 10,000 records, split into multiple files or use the [API import](/l/fr/user-guide/data-migration/how-tos/import-data-via-api).</Note>
<Note>Pour les ensembles de données supérieurs à 10 000 enregistrements, divisez-les en plusieurs fichiers ou utilisez l[importation via lAPI](/l/fr/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## Step 2: Download the Sample File
## Étape 2 : Téléchargez le fichier dexemple
**This is the most important step.** The sample file shows you the exact column names and format Twenty expects.
**Cest l’étape la plus importante.** Le fichier dexemple vous indique exactement les noms de colonnes et le format attendus par Twenty.
1. Go to the object view (People, Companies, etc.)
2. Click **⋮** → **Import records**
3. Click **Download sample file**
4. Use this file as your template
1. Accédez à la vue dobjet (Personnes, Entreprises, etc.)
2. Cliquez sur **⋮** → **Importer des enregistrements**
3. Cliquez sur **Télécharger le fichier dexemple**
4. Utilisez ce fichier comme modèle
<Note>**Pro tip:** Export a few existing records instead. This gives you real examples of how data should be formatted, and the column names will map automatically during import.</Note>
<Note>**Astuce pro :** Exportez plutôt quelques enregistrements existants. Cela vous donne des exemples réels de la manière dont les données doivent être formatées, et les noms de colonnes seront mis en correspondance automatiquement lors de limport.</Note>
## Step 3: Remove Duplicate Values
## Étape 3 : Supprimez les valeurs en double
Twenty enforces uniqueness on certain fields. Duplicates will cause import errors.
Twenty impose lunicité sur certains champs. Les doublons provoqueront des erreurs dimport.
| Object | Unique Fields |
| ------------------ | ----------------------------------------- |
| **People** | `id`, `email` |
| **Companies** | `id`, `domain` |
| **Custom objects** | `id`, plus any field you marked as unique |
| Objet | Champs uniques |
| ------------------------ | ------------------------------------------------------- |
| **Personnes** | `id`, `email` |
| **Entreprises** | `id`, `domain` |
| **Objets personnalisés** | `id`, plus tout champ que vous avez marqué comme unique |
**Before importing:**
**Avant limport :**
1. Sort your spreadsheet by the unique field (email or domain)
2. Remove or merge duplicate rows
3. Check for duplicates that already exist in Twenty
1. Triez votre feuille de calcul par le champ unique (email ou domaine)
2. Supprimez ou fusionnez les lignes en double
3. Vérifiez les doublons qui existent déjà dans Twenty
<Warning>**Soft-deleted records count toward uniqueness.** Records in Command Menu → See deleted records will cause duplicate errors. Delete them permanently or restore and update them.</Warning>
<Warning>**Les enregistrements supprimés logiquement comptent pour lunicité.** Les enregistrements dans Command Menu → See deleted records provoqueront des erreurs de doublon. Supprimez-les définitivement ou restaurez-les et mettez-les à jour.</Warning>
## Step 4: Format Each Field Type Correctly
## Étape 4 : Formatez correctement chaque type de champ
Different field types require specific formats. Here's the complete reference:
Différents types de champs nécessitent des formats spécifiques. Voici la référence complète :
### Text Fields
### Champs texte
* No special formatting required
* Leading/trailing spaces are automatically trimmed
* Aucun formatage particulier requis
* Les espaces en début/fin sont automatiquement supprimés
### Email Fields
### Champs e-mail
* Must be valid email format: `name@domain.com`
* Must be unique (no duplicates in file or in Twenty)
* For additional emails, use this format in the **Emails / Additional Emails** column:
* Doit avoir un format de-mail valide : `name@domain.com`
* Doit être unique (aucun doublon dans le fichier ni dans Twenty)
* Pour les e-mails supplémentaires, utilisez ce format dans la colonne **Emails / Additional Emails** :
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Domain Fields
### Champs de domaine
* **Recommended format**: `https://domain.com`
* This matches the format used by mailbox/calendar sync (prevents duplicates)
* Fill both columns:
* **Domain / Domain Label**: `domain.com`
* **Domain / Domain URL**: `https://domain.com`
* Must be unique within your file and in Twenty
* **Format recommandé** : `https://domain.com`
* Cela correspond au format utilisé par la synchronisation boîte mail/calendrier (évite les doublons)
* Renseignez les deux colonnes :
* **Domain / Domain Label** : `domain.com`
* **Domain / Domain URL** : `https://domain.com`
* Doit être unique dans votre fichier et dans Twenty
### Phone Fields
### Champs de téléphone
Phone is a **nested field** requiring multiple columns:
Le téléphone est un **champ imbriqué** qui nécessite plusieurs colonnes :
| Column | Example |
| Colonne | Exemple |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Address Fields
### Champs d'adresse
Address is a **nested field** with multiple columns (some can be left empty):
Le champ Adresse est un **champ imbriqué** avec plusieurs colonnes (certaines peuvent être laissées vides):
* **Address / Address 1**: Street address line 1
* **Address / Address 2**: Street address line 2 (optional)
* **Address / City**: City name
* **Address / State**: State or province
* **Address / Country**: Country name
* **Address / Post Code**: Postal/ZIP code
* **Adresse / Adresse 1**: Première ligne de ladresse
* **Adresse / Adresse 2**: Deuxième ligne de ladresse (facultatif)
* **Adresse / Ville**: Nom de la ville
* **Adresse / État**: État ou province
* **Adresse / Pays**: Nom du pays
* **Adresse / Code postal**: Code postal/ZIP
### Date Fields
### Champs de date
Use consistent formatting throughout your file:
Utilisez un format cohérent dans tout votre fichier:
* `YYYY-MM-DD` (recommended): `2024-03-15`
* `YYYY-MM-DD` (recommandé): `2024-03-15`
* `MM/DD/YYYY`: `03/15/2024`
* `DD/MM/YYYY`: `15/03/2024`
* ISO 8601: `2024-03-15T10:30:00Z`
### Number Fields
### Champs numériques
* Numbers only (no text)
* Use period for decimals: `1234.56`
* No thousands separators (not `1,234.56`)
* Uniquement des nombres (pas de texte)
* Utilisez le point pour les décimales: `1234.56`
* Aucun séparateur de milliers (pas `1,234.56`)
### Currency Fields
### Champs de devise
Currency is a **nested field** requiring two columns that **both must be filled**:
La devise est un **champ imbriqué** nécessitant deux colonnes qui doivent **toutes deux être renseignées**:
| Column | Example |
| Colonne | Exemple |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
| **Montant / Montant** | `1234.56` |
| **Montant / Devise** | `USD` |
### Boolean Fields
### Champs booléens
Use uppercase: `TRUE` or `FALSE`
Utilisez des majuscules: `TRUE` ou `FALSE`
<Warning>Lowercase `true` or `false` will not work.</Warning>
<Warning>Les minuscules `true` ou `false` ne fonctionneront pas.</Warning>
### Select Fields
### Champs de sélection
Use the **API name** of the option, not the display label.
Utilisez le **nom dAPI** de loption, et non le libellé affiché.
**How to find API names:**
**Comment trouver les noms dAPI:**
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Copy the API name (e.g., `OPTION_1`, not "Option 1")
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez lobjet et le champ
3. Activez le **mode avancé** (bascule en bas à droite)
4. Copiez le nom dAPI (par ex., `OPTION_1`, pas "Option 1")
<Note>New select options are not created automatically. Add them in **Settings → Data Model** before importing.</Note>
<Note>Les nouvelles options de sélection ne sont pas créées automatiquement. Ajoutez-les dans **Paramètres → Modèle de données** avant limportation.</Note>
### Multi-Select Fields
### Champs à sélection multiple
Use API names in array format:
Utilisez les noms dAPI au format de tableau:
```
["VALUE1","VALUE2"]
```
### Array Fields
### Champs de tableau
Use JSON array format:
Utilisez le format de tableau JSON:
```
["value1","value2"]
```
### Rating Fields
### Champs d’évaluation
Use the format: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, or `RATING_5`
Utilisez le format: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4` ou `RATING_5`
### Links/URL Fields
### Champs de liens/URL
Fill both columns:
Renseignez les deux colonnes:
* **Links / Link Label**: `Twenty`
* **Links / Link URL**: `https://twenty.com`
* **Liens / Libellé du lien**: `Twenty`
* **Liens / URL du lien**: `https://twenty.com`
For secondary links, use the **Links / Secondary Links** column:
Pour les liens secondaires, utilisez la colonne **Liens / Liens secondaires**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### JSON Fields
### Champs JSON
Use valid JSON format:
Utilisez un format JSON valide:
```
{"key":"value","key2":"value2"}
```
### ID Fields
### Champs dID
* **Optional**: Twenty auto-generates IDs if not provided
* **Format**: UUID (e.g., `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Use case**: Include ID to update existing records instead of creating new ones
* **Optionnel**: Twenty génère automatiquement des ID sils ne sont pas fournis
* **Format**: UUID (par ex. `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Cas dusage**: Incluez lID pour mettre à jour des enregistrements existants au lieu den créer de nouveaux
## Step 5: Add Relation Columns (If Linking Records)
## Étape 5: Ajouter des colonnes de relation (si vous liez des enregistrements)
To link records to other objects (e.g., People to Companies), add a column with the unique identifier of the related record.
Pour lier des enregistrements à dautres objets (par ex., Personnes à Entreprises), ajoutez une colonne contenant lidentifiant unique de lenregistrement associé.
**Example**: Linking People to Companies
**Exemple**: Lier des Personnes à des Entreprises
Add a column to your People CSV:
Ajoutez une colonne à votre CSV Personnes:
```
firstName,lastName,email,companyDomain
@@ -202,69 +202,69 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important rules for relations:**
**Règles importantes pour les relations:**
* The parent record must already exist in Twenty
* Use the **Domain URL** format (`https://domain.com`), not the label
* Map only ONE unique identifier (don't include both `companyId` AND `companyDomain`)
* For Workspace Members, use their **email** (not name)
* Lenregistrement parent doit déjà exister dans Twenty
* Utilisez le format **URL de domaine** (`https://domain.com`), pas le libel
* Associez UN SEUL identifiant unique (nincluez pas à la fois `companyId` ET `companyDomain`)
* Pour les membres de lespace de travail, utilisez leur **adresse e-mail** (et non le nom)
<Warning>
**Import Order Matters!**
**Lordre dimportation est important !**
Import the "one" side before the "many" side:
Importez le côté « un » avant le côté « plusieurs »:
1. **Companies** first
2. **People** second (with company reference)
3. **Opportunities** third
1. **Entreprises** dabord
2. **Personnes** ensuite (avec référence à lentreprise)
3. **Opportunités** en troisième
The parent record must exist before you can reference it.
Lenregistrement parent doit exister avant que vous puissiez y faire référence.
</Warning>
See [How to Import Relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for detailed instructions.
Consultez [Comment importer des relations](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) pour des instructions détaillées.
## Step 6: Ensure Fields Exist in Twenty
## Étape 6: Vérifiez que les champs existent dans Twenty
The import creates **records**, not **fields**. All fields you want to import must already exist in your data model.
Limport crée des **enregistrements**, pas des **champs**. Tous les champs que vous souhaitez importer doivent déjà exister dans votre modèle de données.
**Before importing:**
**Avant limportation:**
1. Go to **Settings → Data Model**
2. Select your object
3. Create any custom fields you need
4. Note the exact field names (they must match your column headers)
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez votre objet
3. Créez les champs personnalisés dont vous avez besoin
4. Notez les noms de champs exacts (ils doivent correspondre aux en-têtes de vos colonnes)
## Step 7: Final Checklist
## Étape 7: Liste de contrôle finale
Before uploading your file, verify:
Avant de téléverser votre fichier, vérifiez:
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>Encoding is UTF-8</Check>
<Check>No duplicate emails (for People) or domains (for Companies)</Check>
<Check>Dates use consistent format throughout</Check>
<Check>Domains use `https://domain.com` format</Check>
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Le fichier est au format CSV, XLSX ou XLS</Check>
<Check>Le fichier contient moins de 10 000 enregistrements</Check>
<Check>Lencodage est UTF-8</Check>
<Check>Aucune adresse e-mail en double (pour les Personnes) ni domaine en double (pour les Entreprises)</Check>
<Check>Les dates utilisent un format cohérent partout</Check>
<Check>Les domaines utilisent le format `https://domain.com`</Check>
<Check>Les champs booléens utilisent `TRUE` ou `FALSE` (majuscules)</Check>
<Check>Les champs de sélection utilisent les noms dAPI, pas les libellés affichés</Check>
<Check>Tous les champs personnalisés existent dans Paramètres → Modèle de données</Check>
<Check>Enregistrements parents importés avant les enregistrements enfants</Check>
<Check>Les colonnes de relation font référence à des enregistrements existants</Check>
## Common Mistakes to Avoid
## Erreurs courantes à éviter
| Mistake | Solution |
| -------------------------------------------- | ------------------------------------- |
| Using `true` instead of `TRUE` | Boolean values must be uppercase |
| Using display labels for Select fields | Find and use API names in Settings |
| Importing People before Companies | Always import parent objects first |
| Missing currency code for Currency fields | Fill both Amount and Currency columns |
| Wrong domain format | Use `https://domain.com` consistently |
| Mapping multiple unique fields for relations | Map only ONE (domain OR id, not both) |
| Erreur | Solution |
| ----------------------------------------------------------- | ----------------------------------------------------- |
| Utiliser `true` au lieu de `TRUE` | Les valeurs booléennes doivent être en majuscules |
| Utiliser des libellés affichés pour les champs de sélection | Recherchez et utilisez les noms dAPI dans Paramètres |
| Importer les Personnes avant les Entreprises | Importez toujours dabord les objets parents |
| Code de devise manquant pour les champs de devise | Renseignez les colonnes Montant et Devise |
| Format de domaine incorrect | Utilisez systématiquement `https://domain.com` |
| Associer plusieurs champs uniques pour les relations | Nassociez quUN SEUL (domaine OU ID, pas les deux) |
## Next Steps
## Prochaines étapes
Your file is ready! Now:
Votre fichier est prêt ! Maintenant:
* [Import Companies](/l/fr/user-guide/data-migration/how-tos/import-companies-via-csv) (import these first)
* [Import Contacts](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Fix any import errors](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Importer des entreprises](/l/fr/user-guide/data-migration/how-tos/import-companies-via-csv) (importez-les dabord)
* [Importer des contacts](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Corriger les erreurs dimportation](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: Mettre à jour des enregistrements existants via l'importation
description: Guide complet étape par étape pour mettre à jour en masse des enregistrements à l'aide de l'importation CSV.
---
## Overview
## Vue d'ensemble
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Besoin de mettre à jour de nombreux enregistrements en une seule fois ? Au lieu de les modifier un par un, utilisez l'importation CSV pour mettre à jour en masse les enregistrements existants.
**Use cases:**
**Cas d'utilisation :**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Mettre à jour les intitulés de poste pour plusieurs personnes
* Modifier les informations d'entreprise en masse
* Ajouter des données à de nouveaux champs personnalisés
* Corriger des erreurs de données sur de nombreux enregistrements
## How It Works
## Comment ça marche
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Lorsque vous importez un fichier contenant un **identifiant unique** qui correspond à un enregistrement existant, Twenty met à jour cet enregistrement au lieu de créer un doublon.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Si l'identifiant unique... | Twenty va... |
| --------------------------------------- | ------------------------------------------------------------------------------- |
| Correspond à un enregistrement existant | **Mettre à jour** l'enregistrement existant |
| Ne correspond à aucun enregistrement | **Créer** un nouvel enregistrement |
| Est absent de votre fichier | **Créer** un nouvel enregistrement (avec un identifiant généré automatiquement) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**Les champs à sélection multiple sont écrasés, pas fusionnés.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Si un enregistrement a `Option A` et `Option B` sélectionnées et que vous importez `["Option C"]`, l'enregistrement n'aura plus que `Option C` après l'importation. L'importation remplace toutes les sélections précédentes — elle ne les complète pas.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Pour conserver les valeurs existantes, incluez-les toutes dans votre importation : `["Option A","Option B","Option C"]`
</Warning>
## Step 1: Export Your Current Data
## Étape 1 : Exporter vos données actuelles
First, export the records you want to update:
Commencez par exporter les enregistrements que vous souhaitez mettre à jour :
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Accédez à l'objet (Personnes, Entreprises, etc.)
2. **Ajoutez les colonnes dont vous avez besoin** — cliquez sur **Options → Champs** pour afficher les champs que vous souhaitez mettre à jour
3. **Filtrez si nécessaire** — réduisez la vue aux seuls enregistrements que vous souhaitez mettre à jour
4. Cliquez sur **⋮** → **Exporter la vue**
5. Enregistrez le fichier CSV
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**Pourquoi exporter d'abord ?** Le fichier exporté a le bon format, inclut des identifiants uniques et se met automatiquement en correspondance lors de l'importation.</Note>
### What Gets Exported
### Ce qui est exporté
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Toutes les colonnes visibles dans votre vue actuelle
* Les identifiants uniques de l'enregistrement (`id`, `email`, `domain`)
* Les valeurs de champ actuelles que vous pouvez modifier
## Step 2: Edit the CSV File
## Étape 2 : Modifier le fichier CSV
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Ouvrez le fichier exporté dans votre application de feuille de calcul (Excel, Google Sheets, etc.) :
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Conservez la colonne de l'identifiant unique** — ne supprimez pas `id`, `email` ni `domain`
2. **Mettez à jour les valeurs** dans les colonnes que vous souhaitez modifier
3. **Supprimez les colonnes que vous n'avez pas besoin de mettre à jour** (facultatif, mais plus propre)
4. **Ne modifiez pas les valeurs des identifiants uniques** — sinon Twenty créera de nouveaux enregistrements
### Example: Updating Job Titles
### Exemple : Mise à jour des intitulés de poste
**Exported file:**
**Fichier exporté :**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**Après vos modifications :**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,63 +80,63 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Ne modifiez pas les valeurs des identifiants uniques.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
Si vous remplacez `john@acme.com` par `john.smith@acme.com`, Twenty créera un nouvel enregistrement au lieu de mettre à jour l'existant.
</Warning>
## Step 3: Import the Updated File
## Étape 3 : Importer le fichier mis à jour
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Accédez à l'objet
2. Cliquez sur **⋮** → **Importer des enregistrements**
3. Téléversez votre fichier CSV modifié
4. **Assurez-vous que l'identifiant unique est mis en correspondance** — vérifiez que `email`, `domain` ou `id` est correctement mis en correspondance
5. Vérifiez les correspondances de champs
6. Recherchez des erreurs
7. Cliquez sur **Confirmer**
Twenty matches records by the unique identifier and updates them with new values.
Twenty fait correspondre les enregistrements via l'identifiant unique et les met à jour avec les nouvelles valeurs.
## Choosing the Right Unique Identifier
## Choisir le bon identifiant unique
| Object | Recommended | Alternative | Notes |
| ------------------ | ---------------- | ----------- | ---------------------------- |
| **People** | `email` | `id` | Email is human-readable |
| **Companies** | `domain` | `id` | Domain is human-readable |
| **Custom objects** | Any unique field | `id` | Use your custom unique field |
| Objet | Recommandé | Alternative | Notes |
| ------------------------ | --------------------------- | ----------- | ------------------------------------------ |
| **Personnes** | `e-mail` | `id` | L'adresse e-mail est lisible par un humain |
| **Entreprises** | `domaine` | `id` | Le domaine est lisible par un humain |
| **Objets personnalisés** | N'importe quel champ unique | `id` | Utilisez votre champ unique personnalisé |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**N'utilisez qu'UN SEUL identifiant unique.** N'associez pas à la fois `email` ET `id`. Cela peut provoquer de la confusion et des erreurs.</Note>
### Using Custom Unique Fields
### Utiliser des champs uniques personnalisés
If you have a custom field marked as unique (like an external ID from another system):
Si vous avez un champ personnalisé marqué comme unique (comme un ID externe provenant d'un autre système) :
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Incluez ce champ dans votre export et votre import
2. Associez-le lors de l'importation
3. Twenty effectuera la correspondance sur ce champ
## Step 4: Verify the Updates
## Étape 4 : Vérifier les mises à jour
After importing:
Après l'importation :
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Ouvrez quelques enregistrements mis à jour
2. Vérifiez que les modifications ont été appliquées
3. Vérifiez qu'aucun enregistrement en double n'a été créé
## What About Fields Not in Your File?
## Et les champs qui ne figurent pas dans votre fichier ?
**Fields not included in your import file remain unchanged.**
**Les champs non inclus dans votre fichier d'import restent inchangés.**
| Your file includes... | Result |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Votre fichier inclut... | Résultat |
| ---------------------------- | -------------------------------------------------------------------- |
| `email`, `jobTitle` | Seul `jobTitle` est mis à jour ; les autres champs restent inchangés |
| `email`, `jobTitle`, `phone` | `jobTitle` et `phone` sont mis à jour |
This means you only need to include the fields you want to change (plus the unique identifier).
Cela signifie que vous n'avez besoin d'inclure que les champs que vous souhaitez modifier (plus l'identifiant unique).
## Combining Updates and New Records
## Combiner mises à jour et nouveaux enregistrements
You can update existing records AND create new ones in the same import:
Vous pouvez mettre à jour des enregistrements existants ET en créer de nouveaux dans la même importation :
```csv
email,firstName,lastName,jobTitle
@@ -144,55 +144,55 @@ john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Common Mistakes to Avoid
## Erreurs courantes à éviter
| Mistake | Problem | Result | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Erreur | Problème | Résultat | Solution |
| --------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------- |
| **Modifier l'identifiant unique** | Remplacé `john@acme.com` par `john.smith@acme.com` | Crée un nouvel enregistrement au lieu de mettre à jour | Conservez les identifiants uniques inchangés |
| **Plusieurs champs uniques** | Association de `email` ET `id` | Risques de conflits de correspondance | N'associez qu'UN SEUL identifiant unique |
| **Pas d'identifiant unique** | Le fichier ne contient que `firstName`, `lastName`, `jobTitle` | Toutes les lignes créent de nouveaux enregistrements | Incluez toujours `email`, `domain` ou `id` |
| **Incohérence de casse** | Le fichier contient `John@acme.com` mais Twenty contient `john@acme.com` | Crée un nouvel enregistrement | Exportez depuis Twenty pour obtenir les valeurs exactes |
## FAQ
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Que se passe-t-il si certains enregistrements n'existent pas encore ?">
Les enregistrements avec des identifiants uniques qui ne correspondent à aucun enregistrement existant seront créés comme de nouveaux enregistrements. Cela vous permet de mettre à jour et de créer dans la même importation.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Puis-je effacer/vider la valeur d'un champ ?">
Oui, laissez la cellule vide dans votre CSV. L'importation effacera la valeur de ce champ sur l'enregistrement existant.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="Que se passe-t-il pour les champs que je n'inclus pas dans l'import ?">
Les champs qui ne figurent pas dans votre fichier d'import restent inchangés sur les enregistrements existants. Seuls les champs que vous incluez sont mis à jour.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Yes! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="Puis-je mettre à jour des champs de relation (comme Entreprise) ?">
Oui! Incluez l'identifiant unique de la relation (par ex., `companyDomain`) et associez-le au champ de relation. La relation sera mise à jour.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Comment savoir quels enregistrements seront mis à jour et lesquels seront créés ?">
Lors de l'étape de révision de l'import, Twenty vous indique combien d'enregistrements seront mis à jour ou créés en fonction des correspondances d'identifiants uniques.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Puis-je annuler une mise à jour en masse ?">
Il n'existe pas d'annulation automatique. Nous recommandons d'exporter vos données comme sauvegarde avant d'effectuer des mises à jour en masse.
</Accordion>
</AccordionGroup>
## Best Practices
## Meilleures pratiques
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Exportez d'abord** — commencez toujours à partir d'une exportation pour garantir le bon format
2. **Sauvegardez avant de mettre à jour** — exportez vos données avant d'effectuer des modifications en masse
3. **Testez avec quelques enregistrements** — essayez d'abord de mettre à jour 5 à 10 enregistrements avant d'effectuer un lot important
4. **Utilisez des identifiants lisibles par un humain** — `email` et `domain` sont plus faciles à vérifier que `id`
5. **Incluez uniquement les colonnes nécessaires** — moins de colonnes signifie moins de risques d'erreurs
## Troubleshooting
## Résolution des problèmes
Having issues? Check:
Vous rencontrez des problèmes ? Consultez :
* [How to Fix Import Errors](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/fr/user-guide/data-migration/capabilities/field-mapping)
* [Comment corriger les erreurs d'import](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)
* [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Référence de correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping)
@@ -1,89 +1,89 @@
---
title: Data Migration
description: Import and export your CRM data via CSV files or API.
title: Migration de données},{
description: Importez et exportez vos données CRM via des fichiers CSV ou lAPI.
image: /images/user-guide/import-export-data/cloud.png
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
<Frame>
<img src="/images/user-guide/import-export-data/cloud.png" alt="Data Migration" />
<img src="/images/user-guide/import-export-data/cloud.png" alt="Migration de données" />
</Frame>
## Import Methods
## Méthodes dimport
Twenty supports two main methods for importing data:
Twenty prend en charge deux méthodes principales dimport de données :
| Method | Best For | Volume Limit |
| -------------- | ------------------------------------ | ----------------------- |
| **CSV Import** | Standard migrations, regular updates | 10,000 records per file |
| **API Import** | Large-scale migrations, automation | Unlimited |
| Méthode | Idéal pour | Limite de volume |
| ----------------------- | -------------------------------------------- | ---------------------------------- |
| **Importation CSV** | Migrations standard, mises à jour régulières | 10 000 enregistrements par fichier |
| **Importation via API** | Migrations à grande échelle, automatisation | Illimité |
<Note>For very large datasets (hundreds of thousands of records), use the API. Our [implementation partners](/l/fr/user-guide/getting-started/capabilities/implementation-services) can help run these scripts if needed.</Note>
<Note>Pour des ensembles de données très volumineux (des centaines de milliers denregistrements), utilisez lAPI. Nos [partenaires dimplémentation](/l/fr/user-guide/getting-started/capabilities/implementation-services) peuvent vous aider à exécuter ces scripts si nécessaire.</Note>
## CSV Import Basics
## Principes de base de limport CSV
You can import data for any object using CSV, XLSX, or XLS files. Each file should contain **only one type of object** (e.g., only People records).
Vous pouvez importer des données pour nimporte quel objet à laide de fichiers CSV, XLSX ou XLS. Chaque fichier doit contenir **un seul type dobjet** (par exemple, uniquement des enregistrements Personnes).
<Note>**Fields must exist before import.** Uploading a CSV creates records but does not create fields. If you need custom fields, create them first under **Settings → Data Model**.</Note>
<Note>**Les champs doivent exister avant limport.** Le téléversement dun CSV crée des enregistrements, mais ne crée pas de champs. Si vous avez besoin de champs personnalisés, créez-les dabord dans **Paramètres → Modèle de données**.</Note>
### Steps
### Étapes
1. Navigate to the object where you want to import data
2. Click the **⋮** icon on the top right (this is the Command Menu) and click on **Import records**
3. Download the template file to ensure your data is in the expected format
4. Upload your formatted CSV file
5. Map your columns to Twenty fields
6. Review errors (highlighted in yellow) and fix them, directly editing in the UI
7. Confirm the import
1. Accédez à lobjet dans lequel vous souhaitez importer des données
2. Cliquez sur licône **⋮** en haut à droite (le menu Commande), puis cliquez sur **Importer des enregistrements**
3. Téléchargez le fichier modèle pour garantir que vos données sont au format attendu
4. Téléversez votre fichier CSV formaté
5. Faites correspondre vos colonnes aux champs Twenty
6. Passez en revue les erreurs (surlignées en jaune) et corrigez-les en les modifiant directement dans linterface
7. Confirmez limportation
### Importing relations between objects
### Importer des relations entre objets
You can import relations between objects using the csv import function. You need to reference the related object using a unique field from this object: the `id`, the `email` for People and Workspace Members, the `domain` for companies, any other field set as unique in the data model for any other object.
Vous pouvez importer des relations entre objets à laide de la fonction dimport CSV. Vous devez référencer lobjet lié en utilisant un champ unique de cet objet : l`id`, l`email` pour les Personnes et les membres de lespace de travail, le `domain` pour les entreprises, tout autre champ défini comme unique dans le modèle de données pour tout autre objet.
<Note>**Deleted records count toward uniqueness.** Soft-deleted records (visible under Command Menu → See deleted records) are included in uniqueness checks. If you import a record with the same unique value as a deleted record, the deleted record will be restored.</Note>
<Note>**Les enregistrements supprimés comptent pour lunicité.** Les enregistrements supprimés de façon logique (visibles dans le menu Commande → Voir les enregistrements supprimés) sont inclus dans les vérifications dunicité. Si vous importez un enregistrement ayant la même valeur unique quun enregistrement supprimé, lenregistrement supprimé sera restauré.</Note>
<Warning>
**Import Order Matters!**
**Lordre dimportation est important !**
When importing related objects, upload files in this order:
Lors de limport dobjets liés, téléversez les fichiers dans cet ordre :
1. **Companies** first (the "one" side of relationships)
2. **People** second (linked to companies via companyId)
3. **Opportunities** third (linked to companies/people)
4. **Custom objects** with relations last
1. **Entreprises** dabord (le côté "un" des relations)
2. **Personnes** en second (liées aux entreprises via companyId)
3. **Opportunités** en troisième (liées aux entreprises/personnes)
4. **Objets personnalisés** avec relations en dernier
Why? The "one" side of a one-to-many relationship must exist before you can reference it. For example, the Company record must exist before you import a Person with that company's ID.
Pourquoi ? Le côté "un" dune relation un-à-plusieurs doit exister avant que vous puissiez y faire référence. Par exemple, lenregistrement Entreprise doit exister avant dimporter une Personne avec lID de cette entreprise.
</Warning>
Please refer to [this article](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for a step-by-step guide on how to proceed.
Veuillez consulter [cet article](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) pour un guide étape par étape sur la procédure à suivre.
## Export Data
## Exporter des données
Export your workspace data for backups, reporting, or migration.
Exportez les données de votre espace de travail pour des sauvegardes, des rapports ou des migrations.
### Steps
### Étapes
1. Navigate to the object you want to export
2. Configure the view with the columns you need
3. Click **⋮** → **Export view**
4. Save the CSV file
1. Accédez à lobjet que vous souhaitez exporter
2. Configurez la vue avec les colonnes dont vous avez besoin
3. Cliquez sur **⋮** → **Exporter la vue**
4. Enregistrez le fichier CSV
<Note>**Only visible columns are exported.** The CSV file will only contain the columns displayed in your current view. Add or hide columns before exporting to control what data is included.</Note>
<Note>**Seules les colonnes visibles sont exportées.** Le fichier CSV ne contiendra que les colonnes affichées dans votre vue actuelle. Ajoutez ou masquez des colonnes avant lexportation pour contrôler les données incluses.</Note>
<Note>**Export limits**: Up to 20,000 records per export.</Note>
<Note>**Limites dexportation** : jusqu’à 20 000 enregistrements par export.</Note>
## Permissions
## Autorisations
Data import and export require specific permissions:
Limport et lexport de données nécessitent des autorisations spécifiques :
* **Import**: Requires "Import CSV" permission
* **Export**: Requires "Export CSV" permission
* **Importation** : nécessite lautorisation "Import CSV"
* **Exportation** : nécessite lautorisation "Export CSV"
Contact your workspace admin if you don't have these permissions.
Contactez ladministrateur de votre espace de travail si vous navez pas ces autorisations.
## Next Steps
## Prochaines étapes
* [Prepare your CSV files](/l/fr/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [Import relations between objects](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Import via API for large datasets](/l/fr/user-guide/data-migration/how-tos/import-data-via-api)
* [Préparez vos fichiers CSV](/l/fr/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [Importer des relations entre objets](/l/fr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Importer via API pour de grands ensembles de données](/l/fr/user-guide/data-migration/how-tos/import-data-via-api)