Configuration Management
Twenty offers two configuration modes to suit different deployment needs: Admin panel access: Only users with admin privileges (canAccessFullAdminPanel: true) can access the configuration interface.
1. Admin Panel Configuration (Default)
- Access your Twenty instance (usually
http://localhost:3000) - Go to Settings / Admin Panel / Configuration Variables
- Configure integrations, email, storage, and more
- Changes take effect immediately (within 15 seconds for multi-container deployments)
- Authentication - Google/Microsoft OAuth, password settings
- Email - SMTP settings, templates, verification
- Storage - S3 configuration, local storage paths
- Integrations - Gmail, Google Calendar, Microsoft services
- Workflow & Rate Limiting - Execution limits, API throttling
- And much more…

2. Environment-Only Configuration
.env files:
- Set
IS_CONFIG_VARIABLES_IN_DB_ENABLED=falsein your.envfile - Add all configuration variables to your
.envfile - Restart containers for changes to take effect
- Admin panel will show current values but cannot modify them
Multi-Workspace Mode
By default, Twenty runs in single-workspace mode — ideal for most self-hosted deployments where you need one CRM instance for your organization.Single-Workspace Mode (Default)
- One workspace per Twenty instance
- First user automatically becomes admin with full privileges (
canImpersonateandcanAccessFullAdminPanel) - New signups are disabled after the first workspace is created
- Simple URL structure:
https://your-domain.com
Enabling Multi-Workspace Mode
- Multiple workspaces can be created on the same instance
- Each workspace gets its own subdomain (e.g.,
sales.your-domain.com,marketing.your-domain.com) - Users sign up and log in at
{DEFAULT_SUBDOMAIN}.your-domain.com(e.g.,app.your-domain.com) - No automatic admin privileges — first user in each workspace is a regular user
- Workspace-specific settings like subdomain and custom domain become available in workspace settings
DNS Configuration for Multi-Workspace
When using multi-workspace mode, configure your DNS with a wildcard record to allow dynamic subdomain creation:Restricting Workspace Creation
In multi-workspace mode, you may want to limit who can create new workspaces:canAccessFullAdminPanel can create additional workspaces. Users can still create their first workspace during initial signup.
Gmail & Google Calendar Integration
Create Google Cloud Project
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable these APIs:
Configure OAuth
- Go to Credentials
- Create OAuth 2.0 Client ID
- Add these redirect URIs:
https://{your-domain}/auth/google/redirect(for SSO)https://{your-domain}/auth/google-apis/get-access-token(for integrations)
Configure in Twenty
- Go to Settings → Admin Panel → Configuration Variables
- Find the Google Auth section
- Set these 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
If your app is in test mode
If your app is in test mode, you will need to add test users to your project. Under OAuth consent screen, add your test users to the “Test users” section.Microsoft 365 Integration
Create a project in Microsoft Azure
You will need to create a project in Microsoft Azure and get the credentials.Enable APIs
On Microsoft Azure Console enable the following APIs in “Permissions”:- 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
Authorized redirect URIs
You need to add the following redirect URIs to your project:https://{your-domain}/auth/microsoft/redirectif you want to use Microsoft SSOhttps://{your-domain}/auth/microsoft-apis/get-access-token
Configure in Twenty
- Go to Settings → Admin Panel → Configuration Variables
- Find the Microsoft Auth section
- Set these 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
Configure scopes
See relevant source code- ‘openid’
- ‘email’
- ‘profile’
- ‘offline_access’
- ‘Mail.ReadWrite’
- ‘Mail.Send’
- ‘Calendars.Read’
If your app is in test mode
If your app is in test mode, you will need to add test users to your project. Add your test users to the “Users and groups” section.Background Jobs for Calendar & Messaging
After configuring Gmail, Google Calendar, or Microsoft 365 integrations, you need to start the background jobs that sync data. Register the following recurring jobs in your worker container:Email Configuration
- Go to Settings → Admin Panel → Configuration Variables
- Find the Email section
- Configure your SMTP settings:
Logic Functions
Twenty supports logic functions for workflows and custom logic. The execution environment is configured via theSERVERLESS_TYPE environment variable.
Available Drivers
| Driver | Environment Variable | Use Case | Security Level |
|---|---|---|---|
| Disabled | SERVERLESS_TYPE=DISABLED | Disable logic functions entirely | N/A |
| Local | SERVERLESS_TYPE=LOCAL | Development and trusted environments | Low (no sandboxing) |
| Lambda | SERVERLESS_TYPE=LAMBDA | Production with untrusted code | High (hardware-level isolation) |
Recommended Configuration
For development:When using
SERVERLESS_TYPE=DISABLED, any attempt to execute a logic function will return an error. This is useful if you want to run Twenty without logic function capabilities.