twenty/v2.21.0

elizaOS/elizatwenty/v2.21.0Jul 16, 2026by prastoin

AI Summary

This release adds drag-and-drop functionality to record board columns and improves the stability of app install version gates. It includes database schema invariants enforcement, backfills for system side effects, and pagination for the admin panel app registrations list.

Key Highlights

  • Add drag-and-drop functionality to record board columns
  • Stabilize app install version-gate integration tests
  • Paginate admin panel app registrations list
  • Enforce database schema invariants with check constraint
  • Add receipt metrics to connected account sync webhooks

New Features

  • Record board column drag and drop
  • Paginated admin panel app registrations
  • Receipt metrics for connected account sync webhooks
  • Preload Stripe.js for onboarding payment step
  • Sdk exports `getFieldUniversalIdentifier`

Full Release Notes

## What's Changed
* chore: bump version to 2.21.0 by @twenty-pr[bot] in https://github.com/twentyhq/twenty/pull/22820
* [Twenty-Front]: Record board column drag and drop functionality by @git-init-priyanshu in https://github.com/twentyhq/twenty/pull/22323
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22817
* fix(workflow): make prefilled workflow ids unique per workspace by @thomtrp in https://github.com/twentyhq/twenty/pull/22800
* i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22824
* Disable install button in app install onboarding when no app is selected by @bosiraphael in https://github.com/twentyhq/twenty/pull/22822
* fix(server): stabilize app install version-gate integration test by @prastoin in https://github.com/twentyhq/twenty/pull/22826
* ci: test twenty-apps install against latest dockerhub and local server + new trigger by @prastoin in https://github.com/twentyhq/twenty/pull/22636
* Throw proper error on duplicate emailing domain by @neo773 in https://github.com/twentyhq/twenty/pull/22790
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22833
* chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22842
* fix(server): stabilize flaky app-install workspace-version gate test by @prastoin in https://github.com/twentyhq/twenty/pull/22851
* fix(server): backfill `isSystemSideEffect` on system fields provisioned before 2.15 by @prastoin in https://github.com/twentyhq/twenty/pull/22850
* Bypass corrupted cached front-component responses with a cache-bust query parameter by @martmull in https://github.com/twentyhq/twenty/pull/22854
* chore: upgrade call-recorder, last-contact, people-data-labs to twenty-sdk 2.20 by @prastoin in https://github.com/twentyhq/twenty/pull/22852
* fix(website): query isVetted so the apps marketplace renders again by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/22859
* Paginate admin panel app registrations list by @martmull in https://github.com/twentyhq/twenty/pull/22734
* i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/22861
* fix(server): gate workspaceDiscoverability behind upgrade decorator by @prastoin in https://github.com/twentyhq/twenty/pull/22818
* Add receipt metrics and logs to connected account sync webhooks by @neo773 in https://github.com/twentyhq/twenty/pull/22853
* Preload Stripe.js before the onboarding payment step by @FelixMalfait in https://github.com/twentyhq/twenty/pull/22858
* Sdk exports `getFieldUniversalIdentifier` + docs by @prastoin in https://github.com/twentyhq/twenty/pull/22856
* Fix stale relation table in field widget when switching records in side panel by @Weiko in https://github.com/twentyhq/twenty/pull/22829
* harden(server): backfill and enforce workspace.databaseSchema invariant with a check constraint by @prastoin in https://github.com/twentyhq/twenty/pull/22855


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