Twenty logo

Twenty

The open alternative to Salesforce, designed for AI

Alternative to: salesforce, hubspot, pipedrive, zoho crm

Twenty screenshot

About Versions (102)

sdk/v2.30.0

2026-08-11

⚠️ Breaking changes

  • Remove any reference to clientConfig.subdomainMinLength — the field is deleted from ClientConfig in twenty-client-sdk. (#23915) by @ijreilly
  • Cursor-pagination types from the metadata API (FieldEdge, FieldFilter, CursorPaging, PageInfo, ConnectionCursor, and comparison inputs) are removed; switch to the offset-based equivalents in the updated schema. (#23925) by @abdulrahmancodes

🌟 Highlights

  • BREAKING: subdomainMinLength is removed from ClientConfig in twenty-client-sdk — drop any reference to clientConfig.subdomainMinLength. (#23915)
  • BREAKING: Cursor-pagination types from the metadata API (FieldEdge, FieldFilter, CursorPaging, PageInfo, ConnectionCursor) are removed following the nestjs-query migration. (#23925)
  • runAgent now accepts a messages array (alternating user/assistant turns) for multi-turn bot conversations; existing prompt-only calls are unchanged. (#23395)
  • runAgent can now execute on behalf of a specific workspace member, scoping the agent to that user’s permissions. (#23470)
  • CALL_RECORDING_SUMMARY and CALL_RECORDING_TRANSCRIPT are registered as new widget types and appear in twenty-client-sdk generated types. (#23864)

✨ New features

  • Pass a messages array (alternating user/assistant turns) to runAgent for multi-turn bot conversations; the existing prompt field continues to work for one-shot calls. (#23395) by @abdulrahmancodes
  • New option on runAgent lets your app execute an agent as a specific workspace member, capping the agent’s permissions to that user’s role. (#23470) by @abdulrahmancodes
  • CALL_RECORDING_SUMMARY and CALL_RECORDING_TRANSCRIPT are now registered widget types; they appear in twenty-client-sdk generated type definitions. (#23864) by @ehconitin
  • User.isWorkspaceCreator is now a resolved GraphQL field, accessible through twenty-client-sdk generated types. (#23881) by @bosiraphael

💅 Improvements & UX

  • Minimum allowed subdomain length is now 1 character instead of 3; update any client-side subdomain validation that assumed the old floor. (#23871) by @ijreilly

🐛 Bug fixes

  • Logic function layer builds no longer die with out-of-memory errors when an app bundles large packages such as twenty-ui. (#23805) by @charlesBochet

⚡ Performance

  • Workspace metadata cache now uses compact storage behind a server flag, reducing GC pressure on heavy traffic; no API changes. (#23880) by @charlesBochet
🏗️ Internal changes (11)
  • Make subdomain minimum length configurable via env var (#23209) by @ijreilly
  • Add a book-a-call onboarding step for qualified leads (#23521) by @bosiraphael
  • Feat/advanced text editor capability presets (#23657) by @ijreilly
  • feat(workflow): dispatch automated triggers from core behind a flag (#23775) by @thomtrp
  • Bump vulnerable dependencies flagged by ECR image scanning (#23813) by @charlesBochet
  • Add nested relation Field widgets on record page layouts (#23815) by @FelixMalfait
  • Feat/list view type (#23829) by @neo773
  • Self-host every font instead of loading them from Google (#23859) by @FelixMalfait
  • Add full-page AI chat mode with records as side panel artifacts (#23929) by @FelixMalfait
  • Add List View lab icon and make lab feature flag icons mandatory (#23930) by @FelixMalfait
  • Make LIST a widget layout instead of a table in disguise (#23940) by @FelixMalfait

🎉 New contributors

Full changelog (23 PRs)
  • Make subdomain minimum length configurable via env var (#23209) by @ijreilly
  • Add messages support to runAgent for multi-turn bot conversations (#23395) by @abdulrahmancodes
  • feat(run-agent): let apps run an agent on behalf of a workspace member (#23470) by @abdulrahmancodes
  • Add a book-a-call onboarding step for qualified leads (#23521) by @bosiraphael
  • Feat/advanced text editor capability presets (#23657) by @ijreilly
  • chore: bump version to 2.28.0 (#23730) by @twenty-pr
  • feat(workflow): dispatch automated triggers from core behind a flag (#23775) by @thomtrp
  • fix(twenty-server): stop the yarn-install Lambda from running out of memory (#23805) by @charlesBochet
  • Bump vulnerable dependencies flagged by ECR image scanning (#23813) by @charlesBochet
  • Add nested relation Field widgets on record page layouts (#23815) by @FelixMalfait
  • chore: bump version to 2.29.0 (#23820) by @twenty-pr
  • Feat/list view type (#23829) by @neo773
  • Self-host every font instead of loading them from Google (#23859) by @FelixMalfait
  • Add call recording transcript and summary widget types (#23864) by @ehconitin
  • Revert “Make subdomain minimum length configurable via env var” (#23871) by @ijreilly
  • perf(server): compact and cold-store workspace cache payloads behind a feature flag (#23880) by @charlesBochet
  • Gate the workspace setup AI chat to workspace creators (#23881) by @bosiraphael
  • chore: bump version to 2.30.0 (#23914) by @twenty-pr
  • Remove deprecated subdomainMinLength from ClientConfig (#23915) by @ijreilly
  • [BREAKING CHANGE] refactor(server): migrate the metadata API off nestjs-query (#23925) by @abdulrahmancodes
  • Add full-page AI chat mode with records as side panel artifacts (#23929) by @FelixMalfait
  • Add List View lab icon and make lab feature flag icons mandatory (#23930) by @FelixMalfait
  • Make LIST a widget layout instead of a table in disguise (#23940) by @FelixMalfait

Full Changelog: https://github.com/twentyhq/twenty/compare/sdk/v2.27.0…sdk/v2.30.0