snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
---
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';
## Validation préalable à l'importation
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.
## Comment ça marche
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="Démonstration vidéo" />
## Affichage des erreurs
Les lignes présentant des problèmes sont mises en évidence en **jaune**. Vous pouvez :
* **Modifiez la cellule directement** pour corriger l'erreur
* **Supprimez la ligne** pour l'ignorer complètement
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.
## Types d'erreurs courants
### Valeurs en double
**Cause** : Un champ unique (email, domaine) existe déjà dans Twenty ou apparaît deux fois dans votre fichier.
**Correctif** :
* Modifiez la valeur en double dans l'interface d'importation
* Supprimez l'une des lignes en double
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.
### Format invalide
**Cause** : Les données ne correspondent pas au format attendu (p. ex., email invalide, format de date incorrect).
**Correctif** : Modifiez la cellule pour utiliser le format correct.
Voir [Correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping) pour le format attendu de chaque type de champ.
### Champs obligatoires manquants
**Cause** : Un champ obligatoire est vide.
**Correctif** : Saisissez une valeur dans le champ obligatoire ou supprimez la ligne.
### Relation introuvable
**Cause** : L'enregistrement référencé n'existe pas (p. ex., un domaine d'entreprise qui n'a pas été importé).
**Correctif** :
* Importez d'abord les enregistrements parents
* Ou corrigez la valeur de référence
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.
## Conseils pour réduire les erreurs
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. **Limiter chaque fichier à 10 000 enregistrements**

View File

@@ -0,0 +1,198 @@
---
title: Mappage des champs
description: Comment fonctionne la cartographie des champs pendant l'importation des données.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Comment fonctionne la cartographie des champs
Lorsque vous téléchargez un fichier, 20 analysent vos colonnes et tentent de les faire correspondre aux champs existants.
### Mappage automatique
Vingt tentatives de faire correspondre les colonnes basées sur:
* Noms d'en-tête de colonne (correspondances exactes ou similaires)
* Détection du type de données (dates, chiffres, emails)
* Modèles de champs communs
<Note>**Astuce rapide:** Exporter quelques lignes depuis l'objet que vous voulez importer. Le fichier exporté aura le nom exact des colonnes à 20 attendus, rendant le mappage automatique sans problème pendant l'importation.</Note>
### Options de mappage manuel
Pour chaque colonne, vous pouvez:
* **Mapper à un champ**: Sélectionnez le champ correspondant à 20 dans un menu déroulant
* **Ne pas mapper** : Ignorer entièrement la colonne (les données ne seront pas importées)
<Note>**Les champs doivent exister avant l'importation.** L'importation crée des enregistrements, pas des champs. Créez des champs personnalisés sous **Paramètres → Modèle de données** avant d'importer.</Note>
## Compatibilité du type de champ
Tous les types de champs disponibles dans le Modèle de Données sont pris en charge pour l'importation.
Vous pouvez également importer des valeurs `id` pour assigner un ID spécifique à de nouveaux enregistrements ou mettre à jour les valeurs existantes.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## Exigences du format de données
<Note>**Certains champs ont une syntaxe spéciale.** Nous vous recommandons de télécharger le fichier d'exemple avant de préparer votre importation afin de voir la syntaxe attendue pour chaque type de champ.</Note>
### Champs d'adresse
L'adresse est un champ imbriqué avec plusieurs colonnes. Certains peuvent être laissés vides.
* **Adresse / Adresse 1**: Rue ligne 1
* **Adresse / Adresse 2** : Rue ligne 2
* **Adresse / Ville** : Nom de la Ville
* **Adresse / État** : État ou province
* **Adresse / Pays** : Nom du pays
* **Adresse / Code postal**: Code postal
### Champs de tableau
Utilisez le format suivant :
```
["value1","value2"]
```
### Champs booléens
Utilisez `TRUE` ou `FALSE` (majuscule) - pas `true` ou `false`
### Champs de la devise
La devise est un champ imbriqué avec deux colonnes qui **doivent être remplies**:
* **Montant / Montant** : La valeur numérique (par exemple, `1234.56`)
* **Montant / Devise** : Le code de la devise (par exemple, `USD`, `EUR`)
### Champs de date
Formats pris en charge :
* `YYYY-MM-DD` (recommandé)
* `MM/DD/YYYYY`
* `JJ/MM/YYYY`
* ISO 8601 format
### Champs de domaine
* Il est recommandé d'utiliser le format `https://domain. om` pour éviter de créer des doublons, car c'est le format utilisé pour les entreprises créées par la boîte aux lettres et les synchronisations de calendrier
* Un `label de domaine` et `URL de domaine` peuvent être remplis : la meilleure pratique est de remplir `domain.com` dans l'étiquette et `https://domain.com` dans l'url
* Les domaines doivent être uniques au sein de l'objet Entreprises
* **Les domaines doivent être uniques dans le fichier à importer**
### Champs e-mail
* Doit être un format d'email valide
* Les e-mails doivent être uniques dans l'objet People
* **Les e-mails doivent être uniques dans le fichier à importer**
* Pour les e-mails supplémentaires: utilisez **Emails / Courriel Primaire** pour l'e-mail principal, et **Emails / E-mails Supplémentaires** avec ce format:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Champs ID
Spécifier un `id` pendant l'importation est optionnel. Vingt auto-génère une si elle n'est pas fournie.
Utiliser des cas pour mapper une colonne `id`:
* **Définit un ID spécifique** : Choisissez l'UUID pour les enregistrements nouvellement créés
* **Mettre à jour les enregistrements existants**: Faites correspondre avec les enregistrements existants pour les mettre à jour au lieu de créer des doublons. Dans ce cas, il est recommandé de ne pas cartographier les autres champs uniques: la cartographie d'un seul champ unique garantit une importation plus fluide.
<Note>Si vous fournissez un `id`, il doit être au format UUID (par exemple, `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### Champs JSON
Utiliser un format JSON valide :
```
{"key":"value","key2":"value2"}
```
### Champs de liens
Semblable aux champs de domaine:
* Remplissez à la fois le libellé et les colonnes d'URL : **Liens / URL de liaison** et **Liens / Étiquette de lien**
* Utiliser le format complet de l'URL : `https://example.com`
* Pour les liens secondaires, utilisez la colonne **Liens / Liens secondaires** avec ce format :
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Champs à sélection multiple
Utilisez les **noms de l'API** (pas les libellés d'affichage) dans le format suivant :
```
["VALUE1","VALUE2"]
```
Voir [here](#finding-api-names-for-select-fields) où trouver les noms de l'API.
<Note>Les nouvelles options de sélection ne seront pas créées automatiquement par l'importation. Ils doivent être ajoutés dans **Paramètres → Modèle de données** avant d'importer.</Note>
<Warning>
**Écraser l'import ; il ne l'ajoute pas.**
Si un enregistrement a déjà `VALUE2` et `VALUE3` sélectionnés, et que vous importez `["VALUE1"]`, l'enregistrement n'aura `VALUE1` qu'après l'importation. Les sélections précédentes sont remplacées, non fusionnées.
</Warning>
### Nombre de champs
* Numéros uniquement
* Les décimales utilisent la période: `1234.56`
* Pas de milliers de séparateurs
### Champs du téléphone
Le téléphone est un champ imbriqué avec plusieurs colonnes qui **doivent être remplies**
* **Téléphones / Numéro de téléphone principal**: le numéro de téléphone (par exemple, `4159095555`)
* **Téléphones / Code de pays de téléphone principal**: Code pays (par exemple, `US`)
* **Téléphones / Code d'appel téléphonique principal**: Code d'appel (par exemple, `+1`)
### Champs d'évaluation
Utilisez le format du nom de l'API: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4`, `RATING_5`
### Champs de relation
Veuillez consulter notre article dédié : [Importer des relations entre les objets](/l/fr/user-guide/data-migration/capabilities/import-relations)
### Champs de sélection
Utilisez le **nom de l'API** de l'option (pas l'étiquette d'affichage) :
```
VALUE1
```
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>
### Champs de texte
* Aucun formatage particulier requis
* Les espaces au début et à la fin sont supprimés
## Recherche des noms d'API
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.
### Comment trouver les noms d'API
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="Démonstration vidéo" />

View File

@@ -0,0 +1,48 @@
---
title: Formats de fichiers pris en charge
description: Formats de fichiers pris en charge pour l’importation de données dans Twenty.
---
## Formats pris en charge
Twenty prend en charge trois formats de fichiers pour l’importation :
| Format | Extension | Notes |
| ------------------ | --------- | ------------------------------ |
| **CSV** | .csv | Recommandé, le plus compatible |
| **Excel** | .xlsx | Format Excel moderne |
| **Excel (hérité)** | .xls | Ancien format Excel |
## Exigences relatives aux fichiers
| Exigence | Valeur |
| ---------------------------- | -------------------------------------------------------- |
| **Encodage** | UTF-8 recommandé |
| **Limite d’enregistrements** | 10 000 enregistrements par fichier |
| **Structure** | La première ligne doit contenir les en-têtes de colonnes |
| **Contenu** | Un seul type d’objet par fichier |
## Meilleures pratiques pour les fichiers CSV
* **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, n’utilisez pas "NULL" ni "N/A"
## Meilleures pratiques pour Excel
Lors de l’exportation depuis Excel :
* Supprimez les formules (exportez uniquement les valeurs)
* Supprimez les lignes vides à la fin
* Assurez-vous qu’aucune cellule n’est fusionnée
* Utilisez uniquement la première feuille
## Jeux de données volumineux
Pour les jeux de données de plus de 10 000 enregistrements :
* Divisez en plusieurs fichiers
* Ou utilisez l’[importation via l’API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api) pour un nombre illimité d’enregistrements
<Note>Pour des migrations très volumineuses (plus de 100 000 enregistrements), l’API est nettement plus rapide et plus fiable que les importations CSV.</Note>

View File

@@ -0,0 +1,148 @@
---
title: Importer des relations entre objets
description: Importer des relations entre enregistrements via CSV.
---
## Vue d'ensemble
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>**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>
## Fonctionnement des relations dans Twenty
### Un à plusieurs / Plusieurs à un
Twenty prend en charge des relations standard où un enregistrement est lié à plusieurs autres :
* **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 pouvant pointer vers plusieurs types d'objet
Certaines relations peuvent se connecter à différents types d'objets. Cela fonctionne de deux façons :
**Modèle 1 : De nombreux enregistrements liés chacun à un enregistrement provenant de différents types d'objets**
Plusieurs Notes ou Tâches peuvent chacune être attachées à plusieurs types d'objets à la fois :
* **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
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%'}} />
**Modèle 2 : Un enregistrement recevant des liens de nombreux enregistrements de différents types d'objets**
Un Projet peut recevoir des liens de plusieurs enregistrements provenant de différents types d'objets :
* **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
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>
**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** : 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
C'est sur notre feuille de route.
</Warning>
### Ce qui n'est pas pris en charge aujourd'hui
**Les relations plusieurs à plusieurs** ne sont pas encore disponibles. Par exemple, vous ne pouvez pas actuellement créer une relation où :
* De nombreuses Personnes sont liées à de nombreux Projets
<Note>Beaucoup à de nombreuses relations sont prévues pour H2 2026.</Note>
## Lier des enregistrements lors de l'importation
<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>
### Étape 1 : Identifier les côtés "un" et "plusieurs"
Commencez par déterminer quel objet est du côté "un" et lequel est du côté "plusieurs" de la relation.
**Exemple**:
* **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)
### Étape 2 : Assurez-vous que les enregistrements du côté "un" existent
Avant d'importer le côté "plusieurs", les enregistrements du côté "un" doivent déjà exister dans Twenty.
* 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>L'importation échouera si une référence est faite à un enregistrement inexistant.</Warning>
### Étape 3 : Préparer votre fichier CSV
Ajoutez une colonne dans votre fichier CSV du côté "plusieurs" qui référence l'enregistrement du côté "un".
**Exemple** : Pour un fichier CSV Personnes lié aux Entreprises :
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important** :
* 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
### Étape 4 : Vérifier que le champ de relation existe
Avant de téléverser votre fichier, assurez-vous que le champ de relation existe entre vos objets.
S'il n'existe pas :
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)
### Étape 5 : Téléverser et associer la relation
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
### Champs uniques disponibles pour les relations
| 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>**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>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>**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>
## Règle d'ordre d'importation
<Warning>
**Importez toujours d'abord le côté "un" !**
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
L'enregistrement parent doit exister avant que vous puissiez y faire référence.
</Warning>

