twenty/v2.21.0

twentyhq/twentytwenty/v2.21.0Jul 16, 2026by prastoin

AI Summary

Adds record board drag-and-drop functionality, stabilizes app install version gating, and fixes API key creation permissions.

Key Highlights

  • Record board column drag and drop functionality added.
  • Stabilized app install version-gate integration test.
  • API key creation allowed for users with API keys & webhooks permission.

New Features

  • Record board column drag and drop functionality.
  • Stabilized app install version-gate integration test.
  • Allow API key creation without Roles permission.

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