Twenty
The open alternative to Salesforce, designed for AI
Alternative to: salesforce, hubspot, pipedrive, zoho crm
About
Versions (86)
v1.18.0
2026-02-19What’s Changed
- Lowercase email by @BOHEUS in https://github.com/twentyhq/twenty/pull/17775
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17842
- Fix phone validation performance by using Set/Map instead of Array lookups by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17843
- fix: show user-friendly error message when duplicate invite is sent by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17827
- perf: cache ServerBlockNoteEditor instance in transformRichTextV2Value by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17844
- Runner metadata events by @prastoin in https://github.com/twentyhq/twenty/pull/17841
- Fix merge records page accumulating duplicate morph items by @rdelassus in https://github.com/twentyhq/twenty/pull/17705
- Prevent leak between /metadata and /graphql GQL schemas by @charlesBochet in https://github.com/twentyhq/twenty/pull/17845
- Fix spurious logouts by deduplicating concurrent token renewals by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17858
- Do not throw on corrupted labelFieldMetadataIdentifier by @prastoin in https://github.com/twentyhq/twenty/pull/17859
- Remove guard from find logic functions by @thomtrp in https://github.com/twentyhq/twenty/pull/17862
- File - Migrate avatarUrl > avatarFile on person (data migration + logic) + Attachment data migration by @etiennejouan in https://github.com/twentyhq/twenty/pull/17752
- Fix code step and logic function step in workflows by @thomtrp in https://github.com/twentyhq/twenty/pull/17856
- Add wildcard documentation for like/ilike/containsIlike filters by @bugisthegod in https://github.com/twentyhq/twenty/pull/17825
- Feat: Navbar customization by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/17728
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17869
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17872
- Solo transaction application synchronization service refactor by @prastoin in https://github.com/twentyhq/twenty/pull/17864
- Fix page layout seeding for record page layouts by @Weiko in https://github.com/twentyhq/twenty/pull/17871
- Handle 413 with user friendly message by @etiennejouan in https://github.com/twentyhq/twenty/pull/17870
- Fix hardcoded colors in 2FA verification screen for dark mode by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17868
- Fix redirect to deleted workspace subdomain after workspace deletion by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17865
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17874
- Remove redundant self-build from Nx targets that compile on the fly by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17851
- Generate GQL schema based on applicationId by @charlesBochet in https://github.com/twentyhq/twenty/pull/17860
- Fix event stream does not exists error by @thomtrp in https://github.com/twentyhq/twenty/pull/17873
- Introducing view field group syncable entity by @Weiko in https://github.com/twentyhq/twenty/pull/17867
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17877
- Navbar customization followup by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/17848
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17881
- Reduce leak between gql schema by @charlesBochet in https://github.com/twentyhq/twenty/pull/17878
- Logic function refactorization by @martmull in https://github.com/twentyhq/twenty/pull/17861
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17887
- File v2 - Backfill mimeType and size - command by @etiennejouan in https://github.com/twentyhq/twenty/pull/17875
- Fix widget and front component queries hitting wrong GraphQL endpoint by @ehconitin in https://github.com/twentyhq/twenty/pull/17889
- [FRONT COMPONENTS] Twenty UI elements generation by @bosiraphael in https://github.com/twentyhq/twenty/pull/17866
- Bump @types/bytes from 3.1.4 to 3.1.5 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/17882
- Bump react-loading-skeleton from 3.4.0 to 3.5.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/17883
- Workflow bug fixes by @thomtrp in https://github.com/twentyhq/twenty/pull/17886
- Bump @vitest/browser-playwright from 4.0.17 to 4.0.18 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/17884
- Start Jotai Migration by @charlesBochet in https://github.com/twentyhq/twenty/pull/17893
- Fix index field comparison by @prastoin in https://github.com/twentyhq/twenty/pull/17896
- Migrate twenty ui to jotai by @charlesBochet in https://github.com/twentyhq/twenty/pull/17900
- Fix EMFILE: too many open files, watch on macOS by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17901
- Prefil fields widgets to standard app by @Weiko in https://github.com/twentyhq/twenty/pull/17897
- Migrate more to Jotai by @charlesBochet in https://github.com/twentyhq/twenty/pull/17903
- Scalar and universal flat entity transpilers by @prastoin in https://github.com/twentyhq/twenty/pull/17891
- Fix twenty sdk build by @martmull in https://github.com/twentyhq/twenty/pull/17902
- feat: emit metadata events for schema changes with actor context for webhooks by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/17622
- [Apps] Content + permission tabs for marketplace and installed apps by @ijreilly in https://github.com/twentyhq/twenty/pull/17888
- Files - Migrate attachments in activities by @etiennejouan in https://github.com/twentyhq/twenty/pull/17808
- Feat 17408 : Add remove option for object permissions rule by @LTan-101104 in https://github.com/twentyhq/twenty/pull/17601
- Some fixes by @ijreilly in https://github.com/twentyhq/twenty/pull/17904
- Improve AI agent chat, tool display, and workflow agent management by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17876
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17905
- Refactor metadata events to contain
scalarEntityby @prastoin in https://github.com/twentyhq/twenty/pull/17908 - i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17911
- Speed up twenty-emails build by replacing vite-plugin-dts with tsgo by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17857
- Migrate create syncable entity cursor rule to skills by @prastoin in https://github.com/twentyhq/twenty/pull/17912
- Hide delete button for record page layout widgets by @Copilot in https://github.com/twentyhq/twenty/pull/17892
- Drag and drop fields of Fields widgets by @Devessier in https://github.com/twentyhq/twenty/pull/17910
- fix: prevent tab synchronization between different records by @Eruis2579 in https://github.com/twentyhq/twenty/pull/17559
- chore(nx): remove leftover Nx wrapper artifacts by @ehconitin in https://github.com/twentyhq/twenty/pull/17916
- Add mentions feature to objects in notes by @acee3 in https://github.com/twentyhq/twenty/pull/16373
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17915
- [FRONT COMPONENT] Add Front component token generation by @ehconitin in https://github.com/twentyhq/twenty/pull/17855
- Improve building of twenty-sdk by @charlesBochet in https://github.com/twentyhq/twenty/pull/17913
- Fix event stream infinite loops by @thomtrp in https://github.com/twentyhq/twenty/pull/17919
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17920
- Add scripts to publish cli tools by @martmull in https://github.com/twentyhq/twenty/pull/17914
- Enhance stories for front component in sdk by @charlesBochet in https://github.com/twentyhq/twenty/pull/17925
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17930
- fix: replace react-tooltip with AppTooltip and refactor MenuItemAvatar by @kiannidev in https://github.com/twentyhq/twenty/pull/17846
- Create record page layout after custom object creation by @Weiko in https://github.com/twentyhq/twenty/pull/17923
- Revert export twenty UI by @charlesBochet in https://github.com/twentyhq/twenty/pull/17929
- Update cli tool versions by @martmull in https://github.com/twentyhq/twenty/pull/17933
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17932
- feat: add draft email workflow action by @neo773 in https://github.com/twentyhq/twenty/pull/17793
- Respect Gmail retry-after in messaging throttle by @neo773 in https://github.com/twentyhq/twenty/pull/17850
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17939
- fix: add explicit error hint for coverage threshold failures in frontend test step by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/17937
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17935
- Add @mention support in AI Chat input by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17943
- fix: markdown-it is has a regular expression denial of service by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/17946
- fix: qs arrayLimit bypass in comma parsing allows denial of service by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/17947
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17945
- [FRONT COMPONENTS] Allow style librairies in remote dom by @bosiraphael in https://github.com/twentyhq/twenty/pull/17936
- fix: restore customDomain field in getCurrentUser query fragment by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17949
- Support define is tool logic function by @martmull in https://github.com/twentyhq/twenty/pull/17926
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17966
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17967
- feat: configure standard views and migrate attachment seeds to FILES field by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17958
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17972
[OBJECT_MANIFEST_BREAKING_CHANGE]Sync returns workspace migration by @prastoin in https://github.com/twentyhq/twenty/pull/17918- Add default fields on object manifest by @martmull in https://github.com/twentyhq/twenty/pull/17977
- [DASHBOARDS] Add split multi-value fields setting for charts by @ehconitin in https://github.com/twentyhq/twenty/pull/17907
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17981
- Change condition for multi-workspace check by @manstfu in https://github.com/twentyhq/twenty/pull/17938
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17983
- Fix and refactor all metadata relation by @prastoin in https://github.com/twentyhq/twenty/pull/17978
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17986
- Improve AI chat UX by @Bonapara in https://github.com/twentyhq/twenty/pull/17974
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17987
- fix: use pickMorphGroupSurvivor in relation loader to match field metadata deduplication by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17988
- File - Disable file upload in standalone rich text widget by @etiennejouan in https://github.com/twentyhq/twenty/pull/17934
- Navigation Menu Item - Migration in v1.18 by @etiennejouan in https://github.com/twentyhq/twenty/pull/17991
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17993
- fix: on charts newly added multi split values toggle wasnt being saved by @ehconitin in https://github.com/twentyhq/twenty/pull/17990
- feat: show auto-generated conversation title for AI chat. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/17922
- fix: improve clipboard copy for non-HTTPS self-hosted deployments by @FelixMalfait in https://github.com/twentyhq/twenty/pull/17989
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17995
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/17997
- Fix dashboard new tab creation by @Devessier in https://github.com/twentyhq/twenty/pull/17971
- Page layout various fixes by @Weiko in https://github.com/twentyhq/twenty/pull/17996
- Added relations to SSE events by @lucasbordeau in https://github.com/twentyhq/twenty/pull/17683
- Emitting the correct event based on whether the record is being soft deleted or restored. by @Lakshayyy-m in https://github.com/twentyhq/twenty/pull/17953
- Sync views and navigation items by @thomtrp in https://github.com/twentyhq/twenty/pull/18003
- Fix initial code step functionInput by @martmull in https://github.com/twentyhq/twenty/pull/18002
- File - Migrate core pictures (workspace and member logo) + workflow attachments by @etiennejouan in https://github.com/twentyhq/twenty/pull/17924
- Translate page layout tab title by @Devessier in https://github.com/twentyhq/twenty/pull/17975
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18007
- Fixed group by query order by inside group by @lucasbordeau in https://github.com/twentyhq/twenty/pull/18005
- Move secure HTTP client IP validation to connection level by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18006
- Replace country code by calling code in workflows by @thomtrp in https://github.com/twentyhq/twenty/pull/18008
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18012
- Add Client Api generation by @charlesBochet in https://github.com/twentyhq/twenty/pull/17961
- Load view field groups by @Devessier in https://github.com/twentyhq/twenty/pull/18010
- New onboarding plan by @BOHEUS in https://github.com/twentyhq/twenty/pull/17776
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18013
- Migrate more to Jotai by @charlesBochet in https://github.com/twentyhq/twenty/pull/17968
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18014
- Navbar customization improvements by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/17863
- Fix connected account permissions by @BOHEUS in https://github.com/twentyhq/twenty/pull/17598
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18017
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18020
- Files command - fixes by @etiennejouan in https://github.com/twentyhq/twenty/pull/18016
- Date & DateTime validation fixes / improvements by @etiennejouan in https://github.com/twentyhq/twenty/pull/18009
- fixes: loosen up front validation, add resolveEntityRelationUniversalIdentifiers to update and restore by @ehconitin in https://github.com/twentyhq/twenty/pull/18015
- New field creates fields widget field by @Weiko in https://github.com/twentyhq/twenty/pull/18022
- App feedbacks by @martmull in https://github.com/twentyhq/twenty/pull/18028
- Add SSE for metadata and plug front components by @bosiraphael in https://github.com/twentyhq/twenty/pull/17998
- Improve API Client usage and add Typescript check by @charlesBochet in https://github.com/twentyhq/twenty/pull/18023
- i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18029
- v1.18 - Fix command by @etiennejouan in https://github.com/twentyhq/twenty/pull/18032
- Fix Gmail thread awareness for custom labels by @neo773 in https://github.com/twentyhq/twenty/pull/18031
- Allow DATE_TIME IS operand to filter on a whole day by @carbonFibreCode in https://github.com/twentyhq/twenty/pull/17529
- Replace generic “Unknown error” messages with descriptive error details by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18019
- Use proper PostgreSQL identifier/literal escaping in workspace DDL by @FelixMalfait in https://github.com/twentyhq/twenty/pull/18024
- Fixes - Workspace logo migration by @etiennejouan in https://github.com/twentyhq/twenty/pull/18035
- [Chore] : Generate migration for DATE_TIME to DATE for DATE_TIME + IS operand filters by @carbonFibreCode in https://github.com/twentyhq/twenty/pull/17564
- 2094 extensibility define postinstall orand preinstall function to run in application by @martmull in https://github.com/twentyhq/twenty/pull/18037
- Nav Menu Item Migration command fix by @etiennejouan in https://github.com/twentyhq/twenty/pull/18041
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18040
- Sync page Layout by @charlesBochet in https://github.com/twentyhq/twenty/pull/18034
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18048
- Add missing objects to rich app integration tests by @thomtrp in https://github.com/twentyhq/twenty/pull/18039
- Add example in create-twenty-app by @martmull in https://github.com/twentyhq/twenty/pull/18043
- Refactor page layout types by @charlesBochet in https://github.com/twentyhq/twenty/pull/18042
- refactor workflow action messaging with callout by @Bonapara in https://github.com/twentyhq/twenty/pull/18038
- Add currency hover tooltip in CurrencyDisplay by @Bonapara in https://github.com/twentyhq/twenty/pull/18045
- fix: show “Not shared” for junction relation fields when target or intermediate object is not readable by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/18025
- i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/18050
- Restore old favorite design by @etiennejouan in https://github.com/twentyhq/twenty/pull/18049
New Contributors
- @LTan-101104 made their first contribution in https://github.com/twentyhq/twenty/pull/17601
- @Eruis2579 made their first contribution in https://github.com/twentyhq/twenty/pull/17559
- @acee3 made their first contribution in https://github.com/twentyhq/twenty/pull/16373
- @kiannidev made their first contribution in https://github.com/twentyhq/twenty/pull/17846
- @manstfu made their first contribution in https://github.com/twentyhq/twenty/pull/17938
Full Changelog: https://github.com/twentyhq/twenty/compare/v1.17.0…v1.18.0