View File

@@ -0,0 +1,72 @@
---
title: Contraintes d'unicité
description: Comment Twenty impose l'unicité des données lors de l'importation.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Vue d'ensemble
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.
## Champs uniques par défaut
| Objet | Champs uniques |
| ------------------------ | ---------------------------- |
| **Personnes** | `id`, `email` |
| **Entreprises** | `id`, `domain` |
| **Objets personnalisés** | `id` uniquement (par défaut) |
<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>
## Champs uniques personnalisés
Vous pouvez définir des champs uniques supplémentaires sous **Paramètres → Modèle de données** :
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
### Cas d'utilisation pour les champs uniques personnalisés
* **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>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>
## Comportement de l'importation
### Création de nouveaux enregistrements
Si la valeur d'un champ unique n'existe pas, un nouvel enregistrement est créé.
### Mise à jour des enregistrements existants
Si la valeur d'un champ unique correspond à un enregistrement existant, cet enregistrement est **mis à jour** avec les nouvelles données.
<Warning>Pour **mettre à jour des enregistrements existants**, il est recommandé de **ne faire correspondre qu'un seul champ unique**.</Warning>
### Enregistrements supprimés de manière logique
<Warning>
**Les enregistrements supprimés de manière logique comptent pour l'unicité.**
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>
## Détection des doublons lors de l'importation
Pendant la phase de validation :
* 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="Démonstration vidéo" />
## Meilleures pratiques
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

View File

