v1.0.0

twentyhq/twentyv1.0.0Jun 25, 2025by charlesBochet

AI Summary

This is the v1.0.0 release of Twenty - the first stable release of this CRM platform. It includes major improvements to the permissions system (V2), workflow enhancements with a new AI Agent workflow action node, infrastructure additions like OpenTelemetry and Grafana monitoring, and numerous bug fixes including GraphQL error handling improvements.

Key Highlights

  • First stable v1.0.0 release of Twenty CRM platform
  • Permissions V2 system fully released - feature flag removed with improved role management and object-level permissions
  • New AI Agent workflow action node added for automation
  • Added OpenTelemetry and Grafana for infrastructure monitoring
  • Multiple bug fixes including GraphQL errors, calendar events, and record picker issues

Breaking Changes

  • BREAKING CHANGE: Fix graphql errors - improves error handling but may change API response format
  • Record filter `greaterThan` now behaves inclusively like `lowerThan` - behavior change for filters
  • Remove ID field + fix relations + remove runs - schema change that may affect existing integrations
  • Remove number from label identifier list - changes which fields can be used as identifiers

New Features

  • Add AI Agent workflow action node for workflow automation
  • Ability to switch currency format in settings
  • Loading state added to save buttons in settings
  • OpenTelemetry and Grafana added for infrastructure monitoring
  • Improved captcha telemetry for error tracking
  • Add object-level form to role creation for permissions management
  • Add metrics to workflows for monitoring
  • Import duplicate check feature added

Full Release Notes

