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.43.0

2026-09-28

⚠️ Breaking changes

  • feat(record-form): make the record creation form the default path (#25907) by @thomtrp
  • [2/5 workflows] Improve workflow classifier configuration (#26291) by @Bonapara
  • feat(application): deprecate uploadApplicationFile and drop the CLI multipart fallback (#26379) by @martmull
  • feat(files): upload workspace logos and profile pictures with direct upload (#26382) by @martmull
  • [BREAKING_CHANGE] refactor(server): compute the application-scoped core schema server-side (#26439) by @prastoin
  • Group Card parts under one component (#26654) by @bosiraphael

✨ New features

  • feat(usage-limit): cap workspace file storage with a stock limit kind (#26042) by @etiennejouan
  • feat: migrate workflow editor and actions to core IDs (#26116) by @thomtrp
  • feat(usage-limit): cap workspace records with a stock limit (#26147) by @etiennejouan
  • feat(workflow): make core workflow and workflow version syncable so definition changes broadcast (#26158) by @thomtrp
  • feat(ai): add evaluation models and a Classify workflow node (#26225) by @FelixMalfait
  • feat(usage-limit): gate workflow node runs and logic function executions (#26283) by @etiennejouan
  • feat(client-sdk): upload files straight to storage from uploadFile (#26305) by @martmull
  • feat(application): deploy app tarballs straight to file storage (#26314) by @martmull
  • feat(sharing): unify record access and enable multiplayer chats (#26348) by @FelixMalfait
  • feat(ai): execute chat turns as their persisted sender (#26369) by @FelixMalfait
  • feat(object-metadata): allow updating readability through the metadata API (#26427) by @martmull
  • feat(front-components): share one application token pair per application (#26525) by @prastoin
  • feat(ai): separate chat sharing UI from backend rollout (#26581) by @FelixMalfait
  • feat(docker): add ClickHouse to twenty-app-dev image (#26598) by @martmull
  • feat(workflow): toggle core workflow visibility from the command menu (#26651) by @thomtrp

💅 Improvements & UX

  • Add async CSV export server behind a workspace flag (#25987) by @Weiko
  • Hard-delete views and their children instead of soft-deleting them (#26002) by @Weiko
  • [forms 2/3] Improve record form field presentation (#26031) by @Bonapara
  • [2/2 Sidebar] New customization experience (#26037) by @Bonapara
  • Bind CSV export downloads to their requesting session (#26052) by @Weiko
  • Unify Twenty UI icon buttons (#26071) by @bosiraphael
  • Migrate Twenty UI headings (#26085) by @bosiraphael
  • Replace Twenty UI Modal with Dialog (#26087) by @bosiraphael
  • Migrate tooltips to Base UI (#26088) by @bosiraphael
  • [3/3 Sidebar] Bulk object metadata updates (#26105) by @Bonapara
  • Import missing dependency in create-twenty-app (#26133) by @martmull
  • Fix UI builds without Monaco (#26134) by @bosiraphael
  • Restore banner button colors (#26135) by @bosiraphael
  • Migrate Twenty UI tab navigation (#26142) by @bosiraphael
  • Migrate light icon buttons and groups (#26144) by @bosiraphael
  • AI chat: tool calls render as widgets named by the tool (#26179) by @FelixMalfait
  • Only write audit log events for workspaces entitled to audit logs (#26182) by @neo773
  • Scope application variable reads and updates to the calling application and workspace (#26192) by @prastoin
  • Add SettingsRow and migrate legacy rows (#26200) by @bosiraphael
  • Separate Twenty UI primitives and components (#26207) by @bosiraphael
  • Migrate picker rows to ListItem (#26211) by @bosiraphael
  • Unify icon buttons with elevated styling (#26213) by @bosiraphael
  • Defer slow workspace migration actions to a worker job (#26222) by @charlesBochet
  • Upgrade react-router to 7.18.4 (#26232) by @charlesBochet
  • Flag missing required application variables on the app settings page (#26270) by @martmull
  • Consolidate animated buttons (#26276) by @bosiraphael
  • Let apps report their own configuration state with defineHealthCheck (#26277) by @martmull
  • Print export reasons in the pull report (#26288) by @Weiko
  • Remove unused Twenty UI buttons (#26293) by @bosiraphael
  • Migrate dropdown menu rows to ListItem (#26297) by @bosiraphael
  • Let apps declare several settings menu items with defineSettingsMenuItem (#26302) by @martmull
  • Secure front component media capture (#26303) by @bosiraphael
  • Rename recording tabs to Transcript (#26318) by @ehconitin
  • [3/4] Attach and detach conversations on a record (#26330) by @FelixMalfait
  • Give message campaigns their own send rate limit counters (#26331) by @neo773
  • Load limits on view groups (#26349) by @Bonapara
  • Rename workflow AI Agent to Agent and align node presentation (#26363) by @thomtrp
  • Add the shared Dropdown foundation (#26383) by @bosiraphael
  • Migrate independent Dropdown action menus (#26432) by @bosiraphael
  • Serve backend HTML with startup config and workspace iframe settings (#26459) by @FelixMalfait
  • Consolidate resize handle interactions (#26463) by @bosiraphael
  • Use radio groups for segmented settings (#26465) by @bosiraphael
  • Put the record creation form back behind a feature flag (#26472) by @thomtrp
  • Remove react-router dependency from twenty-ui (#26477) by @bosiraphael
  • Migrate Select, pickers and filter menus to the shared Dropdown (#26483) by @bosiraphael
  • Command menu sections (#26488) by @Bonapara
  • Replace responsive hooks with native media queries (#26532) by @bosiraphael
  • Expose selected object metadata and keep unchanged context values stable (#26596) by @bosiraphael
  • Migrate sort and editor toolbar dropdowns (#26599) by @bosiraphael
  • Remove message and calendar target read rollout flag (#26625) by @FelixMalfait
  • Document remaining Twenty UI primitives (#26649) by @bosiraphael
  • Restore tab and menu icon stroke weight (#26670) by @Bonapara
  • Remove the per-campaign recipient cap (#26675) by @neo773
  • Remove the unused sendEmailViaEmailingDomain mutation (#26676) by @neo773

🐛 Bug fixes

  • fix(client-sdk): externalize all Node builtins in Vite lib build (#26234) by @AyeshaWaseemAhmad
  • fix: separate connected account disconnect from deletion (#26347) by @neo773
  • fix(shared): reject scheme-relative backslash urls in isSafeUrl (#26397) by @Belkouche
  • fix: display app permission flags and reset saved role changes (#26450) by @Weiko
  • fix: fill scaffolded app page viewport (#26464) by @Weiko
  • fix(sdk): write the CLI config file with owner-only permissions (#26548) by @Weiko

🔧 Developer & API

  • Fix API ALLCAPS case to Pascal case in server tests (#26411) by @BOHEUS
  • Consolidate the public theme API (#26482) by @bosiraphael
🏗️ Internal changes (4)
  • chore(usage-limit): remove the API rate limit v2 feature flag (#26169) by @etiennejouan
  • chore(usage-limit): remove the quota engine credit bound feature flag (#26174) by @etiennejouan
  • chore: remove IS_APP_CLAIMING_ENABLED feature flag (#26205) by @martmull
  • refactor: return API-relative paths for CSV export downloads (#26603) by @Weiko

🎉 New contributors

Full changelog (89 PRs)
  • feat(record-form): make the record creation form the default path (#25907) by @thomtrp
  • Add async CSV export server behind a workspace flag (#25987) by @Weiko
  • Hard-delete views and their children instead of soft-deleting them (#26002) by @Weiko
  • [forms 2/3] Improve record form field presentation (#26031) by @Bonapara
  • [2/2 Sidebar] New customization experience (#26037) by @Bonapara
  • feat(usage-limit): cap workspace file storage with a stock limit kind (#26042) by @etiennejouan
  • Bind CSV export downloads to their requesting session (#26052) by @Weiko
  • Unify Twenty UI icon buttons (#26071) by @bosiraphael
  • Migrate Twenty UI headings (#26085) by @bosiraphael
  • Replace Twenty UI Modal with Dialog (#26087) by @bosiraphael
  • Migrate tooltips to Base UI (#26088) by @bosiraphael
  • chore: bump version to 2.42.0 (#26100) by @twenty-pr
  • [3/3 Sidebar] Bulk object metadata updates (#26105) by @Bonapara
  • feat: migrate workflow editor and actions to core IDs (#26116) by @thomtrp
  • Import missing dependency in create-twenty-app (#26133) by @martmull
  • Fix UI builds without Monaco (#26134) by @bosiraphael
  • Restore banner button colors (#26135) by @bosiraphael
  • Migrate Twenty UI tab navigation (#26142) by @bosiraphael
  • Migrate light icon buttons and groups (#26144) by @bosiraphael
  • feat(usage-limit): cap workspace records with a stock limit (#26147) by @etiennejouan
  • feat(workflow): make core workflow and workflow version syncable so definition changes broadcast (#26158) by @thomtrp
  • chore(usage-limit): remove the API rate limit v2 feature flag (#26169) by @etiennejouan
  • chore(usage-limit): remove the quota engine credit bound feature flag (#26174) by @etiennejouan
  • AI chat: tool calls render as widgets named by the tool (#26179) by @FelixMalfait
  • Only write audit log events for workspaces entitled to audit logs (#26182) by @neo773
  • Scope application variable reads and updates to the calling application and workspace (#26192) by @prastoin
  • Add SettingsRow and migrate legacy rows (#26200) by @bosiraphael
  • chore: remove IS_APP_CLAIMING_ENABLED feature flag (#26205) by @martmull
  • Separate Twenty UI primitives and components (#26207) by @bosiraphael
  • Migrate picker rows to ListItem (#26211) by @bosiraphael
  • Unify icon buttons with elevated styling (#26213) by @bosiraphael
  • Defer slow workspace migration actions to a worker job (#26222) by @charlesBochet
  • feat(ai): add evaluation models and a Classify workflow node (#26225) by @FelixMalfait
  • Upgrade react-router to 7.18.4 (#26232) by @charlesBochet
  • fix(client-sdk): externalize all Node builtins in Vite lib build (#26234) by @AyeshaWaseemAhmad
  • Flag missing required application variables on the app settings page (#26270) by @martmull
  • Consolidate animated buttons (#26276) by @bosiraphael
  • Let apps report their own configuration state with defineHealthCheck (#26277) by @martmull
  • feat(usage-limit): gate workflow node runs and logic function executions (#26283) by @etiennejouan
  • Print export reasons in the pull report (#26288) by @Weiko
  • [2/5 workflows] Improve workflow classifier configuration (#26291) by @Bonapara
  • Remove unused Twenty UI buttons (#26293) by @bosiraphael
  • Migrate dropdown menu rows to ListItem (#26297) by @bosiraphael
  • Let apps declare several settings menu items with defineSettingsMenuItem (#26302) by @martmull
  • Secure front component media capture (#26303) by @bosiraphael
  • feat(client-sdk): upload files straight to storage from uploadFile (#26305) by @martmull
  • feat(application): deploy app tarballs straight to file storage (#26314) by @martmull
  • Rename recording tabs to Transcript (#26318) by @ehconitin
  • [3/4] Attach and detach conversations on a record (#26330) by @FelixMalfait
  • Give message campaigns their own send rate limit counters (#26331) by @neo773
  • fix: separate connected account disconnect from deletion (#26347) by @neo773
  • feat(sharing): unify record access and enable multiplayer chats (#26348) by @FelixMalfait
  • Load limits on view groups (#26349) by @Bonapara
  • Rename workflow AI Agent to Agent and align node presentation (#26363) by @thomtrp
  • feat(ai): execute chat turns as their persisted sender (#26369) by @FelixMalfait
  • feat(application): deprecate uploadApplicationFile and drop the CLI multipart fallback (#26379) by @martmull
  • feat(files): upload workspace logos and profile pictures with direct upload (#26382) by @martmull
  • Add the shared Dropdown foundation (#26383) by @bosiraphael
  • fix(shared): reject scheme-relative backslash urls in isSafeUrl (#26397) by @Belkouche
  • Fix API ALLCAPS case to Pascal case in server tests (#26411) by @BOHEUS
  • feat(object-metadata): allow updating readability through the metadata API (#26427) by @martmull
  • Migrate independent Dropdown action menus (#26432) by @bosiraphael
  • [BREAKING_CHANGE] refactor(server): compute the application-scoped core schema server-side (#26439) by @prastoin
  • fix: display app permission flags and reset saved role changes (#26450) by @Weiko
  • Serve backend HTML with startup config and workspace iframe settings (#26459) by @FelixMalfait
  • Consolidate resize handle interactions (#26463) by @bosiraphael
  • fix: fill scaffolded app page viewport (#26464) by @Weiko
  • Use radio groups for segmented settings (#26465) by @bosiraphael
  • chore: bump version to 2.43.0 (#26468) by @twenty-pr
  • Put the record creation form back behind a feature flag (#26472) by @thomtrp
  • Remove react-router dependency from twenty-ui (#26477) by @bosiraphael
  • Consolidate the public theme API (#26482) by @bosiraphael
  • Migrate Select, pickers and filter menus to the shared Dropdown (#26483) by @bosiraphael
  • Command menu sections (#26488) by @Bonapara
  • feat(front-components): share one application token pair per application (#26525) by @prastoin
  • Replace responsive hooks with native media queries (#26532) by @bosiraphael
  • fix(sdk): write the CLI config file with owner-only permissions (#26548) by @Weiko
  • feat(ai): separate chat sharing UI from backend rollout (#26581) by @FelixMalfait
  • Expose selected object metadata and keep unchanged context values stable (#26596) by @bosiraphael
  • feat(docker): add ClickHouse to twenty-app-dev image (#26598) by @martmull
  • Migrate sort and editor toolbar dropdowns (#26599) by @bosiraphael
  • refactor: return API-relative paths for CSV export downloads (#26603) by @Weiko
  • Remove message and calendar target read rollout flag (#26625) by @FelixMalfait
  • Document remaining Twenty UI primitives (#26649) by @bosiraphael
  • feat(workflow): toggle core workflow visibility from the command menu (#26651) by @thomtrp
  • Group Card parts under one component (#26654) by @bosiraphael
  • Restore tab and menu icon stroke weight (#26670) by @Bonapara
  • Remove the per-campaign recipient cap (#26675) by @neo773
  • Remove the unused sendEmailViaEmailingDomain mutation (#26676) by @neo773

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