@@ -0,0 +1,32 @@
---
title: Exporter la FAQ
description: Foire aux questions sur l'exportation des données.
---
<AccordionGroup>
<Accordion title="Pouvons-nous exporter toutes les données de l'espace de travail avant d'annuler, y compris les objets personnalisés, les champs personnalisés, les relations, les notes, les tâches, les opportunités, les pièces jointes, les workflows, les autorisations et l'historique d'audit ?">
Les données de l'espace de travail peuvent être exportées avant l'annulation à certaines exceptions : les tableaux de bord, les workflows et les autorisations doivent être transférés manuellement; les journaux d'audit ne peuvent pas être transférés.
</Accordion>
<Accordion title="Quels éléments ne peuvent actuellement pas être exportés ou migrés ?">
La plupart des éléments peuvent être exportés ou migrés avec quelques exceptions :
* workflows, tableaux de bord et tous les paramètres (clés API, webhooks, journaux d'audit, paramètres de l'utilisateur, etc.) doit être migré manuellement
* les objets et les champs créés par des applications peuvent être migrés en installant cette application dans un autre espace de travail. Ils ne devraient pas être migrés manuellement
* certains enregistrements, comme les versions de workflow et les exécutions de workflow, ne sont pas transférables du tout et devraient être perdus
* certains objets comme les messages et les objets liés au calendrier ne doivent pas être exportés car ils sont créés lorsqu'un compte est connecté et synchronisé périodiquement. Ils seront à nouveau synchronisés une fois que vous aurez connecté votre compte (tant que vous aurez accès à ce compte, si c'est un compte d'un membre de l'équipe qui a quitté votre entreprise, alors ces messages doivent être exportés, sinon ils seront perdus)
</Accordion>
<Accordion title="Existe-t-il un nuage officiel à une procédure de migration autonome ou un service de migration assistée ?">
À l'heure actuelle, il n'existe pas de procédure officielle de migration du nuage à l'auto-hébergement. L'idée générale est de :
* tout d'abord, installez des applications pour introduire des objets et des champs appartenant à des applications
* répliquer les objets personnalisés et les champs ajoutés par les utilisateurs
* utiliser un script avec des clés API ou des outils AI pour migrer toutes les données d'un espace de travail vers un autre
* tous les objets non transférables doivent être migrés manuellement
Sachez quelques choses:
* vous pouvez envoyer jusqu'à 50 demandes par minute sur le plan Pro ou 100 demandes par minute sur le plan de l'organisation avant de toucher une limite de requête/min
* chaque requête API peut avoir jusqu'à 200 enregistrements
* certaines données dans les champs comme Créé par, Activités de la timeline et Mis à jour par seront perdues pendant l'importation et écrasées par le système
</Accordion>
<Accordion title="Les fichiers exportés sont-ils fournis dans des formats ouverts et documentés ?">
Les fichiers exportés dans l'interface utilisateur sont au format Excel, et toutes les requêtes API peuvent être enregistrées au format JSON.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,209 @@
---
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';
## Vue d'ensemble
Exportez les données de votre espace de travail en CSV pour des sauvegardes, des rapports ou des migrations.
**Cas d'utilisation :**
* **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
## Ce que vous devez savoir
### Limites d'exportation
* **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>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/api).</Note>
### Autorisations
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.
## Étape 1 : Accédez à l'objet
Accédez à l'objet que vous souhaitez exporter :
* **People** — pour les contacts
* **Companies** — pour les organisations
* **Opportunities** — pour les affaires
* **Objets personnalisés** — tout objet que vous avez créé
## Étape 2 : Configurez votre vue
**Important :** L'export n'inclut que ce qui est visible dans votre vue actuelle.
### Ajouter/Supprimer des colonnes
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
### Filtrer les enregistrements (optionnel)
Si vous avez seulement besoin d'un sous-ensemble de données :
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
### Trier les enregistrements (optionnel)
1. Cliquez sur l'en-tête d'une colonne pour trier
2. L'export respectera votre ordre de tri
<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>
## Étape 3 : Exportez les données
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
## Ce qui est exporté
| 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 |
### Champs de relation
Les ID de relations ne sont exportés que du côté **"many"** d'une relation :
* **L'export People** inclut une colonne `companyId` (relation People → Company)
* **L'export Companies** n'inclut PAS `peopleIds` (Companies est le côté "one")
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.
## Exporter pour des besoins spécifiques
### Pour les sauvegardes
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)
### Pour le reporting externe
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
### Pour les mises à jour en masse
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)
### Pour la migration
Si vous exportez pour migrer vers un autre système :
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
## Gestion de grands jeux de données (plus de 20 000 enregistrements)
La limite d'export est de 20 000 enregistrements. Pour des jeux de données plus volumineux :
### Option 1 : Exporter par lots
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
**Exemples de filtres pour le traitement par lots :**
* 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 : Utiliser l'API
L'API n'a pas de limite d'enregistrements :
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
Voir : [Documentation de l'API](/l/fr/developers/extend/api)
## Conseils et bonnes pratiques
### Créez des vues d'export
Enregistrez des vues configurées spécifiquement pour les exports :
1. Configurez les colonnes et les filtres
2. Cliquez sur **View options** → **Save as new view**
3. Nommez-la "Export - [Purpose]"
### Sécurisez vos exports
Les fichiers exportés peuvent contenir des données sensibles :
* 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
### À vérifier avant l'export
<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="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="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="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="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="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="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>
## Prochaines étapes
* [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/api) — créez des flux de travail d'exportation personnalisés

View File

@@ -0,0 +1,430 @@
---
title: Corriger les erreurs d'importation
description: Guide de dépannage complet pour résoudre les erreurs d'importation CSV.
---
## Vue d'ensemble
L'importation ne fonctionne pas ? Ce guide vous aide, étape par étape, à identifier et à corriger les erreurs d'importation courantes.
## Comment fonctionne la validation de l'importation
Après avoir téléversé votre fichier et fait la correspondance des colonnes, Twenty valide vos données :
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>**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>
## Dépannage étape par étape
### Étape 1 : Identifier le type d'erreur
Cliquez sur une ligne surlignée pour voir le message d'erreur spécifique. Types d'erreurs courants :
| 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 |
### Étape 2 : Corriger l'erreur
Suivez les instructions spécifiques ci-dessous pour chaque type d'erreur.
---
## Erreur : Valeur en double
### Ce que vous verrez
Les lignes avec des valeurs en double sont **surlignées en jaune** dans l'interface d'importation avant le début de l'importation.
### Ce que cela signifie
Un champ unique (e-mail, domaine) :
* Existe déjà dans Twenty
* Apparaît deux fois dans votre fichier
### Comment corriger
**Option 1 : Modifier la valeur en double**
1. Cliquez sur la cellule contenant l'erreur
2. Remplacez par une valeur unique
3. Continuer l'importation
**Option 2 : Supprimer la ligne en double**
1. Cliquez sur le X à côté de la ligne
2. La ligne sera ignorée pendant l'importation
**Option 3 : Laisser Twenty mettre à jour l'enregistrement existant**
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>
**Vous pouvez aussi mettre à jour les champs uniques.**
* 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
Tant qu'un identifiant unique correspond, Twenty met à jour l'enregistrement.
</Note>
### Comment éviter cette erreur
Avant l'importation :
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>
**Les enregistrements supprimés de façon logique comptent pour l'unicité.**
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>
Pour plus de détails : [Contraintes d'unicité](/l/fr/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Erreur : Format invalide
### Ce que vous verrez
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}
```
### Ce que cela signifie
Les données ne correspondent pas au format attendu pour ce type de champ.
### Comment corriger — selon le type de champ
#### E-mail
**Problème :** Format d'e-mail invalide
**Solution :** Utilisez le format `name@domain.com`
```
❌ john.smith@
❌ john smith@acme.com
✓ john.smith@acme.com
```
#### Domaine
**Problème :** Un format incohérent peut provoquer des doublons
**Solution :** Utilisez le format `https://domain.com` (recommandé)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
```
<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
**Problème :** Format de date non reconnu
**Solution :** Utilisez le format `YYYY-MM-DD` de façon cohérente dans tout le fichier
```
✓ 2024-03-15 (YYYY-MM-DD)
❌ 03/15/2024 (MM/DD/YYYY)
❌ 15/03/2024 (DD/MM/YYYY)
```
#### Téléphone
**Problème :** Colonnes obligatoires manquantes
**Solution :** Incluez toutes les colonnes de téléphone
| Colonne | Exemple |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
#### Booléen
**Problème :** Valeur booléenne incorrecte
**Solution :** Utilisez `TRUE` ou `FALSE` en majuscules
```
❌ true
❌ yes
❌ 1
✓ TRUE
✓ FALSE
```
#### Sélection / Sélection multiple
**Problème :** La valeur ne correspond pas aux options existantes
**Solution :** Utilisez les **noms d'API**, pas les libellés d'affichage
Comment trouver les noms d'API :
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
```
#### Devise
**Problème :** Montant ou code de devise manquant
**Solution :** Renseignez les deux colonnes
| Colonne | Exemple |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Nombre
**Problème :** Caractères non numériques
**Solution :** Chiffres uniquement, point pour les décimales
```
❌ $1,234.56
❌ 1,234.56
✓ 1234.56
```
Pour la référence complète des formats : [Correspondance des champs](/l/fr/user-guide/data-migration/capabilities/field-mapping)
---
## Erreur : Champ obligatoire manquant
### Ce que vous verrez
La ligne est surlignée en jaune et la cellule du champ obligatoire est indiquée.
### Ce que cela signifie
Un champ obligatoire est vide pour cette ligne.
### Comment corriger
**Option 1 : Saisir une valeur**
1. Cliquez sur la cellule vide
2. Saisissez une valeur
3. Continuer l'importation
**Option 2 : Supprimer la ligne**
1. Si vous n'avez pas les données, cliquez sur X pour ignorer la ligne
### Comment éviter cette erreur
Avant l'importation, identifiez les champs obligatoires :
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
---
## Erreur : Relation introuvable
### Ce que vous verrez
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
```
Cela signifie qu'il n'existe aucune entreprise dans Twenty avec cet identifiant précis.
<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>
### Ce que cela signifie
Vous essayez de lier un enregistrement qui n'existe pas dans Twenty.
### Comment corriger
**Option 1 : Importer d'abord les enregistrements parents**
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 : Corriger la valeur de référence**
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 : Supprimer la relation**
1. Effacez la cellule pour importer sans la relation
2. Ajoutez la relation manuellement plus tard
### Comment éviter cette erreur
1. **Importez dans le bon ordre :**
* Entreprises en premier
* Personnes ensuite (avec références à l'entreprise)
* Opportunités en troisième
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>
**L'importation échouera si une référence est faite à un enregistrement inexistant.**
Importez toujours les objets parents avant les objets enfants.
</Warning>
Pour plus de détails : [Import des relations](/l/fr/user-guide/data-migration/capabilities/import-relations)
---
## Erreur : Fichier trop volumineux
### Ce que vous verrez
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
```
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.
### Ce que cela signifie
Votre fichier contient plus de 10 000 enregistrements.
### Comment corriger
**Option 1 : Fractionner en plusieurs fichiers**
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 : 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)
---
## Erreur : Champ non reconnu
### Ce que cela signifie
Une colonne de votre fichier ne peut pas être mise en correspondance car le champ n'existe pas dans Twenty.
### Comment corriger
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>L'import CSV crée des enregistrements, pas des champs. Tous les champs doivent exister avant l'importation.</Note>
---
## Erreur : Relation utilisateur vide
### Ce que cela signifie
Vous essayez d'assigner un enregistrement à un utilisateur (Propriétaire, Assignataire) mais la relation n'est pas mise en correspondance.
### Causes courantes
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
### Comment corriger
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>
**Les utilisateurs doivent accepter les invitations avant l'importation.**
Si un utilisateur n'a pas accepté son invitation, les enregistrements qui s'y réfèrent auront des relations utilisateur vides.
</Warning>
---
## Liste de vérification avant l'importation
Évitez les erreurs en vérifiant ces éléments avant l'importation :
### Exigences relatives au fichier
<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>
### Qualité des données
<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>
### Formats des champs
<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>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>
### Modèle de données
<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>
---
## Vous avez encore des problèmes ?
Si vous avez essayé les solutions ci-dessus :
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)