## What's Changed
* Remove workflow feature flag by @thomtrp in https://github.com/twentyhq/twenty/pull/12732
* Fixed record pickers create new by @lucasbordeau in https://github.com/twentyhq/twenty/pull/12705
* fix(): add loader on signup by @AMoreaux in https://github.com/twentyhq/twenty/pull/12714
* 0.60.0 upgrade commands by @prastoin in https://github.com/twentyhq/twenty/pull/12735
* Transform record phone field metadata by @prastoin in https://github.com/twentyhq/twenty/pull/12706
* 12690-error-unknown-error-importing-calendar-events-reafcto-required by @guillim in https://github.com/twentyhq/twenty/pull/12711
* Protect serverless migration metadata operations interacting with metadata by @prastoin in https://github.com/twentyhq/twenty/pull/12739
* Prevent workflows to be opened in side panel by @thomtrp in https://github.com/twentyhq/twenty/pull/12738
* Remove url checking in workflow run by @martmull in https://github.com/twentyhq/twenty/pull/12743
* Revert "fix(signinup): several issues (#12698)" by @ijreilly in https://github.com/twentyhq/twenty/pull/12745
* Add icon select to manual trigger by @martmull in https://github.com/twentyhq/twenty/pull/12724
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12747
* Set viewport when nodes dimensions are ready by @Devessier in https://github.com/twentyhq/twenty/pull/12730
* Improve seeds 3 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/12740
* OTLP Metrics - update to delta aggregation by @etiennejouan in https://github.com/twentyhq/twenty/pull/12752
* UpdateServerless migration fix 2 by @prastoin in https://github.com/twentyhq/twenty/pull/12755
* fix(auth): add captcha auto-refresh via ApolloLink by @AMoreaux in https://github.com/twentyhq/twenty/pull/12758
* fix(auth): handle availableWorkspacesCount correctly when listing wor… by @AMoreaux in https://github.com/twentyhq/twenty/pull/12746
* fix(auth): social login by @AMoreaux in https://github.com/twentyhq/twenty/pull/12759
* [permissions][FE] followup design fixes 4 by @Weiko in https://github.com/twentyhq/twenty/pull/12737
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12764
* Refactor sync metadata to handle index creation if already exists by @guillim in https://github.com/twentyhq/twenty/pull/12757
* Fix webhook size too big by @charlesBochet in https://github.com/twentyhq/twenty/pull/12749
* Upgrade guide cache flush for 0.55 user permissions not found by @prastoin in https://github.com/twentyhq/twenty/pull/12765
* fix confirm close dialog + add restart confirm dialog by @etiennejouan in https://github.com/twentyhq/twenty/pull/12761
* Fix flaky calendar test by @FelixMalfait in https://github.com/twentyhq/twenty/pull/12760
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12767
* Gap fixes on search record by @thomtrp in https://github.com/twentyhq/twenty/pull/12766
* Fix attachment body not being loaded by @charlesBochet in https://github.com/twentyhq/twenty/pull/12770
* `getLabelIdentifierFieldValue` should always return string by @prastoin in https://github.com/twentyhq/twenty/pull/12772
* Onboarding - delete PENDING_CREATION workspace if billing is deactivated by @etiennejouan in https://github.com/twentyhq/twenty/pull/12704
* Hide tab system for pending form nodes by @Devessier in https://github.com/twentyhq/twenty/pull/12769
* Allow json in workflow run's error field by @Devessier in https://github.com/twentyhq/twenty/pull/12762
* feat: Add AI Agent workflow action node by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/12650
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12777
* BREAKING CHANGE: Fix graphql errors by @charlesBochet in https://github.com/twentyhq/twenty/pull/12775
* add firstname and lastname on current user state and sync it while cr… by @ehconitin in https://github.com/twentyhq/twenty/pull/12781
* Fix e2e tests by @Devessier in https://github.com/twentyhq/twenty/pull/12783
* [permissions - seeds] Give tim@apple.dev restricted rights by @ijreilly in https://github.com/twentyhq/twenty/pull/12768
* Fix export to pdf by @FelixMalfait in https://github.com/twentyhq/twenty/pull/12782
* Fix rating field default value by @prastoin in https://github.com/twentyhq/twenty/pull/12792
* Import - fix import with multiple unique constraints by @etiennejouan in https://github.com/twentyhq/twenty/pull/12784
* Record filter `greaterThan` becomes inclusive as `lowerThan` by @prastoin in https://github.com/twentyhq/twenty/pull/12786
* [permissions V2] Remove feature flag by @ijreilly in https://github.com/twentyhq/twenty/pull/12790
* Fix styling inconsistency for FormSingleRecordFieldChip placeholder by @Devessier in https://github.com/twentyhq/twenty/pull/12795
* Remove ID field + fix relations + remove runs by @thomtrp in https://github.com/twentyhq/twenty/pull/12796
* 12660 bugapi create one person post api request example is returning 400 in playground by @martmull in https://github.com/twentyhq/twenty/pull/12787
* Generate id for standard multi select field options by @thomtrp in https://github.com/twentyhq/twenty/pull/12799
* [Messaging logs] Better logging AggregateError by @guillim in https://github.com/twentyhq/twenty/pull/12801
* Add position / positions to reserved keywords by @ijreilly in https://github.com/twentyhq/twenty/pull/12800
* Set error message not absolute by @thomtrp in https://github.com/twentyhq/twenty/pull/12802
* [Permissions][FE] Design followup 5 by @Weiko in https://github.com/twentyhq/twenty/pull/12793
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12804
* [permissions V2] Fix - filter objects to search by @ijreilly in https://github.com/twentyhq/twenty/pull/12803
* register all cron jobs in entrypoint by @ehconitin in https://github.com/twentyhq/twenty/pull/12791
* Improve performance on metadata computation by @charlesBochet in https://github.com/twentyhq/twenty/pull/12785
* Fix CombinedFindManyRecords with permissions by @Weiko in https://github.com/twentyhq/twenty/pull/12805
* feat(settings): add loading state to save buttons by @AMoreaux in https://github.com/twentyhq/twenty/pull/11639
* Add loader on workspace creation by @charlesBochet in https://github.com/twentyhq/twenty/pull/12806
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12807
* feat: ability to switch currency format by @MohitAgrawal16 in https://github.com/twentyhq/twenty/pull/12542
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12809
* Fixes date filter chip bugs by @lucasbordeau in https://github.com/twentyhq/twenty/pull/12788
* feat(infra-dev): add opentelemetry and grafana by @AMoreaux in https://github.com/twentyhq/twenty/pull/12808
* Fixed record picker loading flickering by @lucasbordeau in https://github.com/twentyhq/twenty/pull/12736
* in connected account, refresh-token can fail with network error by @guillim in https://github.com/twentyhq/twenty/pull/12815
* Fixed relative date filter initalization by @lucasbordeau in https://github.com/twentyhq/twenty/pull/12811
* Fixed ACTOR advanced filter recent regressions by @lucasbordeau in https://github.com/twentyhq/twenty/pull/12813
* Query dynamic cache key computation  by @charlesBochet in https://github.com/twentyhq/twenty/pull/12814
* [Permissions] Force open title input for role label when empty by @Weiko in https://github.com/twentyhq/twenty/pull/12710
* Revert "[Permissions] Force open title input for role label when empty" by @Weiko in https://github.com/twentyhq/twenty/pull/12817
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12818
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12820
* additionaldata-message-exception by @guillim in https://github.com/twentyhq/twenty/pull/12819
* Improve breaking change CI by @FelixMalfait in https://github.com/twentyhq/twenty/pull/12816
* Improve onboarding experience by @charlesBochet in https://github.com/twentyhq/twenty/pull/12824
* Fix phone deletion by @ijreilly in https://github.com/twentyhq/twenty/pull/12821
* Add object level form to role creation by @Weiko in https://github.com/twentyhq/twenty/pull/12826
* i18n - translations by @github-actions in https://github.com/twentyhq/twenty/pull/12828
* Use main dataSource to query CRON jobs by @martmull in https://github.com/twentyhq/twenty/pull/12830
* Add metrics to workflows by @thomtrp in https://github.com/twentyhq/twenty/pull/12829
* switch datasourcing by @guillim in https://github.com/twentyhq/twenty/pull/12825
* fix type by @etiennejouan in https://github.com/twentyhq/twenty/pull/12832
* Import - add duplicate check on import by @etiennejouan in https://github.com/twentyhq/twenty/pull/12810
* Add logging for recaptcha token by @charlesBochet in https://github.com/twentyhq/twenty/pull/12834
* Add graphql queries error codes metrics by @Weiko in https://github.com/twentyhq/twenty/pull/12833
* fix phones in prefill by @etiennejouan in https://github.com/twentyhq/twenty/pull/12838
* Fix bug on sso providers by @AMoreaux in https://github.com/twentyhq/twenty/pull/12841
* Use default color in Loader component for CSS variable by @Devessier in https://github.com/twentyhq/twenty/pull/12844
* Fix recordTableCells being displayed several time on record group tables by @charlesBochet in https://github.com/twentyhq/twenty/pull/12843
* fix confirmation modal on subdomain settings by @ehconitin in https://github.com/twentyhq/twenty/pull/12845
* Force readonly for deletedAt field by @Weiko in https://github.com/twentyhq/twenty/pull/12840
* feat(captcha): improve telemetry on captcha error by @AMoreaux in https://github.com/twentyhq/twenty/pull/12836
* Fix resolver-validation validation snake trap by @prastoin in https://github.com/twentyhq/twenty/pull/12850
* Remove number from label identifier list by @prastoin in https://github.com/twentyhq/twenty/pull/12831
* 1.0.0 commands by @prastoin in https://github.com/twentyhq/twenty/pull/12853
* check on label metadata by @guillim in https://github.com/twentyhq/twenty/pull/12852
* Prevent index updates during sync metadata by @charlesBochet in https://github.com/twentyhq/twenty/pull/12856

## New Contributors
* @MohitAgrawal16 made their first contribution in https://github.com/twentyhq/twenty/pull/12542

**Full Changelog**: https://github.com/twentyhq/twenty/compare/v0.60.0...v1.0.0