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,122 @@
---
title: Champs
description: Comprendre le rôle des champs et comment les gérer.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## À propos des Champs
Les champs sont comme les colonnes d'une feuille de calcul. Ils stockent différents types de données comme du texte, des chiffres ou des dates. Les champs peuvent être standard (intégrés) ou personnalisés (ceux que vous créez).
### Champs Standards
Les champs standard sont intégrés à Twenty pour répondre aux besoins professionnels courants.
Par exemple, `Prénom` et `Nom de famille` sont des champs standards dans l'objet `Personnes`. Ils stockent des données textuelles pour les noms individuels.
Vous ne pouvez pas supprimer les champs standard, mais vous pouvez les désactiver si vous n'en avez pas besoin.
Vous pouvez également personnaliser les options des champs standard de type `SELECT`, par exemple les options pour l’`Étape` des Opportunités.
<img src="/images/user-guide/fields/standard-fields.png" style={{width:'100%'}} />
### Champs Personnalisés
Les champs personnalisés peuvent être ajoutés à n'importe quel objet. Vous pouvez stocker du texte, des chiffres, des dates, des sélections déroulantes, et plus encore. Utilisez les champs personnalisés pour suivre des informations spécifiques à votre entreprise.
Par exemple, un champ personnalisé pour SpaceX pourrait être `Statut Actif de la Fusée`, indiquant si une fusée est opérationnelle.
<img src="/images/user-guide/fields/custom-fields.png" style={{width:'100%'}} />
## Types de champs
Twenty prend en charge divers types de champs :
| Type | Description | Exemple |
| ------------------ | ----------------------------------------------------------- | -------------------------- |
| Adresse | Adresse structurée avec rue, ville, état, pays, code postal | Adresse du bureau |
| Tableau | Liste de valeurs textuelles | Étiquettes |
| Booléen | Case à cocher vrai/faux | Actif |
| Devise | Valeur monétaire avec code de devise | Montant de l’affaire (USD) |
| Date | Valeurs de date | Date de clôture |
| Date et heure | Date avec heure | Heure de réunion |
| Domaine | Domaine de site web (utilisé pour les Entreprises) | acme.com |
| E-mail | Adresses e-mail (principale + supplémentaires) | Adresse e-mail du contact |
| JSON | Données JSON structurées | Métadonnées personnalisées |
| Liens | URL avec libellés (primaire + secondaire) | Site web, LinkedIn |
| Texte long | Texte sur plusieurs lignes | Description, Notes |
| Sélection multiple | Choix multiples à partir d’une liste prédéfinie | Étiquettes, Catégories |
| Nombre | Valeurs numériques (entières ou décimales) | Quantité, Score |
| Téléphone | Numéros de téléphone avec indicatif du pays | Téléphone professionnel |
| Note | Notation par étoiles (1-5) | Priorité, Score |
| Relation | Liens vers des enregistrements dans d’autres objets | Entreprise → Personnes |
| Sélection | Choix unique à partir d’une liste prédéfinie | Étape, Statut |
| Texte | Texte sur une seule ligne | Nom, Titre |
## Créer un Champ Personnalisé
Pour ajouter un champ personnalisé à n'importe quel objet, suivez ces étapes:
1. Allez dans les `Paramètres` dans la barre latérale gauche.
2. Allez dans le `Modèle de Données`, puis sélectionnez l'objet que vous souhaitez personnaliser.
3. Continuez en cliquant sur `+ Nouveau champ`.
4. Choisissez un nom de champ et un type qui répondent à vos exigences. Envisagez d'ajouter une description du champ pour une meilleure compréhension.
Votre nouveau champ est maintenant disponible dans les champs de l'application. Pour l'afficher sur une vue spécifique, cliquez sur le menu des options, puis sélectionnez `Champs`.
<VimeoEmbed videoId="927628219" title="Démonstration vidéo" />
**Méthode rapide:** Cliquez sur le bouton **+** en haut à droite de tout tableau d'objet, puis sélectionnez `Personnaliser les champs`. Cela vous amène directement aux paramètres du Modèle de Données.
<img src="/images/user-guide/fields/quick-new-field.png" style={{width:'100%'}} />
## Désactiver un champ
Vous pouvez désactiver un champ pour le masquer dans l'application sans perdre vos données. Considérez cela comme masquer le champ plutôt que de le supprimer.
Voici comment vous pouvez le faire:
1. Trouvez le champ que vous voulez désactiver dans vos paramètres d'objet.
2. Cliquez sur les trois points `⋮` à côté du champ pour ouvrir le menu.
3. Sélectionnez `Désactiver` dans le menu déroulant.
<img src="/images/user-guide/fields/deactivate-field.png" style={{width:'100%'}} />
Que se passe-t-il lorsque vous désactivez un champ?
1. **Dans l'application :** Le champ disparaît et vous ne pouvez plus ajouter de nouvelles valeurs.
2. **Relations existantes :** S'il s'agit d'un champ de relation, les connexions existantes restent, mais vous ne pouvez pas en créer de nouvelles.
3. **Accès API :** Vous pouvez toujours accéder au champ et à ses données par l'API.
Vous pouvez réactiver les champs standards et personnalisés ou avoir l'option de les supprimer définitivement.
## Rendre les Champs Uniques
Rendez un champ unique pour garantir que des enregistrements distincts ne peuvent pas avoir la même valeur. Par exemple, les adresses e-mail sont uniques pour chaque personne.
Si vous obtenez une erreur lors de la définition de l'unicité, vérifiez les valeurs en double dans vos données (y compris les enregistrements supprimés).
## Index (avancé)
Les index de base de données sont gérés automatiquement — ajouter les vôtres est rarement nécessaire et il est facile de se tromper. Lorsque le mode avancé est activé, chaque objet possède une section **Index** sous `Paramètres → Modèle de données → <object>` pour les cas où vous savez que vous en avez besoin.
## Bonnes pratiques de configuration des champs
### Conventions de nommage et limitations
* **Les noms au singulier et au pluriel doivent être distincts** : Notre API GraphQL nécessite des noms distincts pour les mutations
* **Noms de champs protégés** : certains noms sont réservés à l’usage du système (par exemple, `Type`, `Application`)
### Champs de devise et de téléphone
* **Devise par défaut** : peut être configurée via le modèle de données
* **Codes de pays par défaut** : peuvent être configurés pour les champs téléphoniques via le modèle de données
### Champs de sélection
* **Une option par défaut peut être sélectionnée** pour chaque champ de sélection
### Champs de texte d'enregistrement
* **Chaque objet a un champ d'affichage principal**: Ce champ apparaît dans la colonne la plus à gauche et représente l'enregistrement lorsqu'il est lié à d'autres objets. Il doit s'agir d'un champ de texte. Par exemple, le champ `Nom` est utilisé pour les Personnes comme champ principal, donc lorsque vous liez une personne à une entreprise, vous verrez son nom dans la vue de l'entreprise.