View File

@@ -0,0 +1,201 @@
---
title: Importer des entreprises via CSV
description: Guide complet étape par étape pour importer des entreprises dans Twenty.
---
## Vue d'ensemble
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.
## Avant de démarrer
### Liste de vérification des prérequis
<Check>
Votre fichier est au format CSV, XLSX ou XLS
</Check>
<Check>
Le fichier contient moins de 10 000 enregistrements
</Check>
<Check>
Aucun domaine en double dans votre fichier
</Check>
<Check>
Tous les champs personnalisés existent dans **Paramètres → Modèle de données**
</Check>
<Note>
Besoin d'importer plus de 10 000 entreprises ? Divisez en plusieurs fichiers ou utilisez l’[importation via l’API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Étape 1 : Préparer vos données d'entreprises
### Champs obligatoires et recommandés
| 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 |
### Format du domaine
<Warning>
**Utilisez le format `https://domain.com` pour les domaines.**
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>
**Colonnes de domaine :**
* **Domaine / Libellé du domaine** : `acme.com`
* **Domaine / URL du domaine** : `https://acme.com`
### Format de l'adresse
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
```
### Exemple de structure CSV
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
Acme Corp,https://acme.com,acme.com,San Francisco,USA,250
Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**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>
## Étape 2 : Accéder à la fonction d'importation
**Option 1 : Depuis la vue Entreprises**
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 : Utiliser le menu de commandes**
1. Appuyez sur `Cmd + K` (Mac) ou `Ctrl + K` (Windows)
2. Tapez "import"
3. Sélectionnez **Importer des enregistrements**
4. Choisissez **Entreprises**
## Étape 3 : Téléverser votre fichier
1. Cliquez sur **Sélectionner un fichier**
2. Choisissez votre fichier CSV, XLSX ou XLS
3. Attendez que Twenty analyse votre fichier
## Étape 4 : Associer vos colonnes
Twenty tente automatiquement d'associer vos colonnes aux champs. Vérifiez et ajustez :
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
### Règles de mappage importantes
* **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%'}} />
## Étape 5 : Faire correspondre les valeurs des champs de sélection
Si vous avez des champs Sélection ou Multi-sélection :
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>
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>
## Étape 6 : Examiner et corriger les erreurs
Avant de terminer l'import, Twenty valide vos données :
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
### Erreurs courantes lors de l'import d'entreprises
| 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 |
## Étape 7 : Finaliser l'import
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
## Après l'import des entreprises
Vous pouvez maintenant importer des enregistrements liés aux entreprises :
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
## Mise à jour des entreprises existantes
Pour mettre à jour des entreprises au lieu d'en créer de nouvelles :
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
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="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="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="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="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="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>
## Résolution des problèmes
Vous rencontrez des problèmes ? Consultez :
* [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)

View File

@@ -0,0 +1,242 @@
---
title: Importer des contacts via CSV
description: Guide complet étape par étape pour importer des personnes/contacts dans Twenty.
---
## Vue d'ensemble
Ce guide vous accompagne pour importer vos contacts (Personnes) dans Twenty.
## Avant de démarrer
### Liste de vérification des prérequis
<Check>
Votre fichier est au format CSV, XLSX ou XLS
</Check>
<Check>
Le fichier contient moins de 10 000 enregistrements
</Check>
<Check>
Aucune adresse e-mail en double dans votre fichier
</Check>
<Check>
**Entreprises importées en premier** (si vous liez des personnes à des entreprises)
</Check>
<Check>
Tous les champs personnalisés existent dans **Paramètres → Modèle de données**
</Check>
<Warning>
**Importer les entreprises avant les personnes**
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>
## Étape 1 : Préparer vos données de contacts
### Champs obligatoires et recommandés
| 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 |
### Format de l'e-mail
* 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"]
```
### Format du téléphone
Le téléphone est un **champ imbriqué** nécessitant plusieurs colonnes :
| Colonne | Exemple |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Lier aux entreprises
Ajoutez une colonne contenant l'identifiant unique de l'entreprise :
| Nom de la colonne | Format | Exemple |
| ----------------- | ------------ | -------------------------------------- |
| `companyDomain` | Format d'URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**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>
### Exemple de structure CSV
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
John,Smith,john@acme.com,CEO,https://acme.com,4159095555,US
Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**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>
## Étape 2 : Accéder à la fonction d'importation
**Option 1 : Depuis la vue Personnes**
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 : Utiliser le menu de commandes**
1. Appuyez sur `Cmd + K` (Mac) ou `Ctrl + K` (Windows)
2. Tapez "import"
3. Sélectionnez **Importer des enregistrements**
4. Choisissez **Personnes**
## Étape 3 : Téléverser votre fichier
1. Cliquez sur **Sélectionner un fichier**
2. Choisissez votre fichier CSV, XLSX ou XLS
3. Attendez que Twenty analyse votre fichier
## Étape 4 : Associer vos colonnes
Twenty tente automatiquement d'associer vos colonnes aux champs. Vérifiez et ajustez :
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
### Règles de mappage importantes
| 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%'}} />
### Mappage de la relation Entreprise
Lors du mappage de la colonne entreprise :
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>
**N'associez qu'UN SEUL identifiant unique pour les relations.**
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>
## Étape 5 : Faire correspondre les valeurs des champs de sélection
Si vous avez des champs Sélection ou Multi-sélection (comme Source du lead) :
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>
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>
## Étape 6 : Examiner et corriger les erreurs
Avant de terminer l'import, Twenty valide vos données :
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
### Erreurs courantes lors de l'import de contacts
| 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 |
## Étape 7 : Finaliser l'import
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
## Après l'import des contacts
Vos contacts sont maintenant dans Twenty ! Prochaines étapes :
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
## Mise à jour des contacts existants
Pour mettre à jour des contacts au lieu d'en créer de nouveaux :
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
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="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="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="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="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="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="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>
## Résolution des problèmes
Des problèmes ? Consultez :
* [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)

