v2.1.0
twentyhq/twentyv2.1.0Apr 24, 2026by charlesBochet
AI Summary
This release introduces infrastructure for pre-installed apps, adds a read-only Billing tab in the admin panel, and enables page layout tab extension via definePageLayoutTab. It also includes workspace export command and removes draft email feature flag.
Key Highlights
- Infrastructure for pre-installed apps
- Admin panel read-only Billing tab and workspace logos
- definePageLayoutTab for extending page layouts
- Workspace export command
- Remove draft email feature flag
Breaking Changes
- Command menu layout customization conditional availability
New Features
- Pre-installed apps infrastructure
- Billing tab in admin panel
- Page layout tab extension
- Workspace export
- Page layout reset functionality
Full Release Notes
## What's Changed * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19915 * chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19914 * Fix Email composer rich text to HTML conversion by @neo773 in https://github.com/twentyhq/twenty/pull/19872 * Docs: restructure navigation, add halftone illustrations, clean up hero images by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19728 * chore(website-new): reword FAQ copy on hosting and Organization plan by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19917 * docs: remove alpha warning from apps pages except skills & agents by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19919 * chore: remove IS_AI_ENABLED feature flag by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19916 * Fix side panel hotkeys breaking when opening records from table by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19849 * Revert "fix compute folders to update util (#19749)" by @neo773 in https://github.com/twentyhq/twenty/pull/19921 * Add 2.0.0 release changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/19923 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19925 * Cross version and upgrade status docs by @prastoin in https://github.com/twentyhq/twenty/pull/19926 * Website - small fixes by @etiennejouan in https://github.com/twentyhq/twenty/pull/19918 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19928 * fix email workflow by @neo773 in https://github.com/twentyhq/twenty/pull/19929 * Cross version ci placeholder by @prastoin in https://github.com/twentyhq/twenty/pull/19932 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19934 * [Website] Fix flickering of faq illustration. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19920 * Fix self-hosting pricing page design. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/19930 * Reset default app packages command by @prastoin in https://github.com/twentyhq/twenty/pull/19931 * Import - Fix by @etiennejouan in https://github.com/twentyhq/twenty/pull/19938 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19939 * Allow closing navbar folder while viewing an active child item by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19936 * Optimize 3d models by @neo773 in https://github.com/twentyhq/twenty/pull/19935 * Optimize website images by @neo773 in https://github.com/twentyhq/twenty/pull/19933 * Export generateDefaultFieldUniversalIdentifier from SDK by @Weiko in https://github.com/twentyhq/twenty/pull/19937 * Remove cross version upgrade placeholder by @prastoin in https://github.com/twentyhq/twenty/pull/19940 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19943 * Fix left/right arrow keys not working in dropdown search inputs by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/19759 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19944 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19948 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19952 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19954 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19955 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19956 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19957 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19958 * Remove Product Hunt banner section by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19959 * refactor(tool-provider): dedupe descriptor/generator paths by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19960 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19967 * refactor(tool-provider): kill execute_tool's dual dispatch by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19962 * refactor(tool-provider): rename NativeModelToolProvider to NativeToolBinderService by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19966 * fix: restore Try Twenty button text visibility on docs navbar by @Yash-Raj-5424 in https://github.com/twentyhq/twenty/pull/19968 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19970 * refactor(tool-provider): rename web_search to exa_web_search, drop XOR toggle by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19969 * Update settings application illustrations and app metadata previews by @Bonapara in https://github.com/twentyhq/twenty/pull/19964 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19975 * feat(sdk): confirm authentication method on remote add by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19947 * fix(server): preserve kanban/calendar fields in view manifest sync by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19946 * Cleanup application and app registration test util by @prastoin in https://github.com/twentyhq/twenty/pull/19981 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19983 * Docs - Update getting started by @etiennejouan in https://github.com/twentyhq/twenty/pull/19976 * fix(page-layout): hide deactivated fields from FIELDS widget and layout editor by @Weiko in https://github.com/twentyhq/twenty/pull/19984 * Forbid permissions update cross app role retarget by @prastoin in https://github.com/twentyhq/twenty/pull/19982 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19987 * feat(community): add github-connector example app by @charlesBochet in https://github.com/twentyhq/twenty/pull/19961 * Resend app improvements by @bosiraphael in https://github.com/twentyhq/twenty/pull/19986 * scaffold record page layout + fields view when adding an object by @Weiko in https://github.com/twentyhq/twenty/pull/19977 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/19988 * chore(deps): bump @blocknote/server-util from 0.47.1 to 0.47.3 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/19997 * chore(deps): bump @ai-sdk/google from 3.0.31 to 3.0.64 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/19998 * Fix layout edition mode dark mode text color by @Weiko in https://github.com/twentyhq/twenty/pull/19992 * optimize workspace export command by @neo773 in https://github.com/twentyhq/twenty/pull/20000 * feat(sdk): add definePageLayoutTab for extending existing page layouts by @charlesBochet in https://github.com/twentyhq/twenty/pull/20004 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20007 * Stop throwing for event stream does not exists by @thomtrp in https://github.com/twentyhq/twenty/pull/20008 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20009 * Force uuids in AI workflow tools by @thomtrp in https://github.com/twentyhq/twenty/pull/20010 * Retrieve ai catalog at bootstrap by @prastoin in https://github.com/twentyhq/twenty/pull/20005 * fix(admin-panel): inline skeleton loaders for table sections by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20014 * feat(app): infrastructure for pre-installed apps by @FelixMalfait in https://github.com/twentyhq/twenty/pull/19973 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20015 * feat(admin-panel): add read-only Billing tab and workspace logos by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20012 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20016 * Fix: Database query on opportunity table by @sonarly[bot] in https://github.com/twentyhq/twenty/pull/20017 * chore: sync AI model catalog from models.dev by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20018 * Keep fallback record page layouts read-only in edition mode by @Weiko in https://github.com/twentyhq/twenty/pull/20023 * Fix layout edition mode dark mode text color - 2 by @Weiko in https://github.com/twentyhq/twenty/pull/20024 * [Command Menu] Refactor layout customization conditional availability [Warning] by @ehconitin in https://github.com/twentyhq/twenty/pull/19974 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/20027 * Removing community apps in favor of npm-distributed apps by @Weiko in https://github.com/twentyhq/twenty/pull/20029 * Dockerfile `twenty-server` target by @prastoin in https://github.com/twentyhq/twenty/pull/20028 * backfill widget position from gridPosition (phase 1 of gridPosition removal) by @Weiko in https://github.com/twentyhq/twenty/pull/20032 * [breaking, deploy server first] fix(ai-chat): persist providerExecuted flag on tool parts by @FelixMalfait in https://github.com/twentyhq/twenty/pull/20030 * Clarify registry tools vs native model tool binding by @ehconitin in https://github.com/twentyhq/twenty/pull/20022 * Gate export/import command menu items by permission flag by @Weiko in https://github.com/twentyhq/twenty/pull/19991 * chore(twenty-sdk): shrink logic-function bundles via stubbing by @charlesBochet in https://github.com/twentyhq/twenty/pull/20033 * [Website] Architecture, hardening, and perf pass. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/20020 * Move isPreInstalled applicationRegistration instance command to 2.1 by @charlesBochet in https://github.com/twentyhq/twenty/pull/20037 ## New Contributors * @Yash-Raj-5424 made their first contribution in https://github.com/twentyhq/twenty/pull/19968 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v2.0.0...v2.1.0