Twenty logo

Twenty

The open alternative to Salesforce, designed for AI

Alternative to: salesforce, hubspot, pipedrive, zoho crm

Twenty screenshot

About Versions (125)

sdk/v2.45.0

2026-10-05

⚠️ Breaking changes

  • [BREAKING_CHANGE] Declare application registration variables through the manifest only (#26856) by @prastoin
  • Start a record’s conversation from the record, and show a conversation’s records in its header (#26873) by @FelixMalfait
  • Move product URLs out of twenty-ui (#26908) by @bosiraphael
  • [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout (#27021) by @FelixMalfait

✨ New features

  • feat: knip (#26351) by @BOHEUS
  • feat(ui): no unchecked indexed access twenty UI (#26493) by @BOHEUS
  • feat(sdk): expose programmatic application client generation (#26889) by @Weiko
  • feat(ai): answer every Ask through answerAsk, let agents propose emails and wait on several Asks at once (#26930) by @FelixMalfait
  • feat(logic-function): identify the function in live logic function logs (#27079) by @Weiko

💅 Improvements & UX

  • Support matchMedia in front components (#24160) by @bosiraphael
  • [4/5] Show a record’s AI conversations in a Conversations tab behind IS_CONVERSATIONS_TAB_ENABLED (#26332) by @FelixMalfait
  • Require the application role to cover every agent role (#26413) by @abdulrahmancodes
  • Add the schema for campaign click tracking (#26636) by @neo773
  • Rewrite campaign links through Twenty and serve the redirect (#26637) by @neo773
  • Let recipients opt out of click tracking (#26639) by @neo773
  • Use workspace members for live chat ownership (#26763) by @FelixMalfait
  • [Onboarding 3/10] Add credits pill (#26780) by @Bonapara
  • [Onboarding 6/10] Add skip dialogs (#26781) by @Bonapara
  • Complete UI documentation and presentational previews (#26791) by @bosiraphael
  • Migrate settings filters, menus and pickers (#26794) by @bosiraphael
  • Make UI utilities safe without browser globals (#26802) by @bosiraphael
  • Make retained UI strings overridable (#26804) by @bosiraphael
  • Complete RTL behavior in retained UI components (#26805) by @bosiraphael
  • Migrate anchored command and widget menus (#26806) by @bosiraphael
  • Align on-demand logic function runs with the workflow action rule (#26860) by @prastoin
  • Refresh twenty-ui README (#26896) by @bosiraphael
  • Migrate date pickers and field overlays (#26897) by @bosiraphael
  • Keep UI implementation exports private (#26900) by @bosiraphael
  • Validation rules (1/2): define and store rules (#26902) by @thomtrp
  • Rename expandable container to Collapsible (#26906) by @bosiraphael
  • Keep notification countdowns in Toast (#26912) by @bosiraphael
  • Replace CircularProgressBar with Loader (#26916) by @bosiraphael
  • Replace ClickToActionLink with link-style Button (#26921) by @bosiraphael
  • Move coming-soon labels out of Button (#26951) by @bosiraphael
  • Move the chat page onto the record model (#26956) by @FelixMalfait
  • Render the chat page as the chat record page (#26960) by @FelixMalfait
  • Migrate advanced filter row controls (#26961) by @bosiraphael
  • Consolidate card choices in Radio (#26966) by @bosiraphael
  • Replace Info with InlineBanner (#26967) by @bosiraphael
  • Enforce intentional Twenty UI exports (#26971) by @bosiraphael
  • Unify shortcut formatting and presentation (#26973) by @bosiraphael
  • Compose SearchInput with input primitives (#26986) by @bosiraphael
  • Move appearance choices into profile settings (#26987) by @bosiraphael
  • Replace inputAsk with pending tool calls on the conversation (#26988) by @FelixMalfait
  • Move RoundedLink to the frontend (#26991) by @bosiraphael
  • Move mobile navigation into its frontend owner (#26992) by @bosiraphael
  • Remove twenty-ui changelog (#26993) by @bosiraphael
  • Use native buttons for JSON and avatar actions (#26997) by @bosiraphael
  • Share Breadcrumb navigation in Twenty UI (#27001) by @bosiraphael
  • Share NumberStepper across settings (#27028) by @bosiraphael
  • Share progress rings and metric rows (#27031) by @bosiraphael
  • Move ImageInput into Twenty UI (#27039) by @bosiraphael
  • Move ExpandableList into Twenty UI as OverflowingList (#27040) by @bosiraphael
  • Record-level sharing 1/5: restrict records of objects open by default (#27045) by @FelixMalfait
  • Let applications and workflows start conversations in a member’s chats (#27049) by @FelixMalfait
  • Ship junction relations and remove IS_JUNCTION_RELATIONS_ENABLED (#27053) by @FelixMalfait
  • Record-level sharing 2/5: share records beyond the recipient’s role (#27054) by @FelixMalfait
  • Run application workflows with the owning application’s permissions (#27055) by @thomtrp
  • Record-level sharing 3/5: Share on every object, panel and object settings (#27057) by @FelixMalfait
  • Make app scaffolding reusable and fix template typechecking (#27073) by @Weiko

🐛 Bug fixes

  • fix(ai-chat): show workspace-scoped AI limits and warn before the composer (#26674) by @etiennejouan
  • fix(twenty-ui): keep IconButton tooltips on hover after loading or disabled changes (#26710) by @martmull

🔧 Developer & API

  • POC: define application workflows through the SDK (#26662) by @thomtrp
  • Expose programmatic SDK build and typecheck APIs (#26824) by @Weiko
  • Load the chat list through the record API (#26957) by @FelixMalfait
🏗️ Internal changes (3)
  • chore: remove useless and stale comments (#27026) by @charlesBochet
  • chore: strict comment pass on recently touched files (#27027) by @charlesBochet
  • chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag (#27052) by @FelixMalfait

🎉 New contributors

Full changelog (70 PRs)
  • Support matchMedia in front components (#24160) by @bosiraphael
  • [4/5] Show a record’s AI conversations in a Conversations tab behind IS_CONVERSATIONS_TAB_ENABLED (#26332) by @FelixMalfait
  • feat: knip (#26351) by @BOHEUS
  • Require the application role to cover every agent role (#26413) by @abdulrahmancodes
  • feat(ui): no unchecked indexed access twenty UI (#26493) by @BOHEUS
  • Add the schema for campaign click tracking (#26636) by @neo773
  • Rewrite campaign links through Twenty and serve the redirect (#26637) by @neo773
  • Let recipients opt out of click tracking (#26639) by @neo773
  • POC: define application workflows through the SDK (#26662) by @thomtrp
  • fix(ai-chat): show workspace-scoped AI limits and warn before the composer (#26674) by @etiennejouan
  • fix(twenty-ui): keep IconButton tooltips on hover after loading or disabled changes (#26710) by @martmull
  • chore: bump version to 2.44.0 (#26720) by @twenty-pr
  • Use workspace members for live chat ownership (#26763) by @FelixMalfait
  • [Onboarding 3/10] Add credits pill (#26780) by @Bonapara
  • [Onboarding 6/10] Add skip dialogs (#26781) by @Bonapara
  • Complete UI documentation and presentational previews (#26791) by @bosiraphael
  • Migrate settings filters, menus and pickers (#26794) by @bosiraphael
  • Make UI utilities safe without browser globals (#26802) by @bosiraphael
  • Make retained UI strings overridable (#26804) by @bosiraphael
  • Complete RTL behavior in retained UI components (#26805) by @bosiraphael
  • Migrate anchored command and widget menus (#26806) by @bosiraphael
  • Expose programmatic SDK build and typecheck APIs (#26824) by @Weiko
  • [BREAKING_CHANGE] Declare application registration variables through the manifest only (#26856) by @prastoin
  • Align on-demand logic function runs with the workflow action rule (#26860) by @prastoin
  • Start a record’s conversation from the record, and show a conversation’s records in its header (#26873) by @FelixMalfait
  • feat(sdk): expose programmatic application client generation (#26889) by @Weiko
  • Refresh twenty-ui README (#26896) by @bosiraphael
  • Migrate date pickers and field overlays (#26897) by @bosiraphael
  • Keep UI implementation exports private (#26900) by @bosiraphael
  • Validation rules (1/2): define and store rules (#26902) by @thomtrp
  • Rename expandable container to Collapsible (#26906) by @bosiraphael
  • Move product URLs out of twenty-ui (#26908) by @bosiraphael
  • Keep notification countdowns in Toast (#26912) by @bosiraphael
  • Replace CircularProgressBar with Loader (#26916) by @bosiraphael
  • Replace ClickToActionLink with link-style Button (#26921) by @bosiraphael
  • feat(ai): answer every Ask through answerAsk, let agents propose emails and wait on several Asks at once (#26930) by @FelixMalfait
  • Move coming-soon labels out of Button (#26951) by @bosiraphael
  • Move the chat page onto the record model (#26956) by @FelixMalfait
  • Load the chat list through the record API (#26957) by @FelixMalfait
  • Render the chat page as the chat record page (#26960) by @FelixMalfait
  • Migrate advanced filter row controls (#26961) by @bosiraphael
  • Consolidate card choices in Radio (#26966) by @bosiraphael
  • Replace Info with InlineBanner (#26967) by @bosiraphael
  • Enforce intentional Twenty UI exports (#26971) by @bosiraphael
  • Unify shortcut formatting and presentation (#26973) by @bosiraphael
  • Compose SearchInput with input primitives (#26986) by @bosiraphael
  • Move appearance choices into profile settings (#26987) by @bosiraphael
  • Replace inputAsk with pending tool calls on the conversation (#26988) by @FelixMalfait
  • Move RoundedLink to the frontend (#26991) by @bosiraphael
  • Move mobile navigation into its frontend owner (#26992) by @bosiraphael
  • Remove twenty-ui changelog (#26993) by @bosiraphael
  • Use native buttons for JSON and avatar actions (#26997) by @bosiraphael
  • Share Breadcrumb navigation in Twenty UI (#27001) by @bosiraphael
  • chore: bump version to 2.45.0 (#27009) by @twenty-pr
  • [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout (#27021) by @FelixMalfait
  • chore: remove useless and stale comments (#27026) by @charlesBochet
  • chore: strict comment pass on recently touched files (#27027) by @charlesBochet
  • Share NumberStepper across settings (#27028) by @bosiraphael
  • Share progress rings and metric rows (#27031) by @bosiraphael
  • Move ImageInput into Twenty UI (#27039) by @bosiraphael
  • Move ExpandableList into Twenty UI as OverflowingList (#27040) by @bosiraphael
  • Record-level sharing 1/5: restrict records of objects open by default (#27045) by @FelixMalfait
  • Let applications and workflows start conversations in a member’s chats (#27049) by @FelixMalfait
  • chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag (#27052) by @FelixMalfait
  • Ship junction relations and remove IS_JUNCTION_RELATIONS_ENABLED (#27053) by @FelixMalfait
  • Record-level sharing 2/5: share records beyond the recipient’s role (#27054) by @FelixMalfait
  • Run application workflows with the owning application’s permissions (#27055) by @thomtrp
  • Record-level sharing 3/5: Share on every object, panel and object settings (#27057) by @FelixMalfait
  • Make app scaffolding reusable and fix template typechecking (#27073) by @Weiko
  • feat(logic-function): identify the function in live logic function logs (#27079) by @Weiko

Full Changelog: https://github.com/twentyhq/twenty/compare/sdk/v2.43.0…sdk/v2.45.0