View File

@@ -0,0 +1,176 @@
---
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.
---
## Vue d'ensemble
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.
## Quand utiliser l'importation via l'API
| 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>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>
## Limites de débit de l'API
Twenty applique des limites de débit pour garantir la stabilité du système :
| Limite | Valeur |
| -------------------------------------- | ----------------------------- |
| **Requêtes par minute** | 100 |
| **Enregistrements par appel par lots** | 60 |
| **Débit maximal** | ~6 000 enregistrements/minute |
<Warning>
**Planifiez votre importation en fonction de ces limites.**
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>
## Prise en main
### Étape 1 : Obtenez votre clé API
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>
**Gardez votre clé API secrète.**
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>
### Étape 2 : Choisissez votre API
Twenty prend en charge deux types d'API :
| 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/api) |
| **REST** | Opérations CRUD simples, modèles REST familiers | [Documentation de l'API](/l/fr/developers/extend/api) |
Les deux API prennent en charge :
* Créer, lire, mettre à jour et supprimer des enregistrements
* **Opérations par lots** — créez ou mettez à jour jusqu'à 60 enregistrements par appel
**Pour les importations, utilisez les opérations par lots** afin de maximiser le débit tout en respectant les limites de débit.
### Étape 3 : Planifiez l'ordre d'importation
Comme pour les importations CSV, **l'ordre compte** pour les relations :
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)
## Meilleures pratiques
### Regroupez vos requêtes par lots
* 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
### Gérez les limites de débit
* 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)
### Validez d'abord les données
* 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))
### Consignez tout
* 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
### Testez d'abord
* 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 pour éviter les doublons
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.
## Trouver les noms d'objets et de champs
Pour voir les objets et champs disponibles :
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
La documentation présente tous les objets standard et personnalisés, leurs champs et les types de données attendus.
## Services Professionnels
Pour des migrations API complexes, nos partenaires peuvent vous aider :
| 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 |
**Idéal pour :**
* Migrations de plus de 100 000 enregistrements
* Transformations de données complexes
* Délais serrés
* Équipes sans ressources de développement
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="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="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="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="Puis-je supprimer des enregistrements via l'API ?">
Oui, utilisez des mutations de suppression (GraphQL) ou des requêtes DELETE (REST).
</Accordion>
<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>
## Documentation de l'API
Pour les détails complets de mise en œuvre, des exemples de code et la référence du schéma :
* [Documentation de l'API](/l/fr/developers/extend/api)

View File

@@ -0,0 +1,225 @@
---
title: Importer des relations entre objets via CSV
description: Guide complet étape par étape pour lier des enregistrements lors de l'importation CSV.
---
## Vue d'ensemble
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>**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>
## Comprendre les relations
### Qu'est-ce qu'une relation "un-à-plusieurs" ?
Dans une relation un-à-plusieurs :
* **Une** Entreprise a **de nombreuses** Personnes (employés)
* **Une** Entreprise a **de nombreuses** Opportunités
* **Une** Personne a **de nombreuses** Tâches
Le côté "un" est le **parent**. Le côté "plusieurs" est l'**enfant**.
### Relations courantes dans Twenty
| 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 |
## Étape 1 : Identifier les côtés "un" et "plusieurs"
Avant l'importation, déterminez quel objet est le parent et lequel est l'enfant.
**Posez-vous la question :** "Est-ce qu'UN [Objet A] a PLUSIEURS [Objet B] ?"
* Une Entreprise → Plusieurs Personnes ✓ (l'Entreprise est le parent)
* Une Personne → Plusieurs Entreprises ✗ (C'est faux — une personne appartient à une seule entreprise)
## Étape 2 : Importer d'abord les enregistrements parents
Le parent (côté "un") doit exister dans Twenty avant que vous ne puissiez y faire référence.
**Ordre d'import :**
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>
**Si l'enregistrement parent n'existe pas, l'import échouera.**
Vérifiez toujours que les Entreprises sont importées avant d'importer des Personnes avec des références à l'Entreprise.
</Warning>
## Étape 3 : Noter l'identifiant unique du parent
Vous devez référencer l'enregistrement parent à l'aide d'un **identifiant unique**. Options disponibles :
| 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>**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>
### Trouver l'identifiant
Si vous avez besoin de l'`id` :
1. Exportez les enregistrements parents depuis Twenty
2. L'export comprend la colonne `id`
3. Utilisez ces identifiants dans votre fichier d'enregistrements enfants
## Étape 4 : Vérifier que le champ de relation existe
Avant l'importation, assurez-vous que le champ de relation existe entre vos objets.
**Pour vérifier ou créer :**
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
## Étape 5 : Préparer votre fichier CSV
Ajoutez une colonne à votre CSV enfant qui référence le parent en utilisant son identifiant unique.
### Exemple : Personnes liées aux Entreprises
**Votre CSV Personnes :**
```csv
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
La colonne `companyDomain` référence le domaine de l'Entreprise.
### Exigences de format
| 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>
**Le format du domaine est important !**
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>
### Règles importantes
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`
## Étape 6 : Téléverser et associer la relation
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 liera automatiquement chaque enregistrement enfant au parent correspondant.
## Étape 7 : Vérifier l'importation
Après l'importation :
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
## Erreurs courantes à éviter
| 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 |
## Liaison aux membres de l'espace de travail
Lors de la liaison à des membres de l'espace de travail (votre équipe) :
* Utilisez leur **adresse e-mail**, pas leur nom
* Exemple : `owner@yourcompany.com`, pas "John Smith"
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## FAQ
<AccordionGroup>
<Accordion title="Que faire si mon enregistrement parent n'a pas de domaine ni d'e-mail ?">
Vous avez deux options :
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="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="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="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="Que se passe-t-il si un enregistrement parent n'existe pas ?">
L'import affichera une erreur pour cette ligne. Vous pouvez :
* 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="Pourquoi ma relation ne se lie-t-elle pas correctement ?">
Causes courantes :
* 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>
**Rappel : Les enregistrements supprimés de façon logique comptent pour l'unicité.**
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>
## Résolution des problèmes
Vous rencontrez des problèmes ? Consultez :
* [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)

View File

@@ -0,0 +1,289 @@
---
title: Migration depuis d'autres CRM
description: Guide pas à pas pour migrer vos données de n'importe quel CRM vers Twenty.
---
## Vue d'ensemble
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>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>
## Étape 1 : Auditez vos données actuelles
La migration est une occasion de repartir sur de bonnes bases. N'importez pas de données superflues.
**À conserver :**
* Contacts et entreprises actifs
* Opportunités et affaires ouvertes
* Notes et activités importantes
* Champs personnalisés que vous utilisez réellement
**À laisser de côté :**
* Contacts obsolètes (aucune activité depuis plus de 2 ans)
* Doublons
* Données de test
* Champs personnalisés inutilisés
## Étape 2 : Cartographiez votre modèle de données
Créez un document de correspondance entre votre CRM actuel et Twenty :
| Votre CRM | Twenty |
| --------------------- | ---------------------- |
| Compte / Organisation | **Entreprise** |
| Contact / Personne | **Personnes** |
| Affaire / Opportunité | **Opportunité** |
| Activité | **Tâche** ou **Note** |
| Objet personnalisé | **Objet personnalisé** |
**Pour chaque champ, documentez :**
* Le nom du champ source
* Le champ Twenty cible
* Toute transformation de format nécessaire (dates, numéros de téléphone, etc.)
<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>
## Étape 3 : Configurez votre espace de travail Twenty
Avant d'importer des données, préparez votre espace de travail Twenty :
### Créez des objets et des champs personnalisés
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>
**Les champs doivent exister avant l'importation.**
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>
### Invitez votre équipe
<Warning>
**Invitez les utilisateurs AVANT d'importer des données.**
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. 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
## Étape 4 : Exportez depuis votre CRM actuel
Exportez vos données depuis votre CRM actuel :
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
**Exportez ces objets (dans cet ordre à titre de référence) :**
1. Entreprises / Comptes / Organisations
2. Contacts / Personnes
3. Affaires / Opportunités
4. Notes et activités
5. Objets personnalisés
## Étape 5 : Nettoyez et mettez en forme vos données
Ouvrez chaque CSV exporté dans une application de tableur et préparez-le pour Twenty.
### Supprimez les doublons
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
### Formatez correctement les champs
| 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>
**Le format du domaine est critique.**
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>
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.
### Ajoutez des colonnes de relation
Pour lier des enregistrements (par exemple, des Personnes à des Entreprises), ajoutez une colonne avec l'identifiant unique de l'entité parente.
**Exemple : CSV Personnes avec lien vers l'Entreprise**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
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.
### Mettez à jour les références utilisateur
Si vos données incluent des attributions d'utilisateur (propriétaire, assigné) :
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
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.
## Étape 6 : Importez dans Twenty
<Warning>
**L'ordre d'importation est important !**
Importez toujours dans cet ordre :
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
L'enregistrement parent doit exister avant que vous puissiez y faire référence.
</Warning>
### Importez chaque objet
Pour chaque fichier CSV, dans l'ordre :
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
**Guides détaillés :**
* [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)
## Étape 7 : Grandes migrations (50 000+ enregistrements)
Pour les grandes migrations :
| 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 |
**Pour les importations via l'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)
## Étape 8 : Configuration post-migration
Après l'importation des données, terminez la configuration de votre espace de travail :
### Recréez les vues
* 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
### Recréez les workflows
* 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
### Configurez les rôles et les autorisations
* Configurez les rôles dans **Paramètres → Membres → Rôles**
* Affectez les utilisateurs aux rôles appropriés
### Connectez les e-mails et le calendrier
* 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)
### Formez votre équipe
* Parcourez ensemble la nouvelle interface
* Documentez tous les processus spécifiques à l'équipe
## Problèmes Courants et Solutions
| 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 |
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.
## Liste de vérification post-migration
### Intégrité des données
<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>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>
### Préparation de l'équipe
<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="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="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="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="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>
## Besoin d'aide ?
<Tip>
Vous voulez de l'aide pour votre migration ? [Trouver un partenaire certifié Vingt partenaires] (https://twenty.com/partners/list?categories=SOLUTIONING&ref=docs-migrate-crm) pour déplacer vos données, vos pipelines et vos utilisateurs de bout en bout.
</Tip>

View File

@@ -0,0 +1,173 @@
---
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.
---
## Vue d'ensemble
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>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>
## Étape 1: Créez votre espace de travail cloud
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
## Étape 2: Recréez votre modèle de données
Avant d'importer des données, recréez vos objets et champs personnalisés:
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>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>
## Étape 3: Invitez tous les utilisateurs
<Warning>
**Critique: invitez les utilisateurs AVANT d'importer des données.**
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. 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
## Étape 4: Exportez les données depuis l'instance auto-hébergée
Exportez chaque objet depuis votre instance auto-hébergée:
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`)
**Exportez dans cet ordre** (pour référence lors de l'importation):
1. Entreprises
2. Personnes
3. Opportunités
4. Objets personnalisés (en suivant leurs dépendances)
5. Tâches, notes
## Étape 5 : Mettez à jour les références des membres de l'espace de travail
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.
**Pour chaque fichier CSV contenant des références utilisateur (propriétaire, assigné, etc.):**
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)
**Exemple:**
Avant:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
Après:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<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>
## Étape 6: Planifiez l'ordre d'importation
Importez les fichiers dans le bon ordre pour conserver les relations:
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)
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.
## Étape 7: Importez vers le cloud
Pour chaque fichier CSV, dans l'ordre:
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
## Étape 8: Recréez la configuration
Après l'importation des données, recréez manuellement:
### Vues
* Recréez les vues enregistrées avec des filtres, des tris et des configurations de colonnes
* Configurez d'éventuelles vues kanban ou calendrier
### Flux de travail
* Recréez les automatisations dans **Paramètres → Flux de travail**
* Testez chaque flux de travail avant de vous y fier
### Rôles et autorisations
* Configurez les rôles dans **Paramètres → Membres → Rôles**
* Affectez les utilisateurs aux rôles appropriés
### Intégrations
* Reconnectez la synchronisation e-mail et calendrier pour chaque utilisateur
* Reconfigurez les intégrations API avec de nouvelles clés API
## Liste de vérification post-migration
<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="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="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="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="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>
## Besoin d'aide ?
<Tip>
Vous migrez un espace de travail important ou complexe ? [Faites appel à un partenaire Twenty certifié](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud) pour gérer la migration de bout en bout. *(Ou faites intervenir notre équipe : [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>

View File

@@ -0,0 +1,267 @@
---
title: Préparez vos fichiers CSV
description: Guide complet étape par étape pour formater vos données en vue de leur importation dans Twenty.
---
## Vue d'ensemble
Ce guide vous explique comment préparer votre fichier CSV pour un import réussi. Suivez ces étapes afin d’éviter les erreurs.
## Étape 1 : Vérifiez les exigences du fichier
Avant de commencer, assurez-vous que votre fichier répond à ces exigences :
| Exigence | Détails |
| -------------------- | ---------------------------------- |
| **Format** | CSV, XLSX ou XLS |
| **Limite de taille** | 10 000 enregistrements par fichier |
| **Encodage** | UTF-8 recommandé |
| **Structure** | Un type d’objet par fichier |
<Note>Pour les ensembles de données supérieurs à 10 000 enregistrements, divisez-les en plusieurs fichiers ou utilisez l’[importation via l’API](/l/fr/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## Étape 2 : Téléchargez le fichier d’exemple
**C’est l’étape la plus importante.** Le fichier d’exemple vous indique exactement les noms de colonnes et le format attendus par Twenty.
1. Accédez à la vue d’objet (Personnes, Entreprises, etc.)
2. Cliquez sur **⋮** → **Importer des enregistrements**
3. Cliquez sur **Télécharger le fichier d’exemple**
4. Utilisez ce fichier comme modèle
<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 l’import.</Note>
## Étape 3 : Supprimez les valeurs en double
Twenty impose l’unicité sur certains champs. Les doublons provoqueront des erreurs d’import.
| Objet | Champs uniques |
| ------------------------ | ------------------------------------------------------- |
| **Personnes** | `id`, `email` |
| **Entreprises** | `id`, `domain` |
| **Objets personnalisés** | `id`, plus tout champ que vous avez marqué comme unique |
**Avant l’import :**
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>**Les enregistrements supprimés logiquement comptent pour l’unicité.** 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>
## Étape 4 : Formatez correctement chaque type de champ
Différents types de champs nécessitent des formats spécifiques. Voici la référence complète :
### Champs texte
* Aucun formatage particulier requis
* Les espaces en début/fin sont automatiquement supprimés
### Champs e-mail
* Doit avoir un format d’e-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"]
```
### Champs de domaine
* **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
### Champs de téléphone
Le téléphone est un **champ imbriqué** qui nécessite plusieurs colonnes :
| Colonne | Exemple |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Champs d'adresse
Le champ Adresse est un **champ imbriqué** avec plusieurs colonnes (certaines peuvent être laissées vides):
* **Adresse / Adresse 1**: Première ligne de l’adresse
* **Adresse / Adresse 2**: Deuxième ligne de l’adresse (facultatif)
* **Adresse / Ville**: Nom de la ville
* **Adresse / État**: État ou province
* **Adresse / Pays**: Nom du pays
* **Adresse / Code postal**: Code postal/ZIP
### Champs de date
Utilisez un format cohérent dans tout votre fichier:
* `YYYY-MM-DD` (recommandé): `2024-03-15`
* ISO 8601: `2024-03-15T10:30:00Z`
### Champs numériques
* Uniquement des nombres (pas de texte)
* Utilisez le point pour les décimales: `1234.56`
* Aucun séparateur de milliers (pas `1,234.56`)
### Champs de devise
La devise est un **champ imbriqué** nécessitant deux colonnes qui doivent **toutes deux être renseignées**:
| Colonne | Exemple |
| --------------------- | --------- |
| **Montant / Montant** | `1234.56` |
| **Montant / Devise** | `USD` |
### Champs booléens
Utilisez des majuscules: `TRUE` ou `FALSE`
<Warning>Les minuscules `true` ou `false` ne fonctionneront pas.</Warning>
### Champs de sélection
Utilisez le **nom d’API** de l’option, et non le libellé affiché.
**Comment trouver les noms d’API:**
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez l’objet et le champ
3. Activez le **mode avancé** (bascule en bas à droite)
4. Copiez le nom d’API (par ex., `OPTION_1`, pas "Option 1")
<Note>Les nouvelles options de sélection ne sont pas créées automatiquement. Ajoutez-les dans **Paramètres → Modèle de données** avant l’importation.</Note>
### Champs à sélection multiple
Utilisez les noms d’API au format de tableau:
```
["VALUE1","VALUE2"]
```
### Champs de tableau
Utilisez le format de tableau JSON:
```
["value1","value2"]
```
### Champs d’évaluation
Utilisez le format: `RATING_1`, `RATING_2`, `RATING_3`, `RATING_4` ou `RATING_5`
### Champs de liens/URL
Renseignez les deux colonnes:
* **Liens / Libellé du lien**: `Twenty`
* **Liens / URL du lien**: `https://twenty.com`
Pour les liens secondaires, utilisez la colonne **Liens / Liens secondaires**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### Champs JSON
Utilisez un format JSON valide:
```
{"key":"value","key2":"value2"}
```
### Champs d’ID
* **Optionnel**: Twenty génère automatiquement des ID s’ils ne sont pas fournis
* **Format**: UUID (par ex. `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **Cas d’usage**: Incluez l’ID pour mettre à jour des enregistrements existants au lieu d’en créer de nouveaux
## Étape 5: Ajouter des colonnes de relation (si vous liez des enregistrements)
Pour lier des enregistrements à d’autres objets (par ex., Personnes à Entreprises), ajoutez une colonne contenant l’identifiant unique de l’enregistrement associé.
**Exemple**: Lier des Personnes à des Entreprises
Ajoutez une colonne à votre CSV Personnes:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Règles importantes pour les relations:**
* L’enregistrement parent doit déjà exister dans Twenty
* Utilisez le format **URL de domaine** (`https://domain.com`), pas le libellé
* Associez UN SEUL identifiant unique (n’incluez pas à la fois `companyId` ET `companyDomain`)
* Pour les membres de l’espace de travail, utilisez leur **adresse e-mail** (et non le nom)
<Warning>
**L’ordre d’importation est important !**
Importez le côté « un » avant le côté « plusieurs »:
1. **Entreprises** d’abord
2. **Personnes** ensuite (avec référence à l’entreprise)
3. **Opportunités** en troisième
L’enregistrement parent doit exister avant que vous puissiez y faire référence.
</Warning>
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.
## Étape 6: Vérifiez que les champs existent dans Twenty
L’import 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.
**Avant l’importation:**
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)
## Étape 7: Liste de contrôle finale
Avant de téléverser votre fichier, vérifiez:
<Check>Le fichier est au format CSV, XLSX ou XLS</Check>
<Check>Le fichier contient moins de 10 000 enregistrements</Check>
<Check>L’encodage 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 d’API, 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>
## Erreurs courantes à éviter
| 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 d’API dans Paramètres |
| Importer les Personnes avant les Entreprises | Importez toujours d’abord 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 | N’associez qu’UN SEUL (domaine OU ID, pas les deux) |
## Prochaines étapes
Votre fichier est prêt ! Maintenant:
* [Importer des entreprises](/l/fr/user-guide/data-migration/how-tos/import-companies-via-csv) (importez-les d’abord)
* [Importer des contacts](/l/fr/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Corriger les erreurs d’importation](/l/fr/user-guide/data-migration/how-tos/fix-import-errors)

View File

@@ -0,0 +1,198 @@
---
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.
---
## Vue d'ensemble
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.
**Cas d'utilisation :**
* 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
## Comment ça marche
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.
| 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>
**Les champs à sélection multiple sont écrasés, pas fusionnés.**
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.
Pour conserver les valeurs existantes, incluez-les toutes dans votre importation : `["Option A","Option B","Option C"]`
</Warning>
## Étape 1 : Exporter vos données actuelles
Commencez par exporter les enregistrements que vous souhaitez mettre à jour :
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>**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>
### Ce qui est exporté
* 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
## Étape 2 : Modifier le fichier CSV
Ouvrez le fichier exporté dans votre application de feuille de calcul (Excel, Google Sheets, etc.) :
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
### Exemple : Mise à jour des intitulés de poste
**Fichier exporté :**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Sales Rep
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Sales Rep
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**Après vos modifications :**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Account Executive
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Senior Account Executive
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Account Executive
```
<Warning>
**Ne modifiez pas les valeurs des identifiants uniques.**
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>
## Étape 3 : Importer le fichier mis à jour
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 fait correspondre les enregistrements via l'identifiant unique et les met à jour avec les nouvelles valeurs.
## Choisir le bon identifiant unique
| 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>**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>
### Utiliser des champs uniques personnalisés
Si vous avez un champ personnalisé marqué comme unique (comme un ID externe provenant d'un autre système) :
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
## Étape 4 : Vérifier les mises à jour
Après l'importation :
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éé
## Et les champs qui ne figurent pas dans votre fichier ?
**Les champs non inclus dans votre fichier d'import restent inchangés.**
| 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 |
Cela signifie que vous n'avez besoin d'inclure que les champs que vous souhaitez modifier (plus l'identifiant unique).
## Combiner mises à jour et nouveaux enregistrements
Vous pouvez mettre à jour des enregistrements existants ET en créer de nouveaux dans la même importation :
```csv
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Erreurs courantes à éviter
| 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="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="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="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="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="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="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>
## Meilleures pratiques
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
## Résolution des problèmes
Vous rencontrez des problèmes ? Consultez :
* [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)

View File

@@ -0,0 +1,83 @@
---
title: Migration de données
description: Importez et exportez vos données CRM via des fichiers CSV ou l’API.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Méthodes d’import
Twenty prend en charge deux méthodes principales d’import de données :
| 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>Pour des ensembles de données très volumineux (des centaines de milliers d’enregistrements), utilisez l’API. Nos [partenaires d’implémentation](/l/fr/user-guide/getting-started/capabilities/implementation-services) peuvent vous aider à exécuter ces scripts si nécessaire.</Note>
## Principes de base de l’import CSV
Vous pouvez importer des données pour n’importe quel objet à l’aide de fichiers CSV, XLSX ou XLS. Chaque fichier doit contenir **un seul type d’objet** (par exemple, uniquement des enregistrements Personnes).
<Note>**Les champs doivent exister avant l’import.** Le téléversement d’un CSV crée des enregistrements, mais ne crée pas de champs. Si vous avez besoin de champs personnalisés, créez-les d’abord dans **Paramètres → Modèle de données**.</Note>
### Étapes
1. Accédez à l’objet dans lequel vous souhaitez importer des données
2. Cliquez sur l’icô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 l’interface
7. Confirmez l’importation
### Importer des relations entre objets
Vous pouvez importer des relations entre objets à l’aide de la fonction d’import CSV. Vous devez référencer l’objet lié en utilisant un champ unique de cet objet : l’`id`, l’`email` pour les Personnes et les membres de l’espace 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>**Les enregistrements supprimés comptent pour l’unicité.** Les enregistrements supprimés de façon logique (visibles dans le menu Commande → Voir les enregistrements supprimés) sont inclus dans les vérifications d’unicité. Si vous importez un enregistrement ayant la même valeur unique qu’un enregistrement supprimé, l’enregistrement supprimé sera restauré.</Note>
<Warning>
**L’ordre d’importation est important !**
Lors de l’import d’objets liés, téléversez les fichiers dans cet ordre :
1. **Entreprises** d’abord (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
Pourquoi ? Le côté "un" d’une relation un-à-plusieurs doit exister avant que vous puissiez y faire référence. Par exemple, l’enregistrement Entreprise doit exister avant d’importer une Personne avec l’ID de cette entreprise.
</Warning>
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.
## Exporter des données
Exportez les données de votre espace de travail pour des sauvegardes, des rapports ou des migrations.
### Étapes
1. Accédez à l’objet 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>**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 l’exportation pour contrôler les données incluses.</Note>
<Note>**Limites d’exportation** : jusqu’à 20 000 enregistrements par export.</Note>
## Autorisations
L’import et l’export de données nécessitent des autorisations spécifiques :
* **Importation** : nécessite l’autorisation "Import CSV"
* **Exportation** : nécessite l’autorisation "Export CSV"
Contactez l’administrateur de votre espace de travail si vous n’avez pas ces autorisations.
## Prochaines étapes
* [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)