Twenty logo

Twenty

The open alternative to Salesforce, designed for AI

Alternative to: salesforce, hubspot, pipedrive, zoho crm

Twenty screenshot

About Versions (125)

twenty/v2.45.0

2026-10-05

⚠️ Breaking changes

  • [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout (#27021) by @FelixMalfait

✨ New features

  • feat(logic-function): identify the function in live logic function logs (#27079) by @Weiko

💅 Improvements & UX

  • Verify front component checksums before execution (#26454) by @bosiraphael
  • [Onboarding 9/10] Add 3D background (#26784) by @Bonapara
  • improve the limits organization plan display (#26915) by @Bonapara
  • Migrate advanced filter row controls (#26961) by @bosiraphael
  • Share one billing entitlement check across settings and logs (#26972) by @Bonapara
  • Unify shortcut formatting and presentation (#26973) by @bosiraphael
  • Move mobile navigation into its frontend owner (#26992) by @bosiraphael
  • Migrate workflow and import pickers (#26999) by @bosiraphael
  • Share Breadcrumb navigation in Twenty UI (#27001) by @bosiraphael
  • Build the find tool orderBy schema from the object’s fields (#27010) by @FelixMalfait
  • Only offer Export records on index pages (#27017) by @FelixMalfait
  • Keep the Last Contact app’s fields off the record timeline (#27019) by @FelixMalfait
  • [Onboarding 9/10 follow-up] Keep the 3D background off the onboarding critical path (#27023) by @etiennejouan
  • Drop legacy core campaignDelivery and messageSuppression tables (#27025) by @FelixMalfait
  • 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
  • Prevent stale credentials in IMAP input (#27048) by @BOHEUS
  • Let applications and workflows start conversations in a member’s chats (#27049) by @FelixMalfait
  • Restore appearance card design (#27051) by @bosiraphael
  • 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
  • Record-level sharing 4/5: All records permission and ownership transfer (#27058) by @FelixMalfait
  • Render core workflow versions as command menu items (#27062) by @thomtrp
  • Remove the See Version command menu item from workflow runs (#27063) by @thomtrp
  • Deprecate authContext in favor of RawAuthContext ( currently type proxy ) (#27067) by @BOHEUS
  • Record-level sharing 5: one row access policy for queries, events and writes (#27068) by @FelixMalfait
  • Keep email and calendar steps out of application workflows (#27072) by @thomtrp
  • Make app scaffolding reusable and fix template typechecking (#27073) by @Weiko
  • Systemic application registration ownership guard (#27074) by @prastoin
  • Validation rule form (1/5): render field chips with the shared Chip (#27090) by @thomtrp
  • Validation rule form (2/5): MenuItem suggestion rows (#27091) by @thomtrp
  • Validation rule form (3/5): suggestion details like the design (#27092) by @thomtrp
  • Validation rule form (4/5): condition in one preview card (#27093) by @thomtrp

🐛 Bug fixes

  • fix: harden two-factor authentication against impersonation and OTP guessing (#26583) by @abdulrahmancodes
  • fix(apps): pin the media-notes example to published SDK versions (#27011) by @Weiko
  • fix(front): keep disabled sortable widgets accessible (#27015) by @FelixMalfait
  • fix(workflow): show the selected count on the core workflows index (#27016) by @thomtrp
  • fix(front): See Workflow from the workflow runs table and hide See Version with core workflows (#27022) by @thomtrp
  • fix(server): release the migration runner connection before failure cleanup (#27024) by @charlesBochet
  • fix(workflow): polish the core workflows index and its command menu (#27066) by @thomtrp
  • fix(ai-chat): strip NUL bytes from message parts before persisting (#27101) by @etiennejouan
  • fix(settings): role save onSuccess, saving state and permissions fallback (#27103) by @FelixMalfait
  • fix(permissions): keep row access conditions outside user WHERE expressions (#27105) by @FelixMalfait

⚡ Performance

  • perf: reduce relation assignment and ORM hydration overhead (#27060) by @FelixMalfait

🔧 Developer & API

  • POC: define application workflows through the SDK (#26662) by @thomtrp
🏗️ Internal changes (13)
  • chore(server): bump @nestjs packages to 11.2.6, drop multer resolution (#27013) by @mabdullahabaid
  • chore(server): remove service unit specs (#27020) by @charlesBochet
  • chore: remove useless and stale comments (#27026) by @charlesBochet
  • chore: strict comment pass on recently touched files (#27027) by @charlesBochet
  • refactor(usage-limit): group quota consumption rows by unit (#27037) by @etiennejouan
  • chore: remove IS_UNIQUE_INDEXES_ENABLED feature flag (#27052) by @FelixMalfait
  • chore(server): drop the v2 suffix from the workspace pool metric names (#27056) by @charlesBochet
  • chore(security): bump axios to 1.20.0 everywhere for the September advisory batch (#27077) by @mabdullahabaid
  • chore(security): bump brace-expansion to fixed versions everywhere (#27086) by @mabdullahabaid
  • chore(security): bump ip-address to 10.7.2 everywhere (#27095) by @mabdullahabaid
  • chore(security): bump piscina to 4.9.4 (#27098) by @mabdullahabaid
  • chore(security): bump @xhmikosr/decompress to 11.1.4 (#27100) by @mabdullahabaid
  • chore(permissions): remove dead and duplicated server permission code (#27106) by @FelixMalfait
Full changelog (68 PRs)
  • Verify front component checksums before execution (#26454) by @bosiraphael
  • fix: harden two-factor authentication against impersonation and OTP guessing (#26583) by @abdulrahmancodes
  • POC: define application workflows through the SDK (#26662) by @thomtrp
  • [Onboarding 9/10] Add 3D background (#26784) by @Bonapara
  • improve the limits organization plan display (#26915) by @Bonapara
  • Migrate advanced filter row controls (#26961) by @bosiraphael
  • Share one billing entitlement check across settings and logs (#26972) by @Bonapara
  • Unify shortcut formatting and presentation (#26973) by @bosiraphael
  • Move mobile navigation into its frontend owner (#26992) by @bosiraphael
  • Migrate workflow and import pickers (#26999) by @bosiraphael
  • Share Breadcrumb navigation in Twenty UI (#27001) by @bosiraphael
  • chore: bump version to 2.45.0 (#27009) by @twenty-pr
  • Build the find tool orderBy schema from the object’s fields (#27010) by @FelixMalfait
  • fix(apps): pin the media-notes example to published SDK versions (#27011) by @Weiko
  • chore(server): bump @nestjs packages to 11.2.6, drop multer resolution (#27013) by @mabdullahabaid
  • chore: sync AI model catalog (#27014) by @github-actions
  • fix(front): keep disabled sortable widgets accessible (#27015) by @FelixMalfait
  • fix(workflow): show the selected count on the core workflows index (#27016) by @thomtrp
  • Only offer Export records on index pages (#27017) by @FelixMalfait
  • Keep the Last Contact app’s fields off the record timeline (#27019) by @FelixMalfait
  • chore(server): remove service unit specs (#27020) by @charlesBochet
  • [BREAKING_CHANGE] chore: remove the compatibility code kept for the 2.44 rollout (#27021) by @FelixMalfait
  • fix(front): See Workflow from the workflow runs table and hide See Version with core workflows (#27022) by @thomtrp
  • [Onboarding 9/10 follow-up] Keep the 3D background off the onboarding critical path (#27023) by @etiennejouan
  • fix(server): release the migration runner connection before failure cleanup (#27024) by @charlesBochet
  • Drop legacy core campaignDelivery and messageSuppression tables (#27025) 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
  • refactor(usage-limit): group quota consumption rows by unit (#27037) by @etiennejouan
  • 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
  • Prevent stale credentials in IMAP input (#27048) by @BOHEUS
  • Let applications and workflows start conversations in a member’s chats (#27049) by @FelixMalfait
  • Restore appearance card design (#27051) by @bosiraphael
  • 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
  • chore(server): drop the v2 suffix from the workspace pool metric names (#27056) by @charlesBochet
  • Record-level sharing 3/5: Share on every object, panel and object settings (#27057) by @FelixMalfait
  • Record-level sharing 4/5: All records permission and ownership transfer (#27058) by @FelixMalfait
  • perf: reduce relation assignment and ORM hydration overhead (#27060) by @FelixMalfait
  • Render core workflow versions as command menu items (#27062) by @thomtrp
  • Remove the See Version command menu item from workflow runs (#27063) by @thomtrp
  • fix(workflow): polish the core workflows index and its command menu (#27066) by @thomtrp
  • Deprecate authContext in favor of RawAuthContext ( currently type proxy ) (#27067) by @BOHEUS
  • Record-level sharing 5: one row access policy for queries, events and writes (#27068) by @FelixMalfait
  • Keep email and calendar steps out of application workflows (#27072) by @thomtrp
  • Make app scaffolding reusable and fix template typechecking (#27073) by @Weiko
  • Systemic application registration ownership guard (#27074) by @prastoin
  • chore(security): bump axios to 1.20.0 everywhere for the September advisory batch (#27077) by @mabdullahabaid
  • feat(logic-function): identify the function in live logic function logs (#27079) by @Weiko
  • chore(security): bump brace-expansion to fixed versions everywhere (#27086) by @mabdullahabaid
  • Validation rule form (1/5): render field chips with the shared Chip (#27090) by @thomtrp
  • Validation rule form (2/5): MenuItem suggestion rows (#27091) by @thomtrp
  • Validation rule form (3/5): suggestion details like the design (#27092) by @thomtrp
  • Validation rule form (4/5): condition in one preview card (#27093) by @thomtrp
  • chore(security): bump ip-address to 10.7.2 everywhere (#27095) by @mabdullahabaid
  • chore(security): bump piscina to 4.9.4 (#27098) by @mabdullahabaid
  • chore: sync AI model catalog (#27099) by @github-actions
  • chore(security): bump @xhmikosr/decompress to 11.1.4 (#27100) by @mabdullahabaid
  • fix(ai-chat): strip NUL bytes from message parts before persisting (#27101) by @etiennejouan
  • fix(settings): role save onSuccess, saving state and permissions fallback (#27103) by @FelixMalfait
  • fix(permissions): keep row access conditions outside user WHERE expressions (#27105) by @FelixMalfait
  • chore(permissions): remove dead and duplicated server permission code (#27106) by @FelixMalfait

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