v0.21.0

twentyhq/twentyv0.21.0Jul 8, 2024by charlesBochet

AI Summary

v0.21.0 of Twenty is a substantial release focused on CSV import/export capabilities, calendar V2 improvements, and enhanced UI/UX. Key additions include an upsert endpoint for CSV import, multiple new currency support (Thai Baht, Brazilian Real, Australian Dollar, South Korean Won), and a new Settings Tabs interface. The release also includes significant backend improvements around messaging/calendar sync and metadata API fixes.

Key Highlights

  • CSV Import/Export with upsert capability - allows importing and updating existing records
  • Calendar V2 feature flag and new sync statuses for improved calendar management
  • Added support for 4 new currencies: Thai Baht, Brazilian Real, Australian Dollar, and South Korean Won
  • New Settings Tabs interface for better organization of account/workspace settings
  • Enhanced filter capabilities - support for orderBy arrays, multiple filters of same type, and empty/non-empty filters

New Features

  • Upsert endpoint for CSV import allowing record updates
  • Boolean with toggle support in CSV import
  • Basic import for select fields in CSV
  • Calendar V2 feature flag and new sync statuses/stages
  • Refactored Calendar Settings into tabs
  • Message queue module enhancements with decorators
  • Text-to-SQL proof of concept
  • Collapsible navigation menu
  • Data skeleton loading on indexes
  • Alert banner component
  • RatingFieldDisplay component added and optimized
  • Empty and Non-Empty filter support
  • Workspace sync fields refactored
  • Onboarding status computation moved from frontend to backend
  • Relations many in table view support
  • Favicon hover re-render fix
  • Date picker timezone fixes
  • Infinite scroll refactored with debouncing
  • S3 credentials support via environment variables
  • Dynamic hook registration for WorkspaceQueryHooks

Full Release Notes

