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