v1.2.0
twentyhq/twentyv1.2.0Jul 28, 2025by Weiko
AI Summary
Twenty v1.2.0 is a significant release introducing Two-Factor Authentication (2FA), SMTP and CalDav driver integrations for email and calendar, major AI agent enhancements including multi-thread support and file attachments, and substantial workflow improvements. The release also includes major backend architecture changes around workspace migration v2, field permissions, and performance optimizations.
Key Highlights
- Implemented Two-Factor Authentication (2FA) for enhanced security
- Added SMTP and CalDav driver integrations for email sending and calendar functionality
- Major AI agent improvements: multi-thread support, file attachments with drag-and-drop, and current context features
- Workflow system enhancements: decoupled HTTP and Send Email nodes, workflow run cleanup (max 1000 per workflow), and improved documentation
- UI/UX improvements: filter design overhaul, dropdown menu headers, connected accounts redesign, and improved keyboard shortcuts
Breaking Changes
- Deprecated FieldMetadataInterface - use ObjectMetadataEntity instead
- Deprecated ObjectMetadataInterface - replaced with ObjectMetadataEntity
- Removed old body structure on notes and tasks
- Removed reference to comments in notes (deprecated)
- Workspace migration v2 introduces new schema structure
New Features
- Two-Factor Authentication (2FA) support
- SMTP Driver for email integration
- CalDav Driver for calendar integration
- Agent chat multi-thread support
- File attachment support in agent chat (including drag-and-drop)
- Multiple file upload in Attachments component
- Create related records from Record standard actions
- Import CSV and Export CSV with permissions
- Create views from Command Menu
- Search any field filter functionality
- AI context awareness (mcp-metadata)
- Workflow V1 Documentation
- Decoupled HTTP node from workflows
- Decoupled Send Email node from workflows
- Connected Accounts UI redesign
- Open filters in side panel
Full Release Notes
## What's Changed * Fix record table click outside by @bosiraphael in https://github.com/twentyhq/twenty/pull/13149 * feat: SMTP Driver Integration by @neo773 in https://github.com/twentyhq/twenty/pull/12993 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13154 * Fix: Inconsistent Workflow Label Letter Casing #13108 by @readul-islam in https://github.com/twentyhq/twenty/pull/13144 * 1.1 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/13151 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13159 * Fix backspace shortcut preventing text deletion in command menu search bar by @bosiraphael in https://github.com/twentyhq/twenty/pull/13157 * relation-integration-tests by @guillim in https://github.com/twentyhq/twenty/pull/13113 * [Critical bugfix]: hotKeyScope configuration record title and dropdown by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13164 * Refresh AI model setup by @FelixMalfait in https://github.com/twentyhq/twenty/pull/13171 * Fix Vite fast refresh warning by @FelixMalfait in https://github.com/twentyhq/twenty/pull/13176 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13179 * Improved dropdown menu headers for filter and sorts by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13177 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13182 * Refactor snackbar old component scoped state by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13183 * Add file support to agent chat by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13187 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13206 * fix(api): Allow deactivation of relation fields by @jbronssin in https://github.com/twentyhq/twenty/pull/13202 * relation-integration-test-delete by @guillim in https://github.com/twentyhq/twenty/pull/13165 * Refactor dialog old component states by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13186 * fix: standardize trigger labels to lowercase by @kahkashanshaik in https://github.com/twentyhq/twenty/pull/13140 * Fix link formatting by @prastoin in https://github.com/twentyhq/twenty/pull/13210 * Fixed global hotkey conflict in inputs by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13209 * Fix: unexpected behavior when deleting Option A and renaming Option B with Option A's value. by @omarNaifer12 in https://github.com/twentyhq/twenty/pull/13204 * Workspace migration v2 testing by @prastoin in https://github.com/twentyhq/twenty/pull/13136 * feat: CalDav Driver by @neo773 in https://github.com/twentyhq/twenty/pull/13170 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13218 * fix: standard object metadata override by @Nabhag8848 in https://github.com/twentyhq/twenty/pull/13215 * Feat: Agent chat multi thread support by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13216 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13224 * Refactor field and cell old component states by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13217 * Add claude.md by @bosiraphael in https://github.com/twentyhq/twenty/pull/13230 * 22 branches 3 by @martmull in https://github.com/twentyhq/twenty/pull/13181 * Agent chat file drag and drop by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13226 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13234 * 13233 zapier update route to create workflow apikey etc by @martmull in https://github.com/twentyhq/twenty/pull/13239 * Stop requesting all workflowRun columns to fix out of memory issue by @martmull in https://github.com/twentyhq/twenty/pull/13241 * Rework locale computation on BE by @charlesBochet in https://github.com/twentyhq/twenty/pull/13247 * feat(ai): add mcp-metadata by @AMoreaux in https://github.com/twentyhq/twenty/pull/13150 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13249 * Increase front coverage by @charlesBochet in https://github.com/twentyhq/twenty/pull/13251 * Morph relation : migration builder by @guillim in https://github.com/twentyhq/twenty/pull/13173 * Workspace metadata migration v2 runner init file structure and services by @prastoin in https://github.com/twentyhq/twenty/pull/13242 * Restrict queried columns to graphql-requested fields by @ijreilly in https://github.com/twentyhq/twenty/pull/13246 * Update filter design by @Devessier in https://github.com/twentyhq/twenty/pull/13243 * Copy patch in twenty-website dockerFile by @prastoin in https://github.com/twentyhq/twenty/pull/13265 * Add db event emitter in twenty orm by @Weiko in https://github.com/twentyhq/twenty/pull/13167 * Fixed missing update in typeorm relations by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13262 * [permissions] Fix query of foreign key field (ex: messageId) by @ijreilly in https://github.com/twentyhq/twenty/pull/13266 * Fix workspace and profile picture upload by @charlesBochet in https://github.com/twentyhq/twenty/pull/13269 * Removed box shadow on draggable cards (used in kanbans) by @Bonapara in https://github.com/twentyhq/twenty/pull/13268 * Fix workspace folder deletion error by @etiennejouan in https://github.com/twentyhq/twenty/pull/13270 * Fix empty combinedFindManyRecords query by @ijreilly in https://github.com/twentyhq/twenty/pull/13267 * morph dataloader specific by @guillim in https://github.com/twentyhq/twenty/pull/13259 * Add Create related records to Record standard actions by @iamjeremylim in https://github.com/twentyhq/twenty/pull/13095 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13279 * Add search any field front logic with its feature flag by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13278 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13281 * Decouple http node from workflows by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13272 * Workflow V1 Documentation (w/o video) by @vickywxng in https://github.com/twentyhq/twenty/pull/13274 * Prevent field name conflicts by @charlesBochet in https://github.com/twentyhq/twenty/pull/13280 * Fix most e2e tests by @Devessier in https://github.com/twentyhq/twenty/pull/13282 * Connect - Relation on FE Importer by @etiennejouan in https://github.com/twentyhq/twenty/pull/13213 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13284 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13285 * Fix broken graphql playground by @charlesBochet in https://github.com/twentyhq/twenty/pull/13287 * Remove old body on note and tasks by @charlesBochet in https://github.com/twentyhq/twenty/pull/13290 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13294 * fix: to open default view from record detail relation section by @Nabhag8848 in https://github.com/twentyhq/twenty/pull/13300 * Deprecate FieldMetadataInterface by @prastoin in https://github.com/twentyhq/twenty/pull/13264 * Remove field metadata interface references by @prastoin in https://github.com/twentyhq/twenty/pull/13305 * Create view tables inside the core schema by @bosiraphael in https://github.com/twentyhq/twenty/pull/13309 * Revert "Connect - Relation on FE Importer (#13213)" by @Weiko in https://github.com/twentyhq/twenty/pull/13313 * Deprecate ObjectMetadataInterface and improve entity typing by @prastoin in https://github.com/twentyhq/twenty/pull/13310 * Add missing emitDestroyEvent implementation by @Weiko in https://github.com/twentyhq/twenty/pull/13316 * morph fix by @guillim in https://github.com/twentyhq/twenty/pull/13311 * Replace ObjectMetadataInterface by ObjectMetadataEntity by @prastoin in https://github.com/twentyhq/twenty/pull/13317 * Remove useless columns by @martmull in https://github.com/twentyhq/twenty/pull/13312 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13321 * Remove the reference to comments in notes (deprecated) by @Bonapara in https://github.com/twentyhq/twenty/pull/13319 * Adapt rest api to field permissions by @ijreilly in https://github.com/twentyhq/twenty/pull/13314 * Refactor mail folders by @charlesBochet in https://github.com/twentyhq/twenty/pull/13302 * Fix small CI escape issue by @FelixMalfait in https://github.com/twentyhq/twenty/pull/13331 * feat: support multiple file upload in Attachments component by @vishwas-babar in https://github.com/twentyhq/twenty/pull/13283 * Fix event emitter and viewGroup by @prastoin in https://github.com/twentyhq/twenty/pull/13340 * [feat]:Added the ability to create a view from Command Menu by @prynsh in https://github.com/twentyhq/twenty/pull/13335 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13341 * Add a note regarding config var documentation by @ehconitin in https://github.com/twentyhq/twenty/pull/13345 * Fix rest metadata api by @Weiko in https://github.com/twentyhq/twenty/pull/13343 * fix(server): plan reserved keyword by @prastoin in https://github.com/twentyhq/twenty/pull/13352 * feat(ai): add current context to ai chat by @AMoreaux in https://github.com/twentyhq/twenty/pull/13315 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13354 * Fixed critical bug with record title cell opening by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13355 * 13227 workflow wrong completed workflowrun state when multiple branches by @martmull in https://github.com/twentyhq/twenty/pull/13344 * fix(ui): keep 2 components for chip by @AMoreaux in https://github.com/twentyhq/twenty/pull/13359 * Fix critical bug in MessagingMessageListFetchService by @bosiraphael in https://github.com/twentyhq/twenty/pull/13350 * 13303 workflow clean workflowruns to keep max 1000 workflowruns per workflow by @martmull in https://github.com/twentyhq/twenty/pull/13353 * Open filters in side panel by @Devessier in https://github.com/twentyhq/twenty/pull/13304 * Fix userFriendlyMessage not showing for fieldMetadata by @ijreilly in https://github.com/twentyhq/twenty/pull/13369 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13372 * copy to clipboard on MultiItemFieldMenuItem by @Nabhag8848 in https://github.com/twentyhq/twenty/pull/13292 * Move getSchemaName to util by @Weiko in https://github.com/twentyhq/twenty/pull/13357 * fix(approved-access-domain): Improve ux by @AMoreaux in https://github.com/twentyhq/twenty/pull/13367 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13373 * FIx main typecheck by @prastoin in https://github.com/twentyhq/twenty/pull/13374 * Fix: Infinite "ONGOING" Status in Messaging Message List Fetch by @guillim in https://github.com/twentyhq/twenty/pull/13370 * Improve FieldMetadataEntity defaultValue, settings and options typing by @prastoin in https://github.com/twentyhq/twenty/pull/13320 * Tt filter step input per variable type by @thomtrp in https://github.com/twentyhq/twenty/pull/13371 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13375 * Fix: deletion and name updates of attachments in body reflected in Files by @omarNaifer12 in https://github.com/twentyhq/twenty/pull/13169 * Implement Two-Factor Authentication (2FA) by @oliverqx in https://github.com/twentyhq/twenty/pull/13141 * Add any field filter requests by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13336 * Open created filter in command menu by @Devessier in https://github.com/twentyhq/twenty/pull/13379 * Create view migration script by @bosiraphael in https://github.com/twentyhq/twenty/pull/13356 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13380 * fix: migrate webhook and API key REST endpoints to core schema by @ehconitin in https://github.com/twentyhq/twenty/pull/13318 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13384 * fix: phone input validation error should display red borders like email input by @Nabhag8848 in https://github.com/twentyhq/twenty/pull/13275 * [permissions] Add read field permission check layer (part 1) by @ijreilly in https://github.com/twentyhq/twenty/pull/13376 * fix: normalize version number using semver.coerce in admin panel version info by @jbronssin in https://github.com/twentyhq/twenty/pull/13348 * fix: invalid byte sequence for encoding by @neo773 in https://github.com/twentyhq/twenty/pull/13387 * Fix increment/decrement methods in twenty orm by @Weiko in https://github.com/twentyhq/twenty/pull/13389 * App version mismatch handling between frontend and backend by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13368 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13395 * Fix AI agent workflow node output variables issue by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13396 * Fix field metadata comparator by @prastoin in https://github.com/twentyhq/twenty/pull/13390 * Improve view migration command by @bosiraphael in https://github.com/twentyhq/twenty/pull/13403 * Add ability to save any field filter to view by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13401 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13405 * Decouple Send Email node from workflows by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13322 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13406 * Morph Relations : deleteOneField by @guillim in https://github.com/twentyhq/twenty/pull/13349 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13408 * Remove dead translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/13409 * Small translation fix by @FelixMalfait in https://github.com/twentyhq/twenty/pull/13410 * Translation cleanup by @FelixMalfait in https://github.com/twentyhq/twenty/pull/13411 * Workspace Folder Deletion Error - add logs for investigation by @etiennejouan in https://github.com/twentyhq/twenty/pull/13385 * Fix rest filter parsing by @Weiko in https://github.com/twentyhq/twenty/pull/13414 * Add nextStepIds to trigger by @martmull in https://github.com/twentyhq/twenty/pull/13413 * Workspace migration v2 Metadadata runner object and field by @prastoin in https://github.com/twentyhq/twenty/pull/13377 * Connect/Disconnect - Add Disconnect logic + Migration to query builders (insert/update) by @etiennejouan in https://github.com/twentyhq/twenty/pull/13271 * Fix date field creation with disabled save button by @Weiko in https://github.com/twentyhq/twenty/pull/13416 * Manage composite fields in step filters by @thomtrp in https://github.com/twentyhq/twenty/pull/13407 * Add upgrade enqueue enum V2 command by @thomtrp in https://github.com/twentyhq/twenty/pull/13422 * Add Import CSV and Export CSV Permissions by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/13421 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13424 * Connect - Import Relation by @etiennejouan in https://github.com/twentyhq/twenty/pull/13419 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13426 * Fix to gmail / ms auth by @thomtrp in https://github.com/twentyhq/twenty/pull/13429 * Improve auth google error msg by @thomtrp in https://github.com/twentyhq/twenty/pull/13431 * Added public lab feature flag for search any field by @lucasbordeau in https://github.com/twentyhq/twenty/pull/13430 * Fix insert step button not displayed by @martmull in https://github.com/twentyhq/twenty/pull/13432 * Update Connected Accounts Design by @neo773 in https://github.com/twentyhq/twenty/pull/13332 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/13437 * 1.2 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/13438 * Disconnect - fix disconnect false by @etiennejouan in https://github.com/twentyhq/twenty/pull/13439 * fix createMany resolver when updating softdeleted record by @etiennejouan in https://github.com/twentyhq/twenty/pull/13425 * Revert "Added public lab feature flag for search any field" by @Weiko in https://github.com/twentyhq/twenty/pull/13441 * remove search any field feature flag by @Weiko in https://github.com/twentyhq/twenty/pull/13442 * Fix missing components.schema for webhooks by @martmull in https://github.com/twentyhq/twenty/pull/13433 * morph relation : renaming an object by @guillim in https://github.com/twentyhq/twenty/pull/13404 * Fix metadata playground not accessible by @martmull in https://github.com/twentyhq/twenty/pull/13446 ## New Contributors * @readul-islam made their first contribution in https://github.com/twentyhq/twenty/pull/13144 * @kahkashanshaik made their first contribution in https://github.com/twentyhq/twenty/pull/13140 * @vishwas-babar made their first contribution in https://github.com/twentyhq/twenty/pull/13283 * @prynsh made their first contribution in https://github.com/twentyhq/twenty/pull/13335 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v1.1.0...v1.2.0