## What's Changed
* Add label to mocked connections by @thomtrp in https://github.com/twentyhq/twenty/pull/5858
* fix timeline activity pagination overflow by @Weiko in https://github.com/twentyhq/twenty/pull/5861
* Add log for errors on message import by @charlesBochet in https://github.com/twentyhq/twenty/pull/5863
* Support orderBy as array by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5681
* fix: text field overflow beyond cell limits by @siiddhantt in https://github.com/twentyhq/twenty/pull/5834
* Collapsible menu by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5846
* Fix workspaceLogo in invite-email by @martmull in https://github.com/twentyhq/twenty/pull/5865
* Fix error log on message import by @bosiraphael in https://github.com/twentyhq/twenty/pull/5866
* Fix sentry error by @martmull in https://github.com/twentyhq/twenty/pull/5848
* Fix overflow on notes by @martmull in https://github.com/twentyhq/twenty/pull/5853
* Record horizontal scrolling mobile by @RobertoSimonini1 in https://github.com/twentyhq/twenty/pull/5843
* fix: 404 generate API key link by @michaelgold in https://github.com/twentyhq/twenty/pull/5871
* Wrote 0.20 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/5870
* Fix website docs by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5873
* Added Thai Baht support by @Ymirke in https://github.com/twentyhq/twenty/pull/5881
* feat: Enhancements to MessageQueue Module with Decorators by @magrinj in https://github.com/twentyhq/twenty/pull/5657
* 5236 expandable list leave options when editing by @martmull in https://github.com/twentyhq/twenty/pull/5890
* 5581 get httpsapitwentycomrestmetadata relations not working by @martmull in https://github.com/twentyhq/twenty/pull/5867
* Fix verticale line timeline activity by @thomtrp in https://github.com/twentyhq/twenty/pull/5894
* Added and optimized missing RatingFieldDisplay component by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5904
* Fix secondaryLinks field input by @thomtrp in https://github.com/twentyhq/twenty/pull/5911
* add multiple filters of same FieldMetadataType by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5892
* Add South Korean won to currency codes by @hanchchch in https://github.com/twentyhq/twenty/pull/5914
* Upgrade pg graphql version to 1.5.6 by @martmull in https://github.com/twentyhq/twenty/pull/5937
* Add loader and transition for details page tabs by @thomtrp in https://github.com/twentyhq/twenty/pull/5935
* website / Fix broken links, slow loading, and prod errors by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5932
* 5582 get httpsapitwentycomrestmetadata objects filters dont work by @martmull in https://github.com/twentyhq/twenty/pull/5906
* Add http status to graphql errors by @thomtrp in https://github.com/twentyhq/twenty/pull/5896
* Handle no concurrency option by @thomtrp in https://github.com/twentyhq/twenty/pull/5952
* Favicons are being re-rendered on hover by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5849
* Add a ⏎ shortcut on Select options by @RamK777-stack in https://github.com/twentyhq/twenty/pull/5641
* Added a mechanism to reset error boundary on page change. by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5913
* fix(twenty-front): update DateTimeInput styles to apply top border radius to date picker by @theonly1me in https://github.com/twentyhq/twenty/pull/5946
* (5943) Match country selector button's background to phone number input's background by @JoshuaZacek in https://github.com/twentyhq/twenty/pull/5956
* [Bug] Put back subject is email right drawer  by @thomtrp in https://github.com/twentyhq/twenty/pull/5955
* Data Skeleton Loading on Indexes by @gitstart-twenty in https://github.com/twentyhq/twenty/pull/5828
* 5934 create alert banner component by @bosiraphael in https://github.com/twentyhq/twenty/pull/5950
* Fix reconnect google account bug by @bosiraphael in https://github.com/twentyhq/twenty/pull/5905
* 5898 Create a cron to monitor messageChannelSyncStatus by @bosiraphael in https://github.com/twentyhq/twenty/pull/5933
* Feat : Introduced Delay Options for Tooltip by @t007rushi in https://github.com/twentyhq/twenty/pull/5766
* add object id column to csv export by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5971
* fix: Column header menu Filter button by @AdityaPimpalkar in https://github.com/twentyhq/twenty/pull/5973
* Fix date picker wrong on certain timezones by @lucasbordeau in https://github.com/twentyhq/twenty/pull/5972
* Add the support of Empty and Non-Empty filter by @pacyL2K19 in https://github.com/twentyhq/twenty/pull/5773
* Fix(view): `Create` Button is not visible when creating `Kanban` View by @Us3r-gitHub in https://github.com/twentyhq/twenty/pull/5969
* Add disabled style on non-draggable menu items by @thomtrp in https://github.com/twentyhq/twenty/pull/5974
* Update LOGGER_DRIVER env var description by @JarWarren in https://github.com/twentyhq/twenty/pull/5968
* Fix: Selected Line Not Fully Highlighted in Blue by @akarsanth in https://github.com/twentyhq/twenty/pull/5966
* fix: background colors for record table by @AkiPraveen in https://github.com/twentyhq/twenty/pull/5967
* Fix links chip design by @thomtrp in https://github.com/twentyhq/twenty/pull/5963
* Navigation Panel UI Sizing Changes by @Ymirke in https://github.com/twentyhq/twenty/pull/5964
* feat: add brazilian real currency by @vitorhugoro1 in https://github.com/twentyhq/twenty/pull/5989
* feat: drop calendar repository by @magrinj in https://github.com/twentyhq/twenty/pull/5824
* [FlexibleSchema] Add IndexMetadata decorator by @Weiko in https://github.com/twentyhq/twenty/pull/5981
* Improve tests by @charlesBochet in https://github.com/twentyhq/twenty/pull/5994
* Fix infinite scroll issue on table by @charlesBochet in https://github.com/twentyhq/twenty/pull/5996
* Remove Right-Edge Gap in Table Cell Display by @rksingh2001 in https://github.com/twentyhq/twenty/pull/5992
* Refactor infiniteScoll to use debouncing by @charlesBochet in https://github.com/twentyhq/twenty/pull/5999
* Create feature flag for calendar V2 by @bosiraphael in https://github.com/twentyhq/twenty/pull/5998
* Turned on tooltip on kanban cards with shortDelay by @atharvParlikar in https://github.com/twentyhq/twenty/pull/5991
* feat: add australian dollar currency by @rob-luke in https://github.com/twentyhq/twenty/pull/5990
* Add update chevron by @akarsanth in https://github.com/twentyhq/twenty/pull/5988
* Fix(view): Show Kanban View Creation by @Us3r-gitHub in https://github.com/twentyhq/twenty/pull/5985
* Remove multi select usage by @charlesBochet in https://github.com/twentyhq/twenty/pull/6004
* Create new sync statuses and stages for calendar by @bosiraphael in https://github.com/twentyhq/twenty/pull/5997
* 5951 create a command to trigger the import of a single message by @bosiraphael in https://github.com/twentyhq/twenty/pull/5962
* Add calendar cron command on self-hosting-var.mdx by @hanchchch in https://github.com/twentyhq/twenty/pull/6009
* Remove useless api position parameter by @martmull in https://github.com/twentyhq/twenty/pull/6010
* Fix sign up broken because of missing workspace schema by @charlesBochet in https://github.com/twentyhq/twenty/pull/6013
* 5615 create messageongoingstalecron by @bosiraphael in https://github.com/twentyhq/twenty/pull/6005
* feat: Dynamic hook registration for WorkspaceQueryHooks by @magrinj in https://github.com/twentyhq/twenty/pull/6008
* Fix billing signup when workspace does not exist by @Weiko in https://github.com/twentyhq/twenty/pull/6018
* Removed performance optimization and put back previous system with recoil states for  edit mode and soft focus to avoid side effects. by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6019
* Remove message-import cache when connectedAccount is removed by @charlesBochet in https://github.com/twentyhq/twenty/pull/6021
* Upsert endpoint and CSV import upsert by @FelixMalfait in https://github.com/twentyhq/twenty/pull/5970
* Add mutationMaximumRecordAffected to clientConfig by @Weiko in https://github.com/twentyhq/twenty/pull/6039
* Don't display unmatched columns in csv import by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6037
* Fix search in csv import by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6045
* Rename mutation maximum affected records by @Weiko in https://github.com/twentyhq/twenty/pull/6042
* Basic import for select in CSV by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6047
* Add boolean with toggle in csv import by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6050
* Improve gmail error handling by catching and throttling for 400 failedPrecondition by @bosiraphael in https://github.com/twentyhq/twenty/pull/6044
* Fix cache flush in messaging-channel-sync-status.service by @bosiraphael in https://github.com/twentyhq/twenty/pull/6024
* hide delete button for selection over 100 - issue #6023 by @Adithej in https://github.com/twentyhq/twenty/pull/6030
* Relations many in table view by @ijreilly in https://github.com/twentyhq/twenty/pull/5842
* feat: manually implement joinColumn by @magrinj in https://github.com/twentyhq/twenty/pull/6022
* Update create-workspace.mdx by @Bonapara in https://github.com/twentyhq/twenty/pull/6053
* Manage isFocused state for table cells by @ijreilly in https://github.com/twentyhq/twenty/pull/6058
* Replace ObjectRecord<MessageChannelWorkspaceEntity> with MessageChannelWorkspaceEntity by @bosiraphael in https://github.com/twentyhq/twenty/pull/6059
* Fixed board card field max width by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6061
* fix navigation panel workspace picker padding by @Weiko in https://github.com/twentyhq/twenty/pull/6062
* Create fields for calendar and messaging settings v2 by @bosiraphael in https://github.com/twentyhq/twenty/pull/6049
* Change messaging batch size and cron pattern by @bosiraphael in https://github.com/twentyhq/twenty/pull/6063
* 5901 refactor email and calendar auto contact creation to create them by batch by @bosiraphael in https://github.com/twentyhq/twenty/pull/6038
* Refactor messaging refresh access token by @bosiraphael in https://github.com/twentyhq/twenty/pull/6034
* 5095 move onboardingstatus computation from frontend to backend by @martmull in https://github.com/twentyhq/twenty/pull/5954
* 0.21 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/6072
* Clarify storybook tests by @charlesBochet in https://github.com/twentyhq/twenty/pull/6073
* Improve use set next onboarding state by @martmull in https://github.com/twentyhq/twenty/pull/6076
* Allow s3 credentials via env by @brendanlaschke in https://github.com/twentyhq/twenty/pull/6066
* Remove CSS modules by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6017
* feat: message cleaner drop repository by @magrinj in https://github.com/twentyhq/twenty/pull/6052
* fix: message cleaner find operator by @magrinj in https://github.com/twentyhq/twenty/pull/6080
* Fix: Tasks-List-page-Person-Switcher by @srikary12 in https://github.com/twentyhq/twenty/pull/6077
* Add exceptions for metadata modules by @thomtrp in https://github.com/twentyhq/twenty/pull/6070
* 5748 Create contacts for emails sent and received by email aliases by @bosiraphael in https://github.com/twentyhq/twenty/pull/5855
* Fix lint and used constant by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6082
* Use invalid field input error for invalid object metadata input by @thomtrp in https://github.com/twentyhq/twenty/pull/6083
* Fix Active Workspaces check by @charlesBochet in https://github.com/twentyhq/twenty/pull/6084
* feature to reset value in select field by @Sudarsh1010 in https://github.com/twentyhq/twenty/pull/6067
* Reorganise calendar module by @charlesBochet in https://github.com/twentyhq/twenty/pull/6089
* Fix calendar import cron job by @bosiraphael in https://github.com/twentyhq/twenty/pull/6096
* feat: refactor workspace sync fields by @magrinj in https://github.com/twentyhq/twenty/pull/6069
* Use return await to catch exceptions by @thomtrp in https://github.com/twentyhq/twenty/pull/6109
* Fix rating field not editable if null by @Weiko in https://github.com/twentyhq/twenty/pull/6110
* Fix pg-boss worker not working with dynamic injection by @charlesBochet in https://github.com/twentyhq/twenty/pull/6119
* Fix workspace sync issue by @charlesBochet in https://github.com/twentyhq/twenty/pull/6121
* fix: small PR fixes workspace-sync-fields by @magrinj in https://github.com/twentyhq/twenty/pull/6107
* Text-to-SQL proof of concept by @ad-elias in https://github.com/twentyhq/twenty/pull/5788
* Hotfix tests after AI PR by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6124
* fix: message queue injection issue by @magrinj in https://github.com/twentyhq/twenty/pull/6126
* Forbid names above 63 characters to comply with pg identifier limit by @ijreilly in https://github.com/twentyhq/twenty/pull/6095
* Fix website doc search by @FelixMalfait in https://github.com/twentyhq/twenty/pull/6134
* Implement Settings Tabs by @charlesBochet in https://github.com/twentyhq/twenty/pull/6136
* Add command to update boolean fields null values by @ijreilly in https://github.com/twentyhq/twenty/pull/6113
* Fix sort with Email and FullName field types and add sort/filter to labelIdentifier column by @Weiko in https://github.com/twentyhq/twenty/pull/6132
* 5421 box shadow on frozen header and first column by @lucasbordeau in https://github.com/twentyhq/twenty/pull/6130
* Fix storybook tests by @charlesBochet in https://github.com/twentyhq/twenty/pull/6150
* Refactor Calendar Settings into tabs by @charlesBochet in https://github.com/twentyhq/twenty/pull/6153
* Add new Settings to front-end by @charlesBochet in https://github.com/twentyhq/twenty/pull/6154
* Small fixes on accounts settings by @bosiraphael in https://github.com/twentyhq/twenty/pull/6157
* Add message import granulary on non-pro emails, group emails and received contact creation by @charlesBochet in https://github.com/twentyhq/twenty/pull/6156
* Fix z-index issue on dropdown by @charlesBochet in https://github.com/twentyhq/twenty/pull/6160
* Bump version to 0.21 by @charlesBochet in https://github.com/twentyhq/twenty/pull/6161