View File

@@ -0,0 +1,92 @@
---
title: Objets
description: Découvrez les objets standard et personnalisés dans Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Objets Standard
Les objets standard sont des entités prédéfinies dans votre espace de travail pour vous aider à commencer. Ils font partie d'un modèle de données partagé accessible à tous les utilisateurs de Twenty. Vous pouvez les utiliser tels quels, les personnaliser ou les désactiver.
<img src="/images/user-guide/objects/standard-objects.png" style={{width:'100%'}} />
### Personnes
L'objet `Personnes` stocke vos contacts. Il inclut les détails de contact et l'historique des interactions, afin que vous puissiez voir toutes vos interactions client en un seul endroit.
### Entreprises
L'objet `Entreprises` stocke vos comptes professionnels. Il inclut des détails tels que l'industrie, la taille et la localisation. Les entreprises se connectent aux objets `Personnes` et `Opportunités`.
### Opportunités
L'objet `Opportunités` stocke les données liées aux affaires. Il suit la progression des ventes potentielles, de la prospection à la clôture, en enregistrant les étapes, les tailles des affaires, le compte associé et la date prévue de clôture. Vous pouvez visualiser votre pipeline de ventes dans une mise en page kanban.
### Notes
L'objet `Notes` stocke des notes en texte libre qui peuvent être associées à des Personnes, des Entreprises, des Opportunités et d'autres enregistrements. Utilisez les notes pour consigner des comptes rendus de réunion, des détails importants ou toute information contextuelle.
### Tâches
L'objet `Tasks` stocke des tâches à faire et des actions à effectuer. Les tâches peuvent être liées à des Personnes, des Entreprises, des Opportunités et à d'autres enregistrements. Suivez les dates d'échéance, les responsables et l'état d'achèvement pour garder la maîtrise de vos suivis.
## Objets personnalisés
Les objets personnalisés vous permettent de stocker des informations uniques à votre organisation que les objets standards ne peuvent pas gérer. Par exemple, si vous êtes SpaceX, vous pouvez créer un objet personnalisé pour les Fusées et les Lancements.
<img src="/images/user-guide/objects/custom-objects.png" style={{width:'100%'}} />
### Créer un nouvel objet personnalisé
Pour créer un nouvel objet personnalisé :
1. Accédez à Paramètres dans la barre latérale à gauche.
2. Sous Espace de travail, allez sur le Modèle de données. Ici vous pourrez voir un aperçu de tous vos objets standards et personnalisés existants (actifs et désactivés).
<VimeoEmbed videoId="926288174" title="Démonstration vidéo" />
3. Cliquez sur `+ Nouvel objet` en haut. Entrez le nom (à la fois singulier et pluriel), choisissez une icône, ajoutez une description pour votre objet personnalisé et cliquez sur Enregistrer (en haut à droite). En utilisant Listing comme exemple d'objet personnalisé, le singulier serait "listing" et le pluriel serait "listings" avec une description comme "Les annonces que les hôtes ont créées pour présenter leur propriété."
4. Votre objet personnalisé est maintenant créé et apparaîtra dans votre barre latérale. Vous pouvez commencer à y ajouter des enregistrements immédiatement.
## Gestion des objets
### Désactivation des objets
Si vous n'avez pas besoin d'un objet standard ou personnalisé :
1. Allez dans Paramètres → Modèle de données
2. Trouvez l'objet que vous voulez désactiver et cliquez dessus
3. Allez à l'onglet **Paramètres** de l'objet
4. Cliquez sur le bouton `Désactiver`
5. L'objet sera masqué dans votre espace de travail, mais ses données seront conservées
### Réactivation des objets
Pour réactiver un objet désactivé :
1. Allez dans Paramètres → Modèle de données
2. Activer le filtre `Désactivé`
3. Recherchez les objets désactivés (ils ont `désactivé` à côté de leur nom)
4. Cliquez sur `⋮`, puis sur `Activer` pour le réactiver
5. L'objet et toutes ses données seront restaurés
## Meilleures pratiques
### Quand créer des objets personnalisés
* **Entités métier uniques** : Éléments spécifiques à votre secteur ou à votre processus
* **Relations complexes** : Lorsque vous devez suivre les liens entre plusieurs entités
* **Données évolutives** : Lorsque vous pouvez avoir de nombreuses occurrences d'un élément
### Quand utiliser des champs à la place
* **Attributs simples** : Propriétés qui décrivent des objets existants
* **Catégories ou libellés** : Moyens de classer des enregistrements existants
* **Valeurs uniques** : Informations qui n'ont pas besoin de leur propre cycle de vie
### Nommage des objets
* **Utilisez des noms clairs et explicites** : Indiquez clairement ce que représente l'objet
* **Suivez les conventions** : utilisez le singulier pour le nom de l'objet, le pluriel pour la collection
* **Tenez compte de votre équipe** : Choisissez des noms que tout le monde comprendra

