Gestion de la configuration
Twenty offre deux modes de configuration pour répondre à différents besoins de déploiement : Accès au panneau d’administration : Seuls les utilisateurs avec des privilèges d’administrateur (canAccessFullAdminPanel: true) peuvent accéder à l’interface de configuration.
1. Configuration du panneau d’administration (par défaut)
- Accédez à votre instance Twenty (généralement
http://localhost:3000) - Allez dans Paramètres / Panneau d’administration / Variables de configuration
- Configurez les intégrations, les e-mails, le stockage et plus encore
- Les modifications prennent effet immédiatement (dans les 15 secondes pour les déploiements multi-conteneurs)
- Authentification - Google/Microsoft OAuth, paramètres de mot de passe
- E-mail - Paramètres SMTP, modèles, vérification
- Stockage - Configuration S3, chemins de stockage local
- Intégrations - Gmail, Google Agenda, services Microsoft
- Workflow & Limitation de débit - Limites d’exécution, limitation de l’API
- Et bien plus encore…

Clés de chiffrement
Twenty utilise deux clés de chiffrement uniquement définissables via des variables d’environnement :| Variable | Objectif | Obligatoire |
|---|---|---|
ENCRYPTION_KEY | Clé principale utilisée pour chiffrer les secrets au repos (jetons OAuth, variables d’application, clés privées de signature, secrets TOTP, valeurs de configuration sensibles). | Oui pour les nouvelles installations (les anciennes installations peuvent s’appuyer à la place sur APP_SECRET — voir ci-dessous) |
FALLBACK_ENCRYPTION_KEY | Clé utilisée uniquement pour la vérification. Définie lors d’une rotation sur l’ancienne valeur de ENCRYPTION_KEY afin que les lignes existantes restent déchiffrables. | Uniquement pendant la rotation |
ENCRYPTION_KEY n’est pas défini, Twenty se rabat sur APP_SECRET pour le chiffrement au repos, ce qui correspond au comportement historique des anciens déploiements. Les nouvelles installations doivent toujours définir une ENCRYPTION_KEY dédiée.
Générez les valeurs avec openssl rand -base64 32 et stockez-les dans un endroit sûr (un gestionnaire de secrets, une configuration scellée, etc.). Perdre ENCRYPTION_KEY signifie perdre l’accès à tous les secrets stockés dans la base de données.
Pour faire pivoter ENCRYPTION_KEY sans temps d’arrêt, consultez le guide de rotation des clés.
2. Configuration réservée à l’environnement
.env :
- Définissez
IS_CONFIG_VARIABLES_IN_DB_ENABLED=falsedans votre fichier.env - Ajoutez toutes les variables de configuration à votre fichier
.env - Redémarrez les conteneurs pour que les modifications prennent effet
- Le panneau d’administration affichera les valeurs actuelles mais ne pourra pas les modifier
Mode multi-espaces de travail
Par défaut, Twenty fonctionne en mode à espace de travail unique — idéal pour la plupart des déploiements auto-hébergés où vous avez besoin d’une seule instance CRM pour votre organisation.Mode à espace de travail unique (par défaut)
- Un espace de travail par instance Twenty
- Le premier utilisateur devient automatiquement administrateur avec tous les privilèges (
canImpersonateetcanAccessFullAdminPanel) - Les nouvelles inscriptions sont désactivées après la création du premier espace de travail
- Structure d’URL simple :
https://your-domain.com
Activation du mode multi-espaces de travail
- Plusieurs espaces de travail peuvent être créés sur la même instance
- Chaque espace de travail possède son propre sous-domaine (par exemple,
sales.your-domain.com,marketing.your-domain.com) - Les utilisateurs s’inscrivent et se connectent sur
{DEFAULT_SUBDOMAIN}.your-domain.com(par exemple,app.your-domain.com) - Aucun privilège d’administrateur automatique — le premier utilisateur de chaque espace de travail est un utilisateur standard
- Des paramètres spécifiques à l’espace de travail, comme le sous-domaine et le domaine personnalisé, deviennent disponibles dans les paramètres de l’espace de travail
Configuration DNS pour le mode multi-espaces de travail
Lorsque vous utilisez le mode multi-espaces de travail, configurez votre DNS avec un enregistrement générique (wildcard) pour permettre la création dynamique de sous-domaines :Restreindre la création d’espaces de travail
En mode multi-espaces de travail, vous pouvez souhaiter limiter qui peut créer de nouveaux espaces de travail :canAccessFullAdminPanel peuvent créer des espaces de travail supplémentaires. Les utilisateurs peuvent toujours créer leur premier espace de travail lors de l’inscription initiale.
Intégration Gmail & Google Agenda
Créer un projet Google Cloud
- Allez dans Google Cloud Console
- Créez un nouveau projet ou sélectionnez-en un existant
- Activez ces API :
Configurez OAuth
- Allez dans Identifiants
- Créez un identifiant client OAuth 2.0
- Ajoutez ces URI de redirection :
https://{your-domain}/auth/google/redirect(pour le SSO)https://{your-domain}/auth/google-apis/get-access-token(pour les intégrations)
Configurez dans Twenty
- Allez dans Paramètres → Panneau d’administration → Variables de configuration
- Retrouvez la section Google Auth
- Définissez ces variables :
MESSAGING_PROVIDER_GMAIL_ENABLED=trueCALENDAR_PROVIDER_GOOGLE_ENABLED=trueAUTH_GOOGLE_CLIENT_ID={client-id}AUTH_GOOGLE_CLIENT_SECRET={client-secret}AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirectAUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
https://www.googleapis.com/auth/calendar.eventshttps://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/profile.emails.read
Si votre application est en mode test
Si votre application est en mode test, vous devez ajouter des utilisateurs test à votre projet. Sous Écran de consentement OAuth, ajoutez vos utilisateurs test à la section “Utilisateurs test”.Intégration Microsoft 365
Créez un projet dans Microsoft Azure
Vous devrez créer un projet dans Microsoft Azure et obtenir les identifiants.Activez les API
Sur la console Microsoft Azure, activez les API suivantes dans “Autorisations” :- Microsoft Graph : Mail.ReadWrite
- Microsoft Graph : Mail.Send
- Microsoft Graph : Calendars.Read
- Microsoft Graph : User.Read
- Microsoft Graph : openid
- Microsoft Graph : email
- Microsoft Graph : profile
- Microsoft Graph : offline_access
URI de redirection autorisées
Vous devez ajouter les URI de redirection suivantes à votre projet :https://{your-domain}/auth/microsoft/redirectsi vous souhaitez utiliser Microsoft SSOhttps://{your-domain}/auth/microsoft-apis/get-access-token
Configurez dans Twenty
- Allez dans Paramètres → Panneau d’administration → Variables de configuration
- Retrouvez la section Microsoft Auth
- Définissez ces variables :
MESSAGING_PROVIDER_MICROSOFT_ENABLED=trueCALENDAR_PROVIDER_MICROSOFT_ENABLED=trueAUTH_MICROSOFT_ENABLED=trueAUTH_MICROSOFT_CLIENT_ID={client-id}AUTH_MICROSOFT_CLIENT_SECRET={client-secret}AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirectAUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
Configurer les scopes
Voir le code source pertinent- ‘openid’
- ‘email’
- ‘profil’
- ‘offline_access’
- ‘Mail.ReadWrite’
- ‘Mail.Send’
- ‘Calendars.Read’
Si votre application est en mode test
Si votre application est en mode test, vous devez ajouter des utilisateurs test à votre projet. Ajoutez vos utilisateurs test à la section “Utilisateurs et groupes”.Tâches en arrière-plan pour Calendrier & Messagerie
Après avoir configuré les intégrations Gmail, Google Agenda ou Microsoft 365, vous devez démarrer les tâches en arrière-plan qui synchronisent les données. Enregistrez les emplois récurrents suivants dans votre conteneur de travailleur :Configuration des Emails
- Allez dans Paramètres → Panneau d’administration → Variables de configuration
- Retrouvez la section Email
- Configurez vos paramètres SMTP :
Stockage S3
DéfinissezSTORAGE_TYPE=S_3 et configurez les variables STORAGE_S3_* via le panneau d’administration ou .env. Voir la référence config-variables.ts pour la liste complète des variables S3.
Lorsque vous utilisez S3 avec des fonctionnalités dépendantes de CORS (par exemple les téléchargements de fichiers dans le navigateur), assurez-vous que votre compartiment S3 autorise l’origine de votre frontend Twenty dans sa configuration CORS.
Fonctions logiques et interpréteur de code
Twenty prend en charge les fonctions logiques pour les flux de travail et l’interpréteur de code pour l’analyse de données par IA. Les deux exécutent du code fourni par l’utilisateur et nécessitent une configuration explicite pour la sécurité.Paramètres de sécurité par défaut
En production (NODE_ENV=production): Les fonctions logiques et l’interpréteur de code sont par défaut sur Désactivé. Vous devez les activer explicitement avecLOGIC_FUNCTION_TYPE et CODE_INTERPRETER_TYPE si vous avez besoin de ces fonctionnalités.
En développement (NODE_ENV=development): Les deux sont par défaut sur LOCAL pour plus de commodité lors de l’exécution en local.
Fonctions logiques - Pilotes disponibles
| Pilote | Variable d’environnement | Cas d’utilisation | Niveau de sécurité |
|---|---|---|---|
| Désactivé | LOGIC_FUNCTION_TYPE=DISABLED | Désactiver complètement les fonctions logiques | N/A |
| Local | LOGIC_FUNCTION_TYPE=LOCAL | Environnements de développement et approuvés | Faible (aucun sandboxing) |
| Lambda | LOGIC_FUNCTION_TYPE=LAMBDA | Production avec du code non approuvé | Élevé (isolement au niveau matériel) |
Fonctions logiques - Configuration recommandée
Pour le développement:Interpréteur de code - Pilotes disponibles
| Pilote | Variable d’environnement | Cas d’utilisation | Niveau de sécurité |
|---|---|---|---|
| Désactivé | CODE_INTERPRETER_TYPE=DISABLED | Désactiver l’exécution de code par l’IA | N/A |
| Local | CODE_INTERPRETER_TYPE=LOCAL | Développement uniquement | Faible (aucun sandboxing) |
| E2B | CODE_INTERPRETER_TYPE=E_2_B | Production avec exécution en bac à sable | Élevée (bac à sable isolé) |
Lorsque vous utilisez
LOGIC_FUNCTION_TYPE=DISABLED ou CODE_INTERPRETER_TYPE=DISABLED, toute tentative d’exécution renverra une erreur. Cela est utile si vous souhaitez exécuter Twenty sans ces capacités.