## New Contributors
* @michaelgold made their first contribution in https://github.com/twentyhq/twenty/pull/5871
* @Ymirke made their first contribution in https://github.com/twentyhq/twenty/pull/5881
* @hanchchch made their first contribution in https://github.com/twentyhq/twenty/pull/5914
* @theonly1me made their first contribution in https://github.com/twentyhq/twenty/pull/5946
* @JoshuaZacek made their first contribution in https://github.com/twentyhq/twenty/pull/5956
* @t007rushi made their first contribution in https://github.com/twentyhq/twenty/pull/5766
* @Us3r-gitHub made their first contribution in https://github.com/twentyhq/twenty/pull/5969
* @JarWarren made their first contribution in https://github.com/twentyhq/twenty/pull/5968
* @akarsanth made their first contribution in https://github.com/twentyhq/twenty/pull/5966
* @AkiPraveen made their first contribution in https://github.com/twentyhq/twenty/pull/5967
* @vitorhugoro1 made their first contribution in https://github.com/twentyhq/twenty/pull/5989
* @rksingh2001 made their first contribution in https://github.com/twentyhq/twenty/pull/5992
* @Adithej made their first contribution in https://github.com/twentyhq/twenty/pull/6030
* @srikary12 made their first contribution in https://github.com/twentyhq/twenty/pull/6077
* @ad-elias made their first contribution in https://github.com/twentyhq/twenty/pull/5788

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.20.0...v0.21.0