View File

@@ -0,0 +1,94 @@
---
title: Champs de relation
description: Reliez des enregistrements entre différents objets à l'aide de champs de relation.
---
## Types de relations
### Un-à-plusieurs
Un enregistrement de l'Objet A peut être lié à de nombreux enregistrements de l'Objet B.
**Exemple :** Une Entreprise peut avoir de nombreuses Personnes (employés).
### Plusieurs-à-un
De nombreux enregistrements de l'Objet A peuvent être liés à un enregistrement de l'Objet B.
**Exemple :** De nombreuses Personnes peuvent appartenir à une Entreprise.
### Relations vers plusieurs types d'objets
Certains objets peuvent se lier à plusieurs types d'objets sur un côté de la relation.
**Exemple :** Une Note peut être rattachée simultanément à une Personne ET à une Entreprise ET à une Opportunité. La Note est du côté "plusieurs", et se connecte à plusieurs côtés "un".
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
De même, un Projet (du côté "un") pourrait recevoir des liens de plusieurs Personnes, de plusieurs Entreprises et de plusieurs Notes.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Limitation d'import/export** : Les relations pointant vers plusieurs types d'objets ne sont pas encore prises en charge pour l'import/export CSV. C'est sur notre feuille de route.
</Warning>
### Plusieurs-à-plusieurs
De nombreux enregistrements de l'Objet A peuvent être liés à de nombreux enregistrements de l'Objet B.
**Exemple :** De nombreuses Personnes peuvent être liées à de nombreux Projets, et inversement.
Les relations plusieurs-à-plusieurs utilisent un modèle d'**objet de jonction**: un objet intermédiaire qui relie les deux côtés. Avec la fonctionnalité de relation via objet de jonction, Twenty affiche directement les enregistrements finaux liés, en masquant l'objet intermédiaire dans l'interface utilisateur.
<Warning>
**Fonctionnalité bêta**: Les relations de jonction doivent être activées dans **Paramètres → Communauté → Fonctionnalités** avant l'utilisation.
</Warning>
Voir [Comment créer des relations plusieurs-à-plusieurs](/l/fr/user-guide/data-model/how-tos/create-many-to-many-relations) pour un guide pas à pas complet.
## Créer un champ de relation
1. Allez dans **Paramètres → Modèle de données**
2. Sélectionnez l'objet dans lequel vous souhaitez ajouter la relation
3. Cliquez sur **+ Nouveau champ**
4. Sélectionnez **Relation** comme type de champ
5. Choisissez l'objet cible ou les objets cibles à relier
6. Configurez les paramètres de la relation :
* **Nom du champ sur l'objet source** : Le nom du champ de relation sur l'objet que vous modifiez
* **Nom du champ sur l'objet de destination** : Le nom du champ de relation qui apparaîtra sur l'objet cible
* Type de relation (un-à-plusieurs, plusieurs-à-un)
7. Cliquez sur **Enregistrer**
## Relations standard
Twenty est livré avec des relations prédéfinies entre des objets standard :
| Objet source | Objet de destination | Type de relation |
| ------------ | -------------------- | ---------------- |
| Personnes | Entreprises | Plusieurs-à-un |
| Opportunités | Entreprises | Plusieurs-à-un |
| Opportunités | Personnes | Plusieurs-à-un |
## Meilleures pratiques
### Planifier les relations
* **Cartographiez votre modèle de données** : Planifiez les relations avant de les créer
* **Tenez compte de la direction** : Réfléchissez à l'objet qui "possède" la relation
* **Évitez les dépendances circulaires** : Gardez votre modèle de données propre
### Nommer les relations
* **Utilisez des noms clairs** : Indiquez clairement ce que représente la relation
* **Soyez cohérent** : Utilisez des conventions de nommage similaires dans l'ensemble des relations
* **Prenez en compte les deux côtés** : Nommez correctement les deux côtés de la relation
### Performances
* **N'abusez pas des relations** : Trop de relations peuvent ralentir votre espace de travail
## Limitations
* **La suppression des relations** supprime le lien, mais pas les enregistrements associés
* **Les relations circulaires** doivent être évitées pour préserver l'intégrité des données