v1.14.0
twentyhq/twentyv1.14.0Dec 23, 2025by Weiko
AI Summary
Major AI-focused release introducing skills system, code interpreter for AI, and dashboard tools for AI chat. Includes significant workflow improvements and UI enhancements.
Key Highlights
- Skills system replacing agent search
- AI code interpreter for data analysis
- Dashboard tools for AI chat
- Context usage display in AI chat
- Application tokens for extensibility
- Resizable navigation drawer and command menu panels
Breaking Changes
- BREAKING: deploy server before frontend for AI model refresh
- BREAKING: deploy server first for context usage display
New Features
- Custom onClick behavior for phone, email and links
- Rich text editor for dashboards
- Higher resolution options in dateTime filter
- Secondary action button feature
- Add pattern for variable tag in tiptap
- Support links moved to workspace switcher
- POC Real-Time updates
Full Release Notes
## What's Changed * Fix dashboard duplication by @bosiraphael in https://github.com/twentyhq/twenty/pull/16505 * Deprecate workspace datasoure by @Weiko in https://github.com/twentyhq/twenty/pull/16507 * fix(server): Favortites, attachments, timeline... by @guillim in https://github.com/twentyhq/twenty/pull/16509 * feat(ai): refresh AI models with deprecation support and multi-provider defaults (BREAKING: deploy server before frontend please) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16503 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16514 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16515 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16516 * feat(ai): replace agent search with skills system by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16513 * feat(ai): add dashboard tools for AI chat by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16517 * fix: Display locked UI for restricted email thread messages by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16512 * Filter BAD_USER_INPUT errors from Sentry by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16511 * Add TTL eviction to local data cache by @Weiko in https://github.com/twentyhq/twenty/pull/16510 * Fix raw json field display in read only by @etiennejouan in https://github.com/twentyhq/twenty/pull/16502 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16522 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16524 * feat(ai): add context usage display to AI chat (BREAKING: deploy server first) by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16518 * feat: add feature to customize onClick behaviour for phone, email and links data type by @abk404 in https://github.com/twentyhq/twenty/pull/16265 * Fix fetch more notes by @etiennejouan in https://github.com/twentyhq/twenty/pull/16442 * [DASHBOARDS] Fix date order by by @bosiraphael in https://github.com/twentyhq/twenty/pull/16521 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16527 * fix(server): non blocking CleanEmptyStringNullInTextFieldsCommand error by @prastoin in https://github.com/twentyhq/twenty/pull/16529 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16537 * Fix rest metadata version missing by @Weiko in https://github.com/twentyhq/twenty/pull/16536 * [RenameIndexCommand] Fix orphaned index edge case by @prastoin in https://github.com/twentyhq/twenty/pull/16539 * Fixed Apollo cache bug by @lucasbordeau in https://github.com/twentyhq/twenty/pull/16523 * Fix APIKey in search resolver for get role by @Weiko in https://github.com/twentyhq/twenty/pull/16540 * Prevent table columns to be too narrow by @charlesBochet in https://github.com/twentyhq/twenty/pull/16542 * [Dashboards] Rich text editor frontend by @ehconitin in https://github.com/twentyhq/twenty/pull/16437 * Investigate - Slow transformRichTextV2 function by @etiennejouan in https://github.com/twentyhq/twenty/pull/16535 * Facebook links: display profile instead of full url by @Bonapara in https://github.com/twentyhq/twenty/pull/16414 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16545 * Fix rename index command error code edge case by @prastoin in https://github.com/twentyhq/twenty/pull/16556 * fix(twenty-shared): preserve special characters in URLs by @asasin235 in https://github.com/twentyhq/twenty/pull/16312 * Bump @types/unzipper from 0.10.10 to 0.10.11 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/16554 * fix: ensure deactivated object records do not appear in search by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16532 * Fix rename index collides with existing v2 index by @prastoin in https://github.com/twentyhq/twenty/pull/16560 * feat(workflow): improve Add node discovery by @adityashirsatrao007 in https://github.com/twentyhq/twenty/pull/16547 * fix(workflow): line break not supported by Send Email Nodes by @abk404 in https://github.com/twentyhq/twenty/pull/16561 * fix messaging error parsing by @neo773 in https://github.com/twentyhq/twenty/pull/16448 * Update null command by @etiennejouan in https://github.com/twentyhq/twenty/pull/16567 * Increase bundle size to 6.9MB by @charlesBochet in https://github.com/twentyhq/twenty/pull/16568 * feat(ai): add code interpreter for AI data analysis by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16559 * Compute output schema on frontend by @thomtrp in https://github.com/twentyhq/twenty/pull/16530 * lazy load rich text widget by @ehconitin in https://github.com/twentyhq/twenty/pull/16569 * [Dashboards] add hide empty category option for pie charts by @ehconitin in https://github.com/twentyhq/twenty/pull/16550 * Fix APIKey typing by @Weiko in https://github.com/twentyhq/twenty/pull/16541 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16574 * 1895 extensibility v1 application tokens 3 by @martmull in https://github.com/twentyhq/twenty/pull/16504 * prevent filtering out messages sent by user when their handle resembes group email by @neo773 in https://github.com/twentyhq/twenty/pull/16508 * Remove viewGroup.fieldMetadataId by @ijreilly in https://github.com/twentyhq/twenty/pull/16571 * revert bundle size increase by @ehconitin in https://github.com/twentyhq/twenty/pull/16575 * E2B var env fix by @etiennejouan in https://github.com/twentyhq/twenty/pull/16576 * fix: ensure unique GraphQL schema caching per API key by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16411 * [Dashboards] add legend hover highlight for graph widgets by @ehconitin in https://github.com/twentyhq/twenty/pull/16551 * Fix action menu modals rendering inside dropdown containers by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16478 * Added relative date filter to dashboards by @lucasbordeau in https://github.com/twentyhq/twenty/pull/16292 * Update hello-world twenty-sdk version by @martmull in https://github.com/twentyhq/twenty/pull/16579 * fix: incomplete URL substring sanitization in linkedin-browser-extension. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16586 * Standard Agent, Role, Role target by @prastoin in https://github.com/twentyhq/twenty/pull/16499 * Display a CTA to view the existing duplicate when adding a duplicate email/domain. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16483 * Update migration command by @martmull in https://github.com/twentyhq/twenty/pull/16578 * feat(server): enforce userFriendlyMessage on all exceptions by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16589 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16596 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16600 * Vendor twenty-shared into twenty-sdk by @martmull in https://github.com/twentyhq/twenty/pull/16592 * Update dashboard Icons by @bosiraphael in https://github.com/twentyhq/twenty/pull/16605 * [DASHBOARDS] Rotate ticks on bar and line charts by @bosiraphael in https://github.com/twentyhq/twenty/pull/16528 * Fix bug on Links, Array, Emails, Phones Field inputs by @charlesBochet in https://github.com/twentyhq/twenty/pull/16603 * Function trigger updates 2 by @martmull in https://github.com/twentyhq/twenty/pull/16608 * e2e tests by @ijreilly in https://github.com/twentyhq/twenty/pull/16533 * Feature 15797 add secondary action button by @Lakshayyy-m in https://github.com/twentyhq/twenty/pull/16582 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16614 * feat: add full path label tooltip for workflow filter field by @LuckyGoyal039 in https://github.com/twentyhq/twenty/pull/16580 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16620 * handle localization and property parameters in CalDAV iCal parsing by @neo773 in https://github.com/twentyhq/twenty/pull/16519 * Second Action Button - fix by @etiennejouan in https://github.com/twentyhq/twenty/pull/16613 * Follow up on FieldInput fix by @charlesBochet in https://github.com/twentyhq/twenty/pull/16611 * Remove position input from zapier by @martmull in https://github.com/twentyhq/twenty/pull/16616 * Fix drag and drop in dropdown by @bosiraphael in https://github.com/twentyhq/twenty/pull/16622 * Async validators and additional cache maps in v2 Builder by @prastoin in https://github.com/twentyhq/twenty/pull/16618 * Common API - Add tests on position field validation at creation by @etiennejouan in https://github.com/twentyhq/twenty/pull/16630 * fix(workflows): align variable regex with validation and prevent ReDoS by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16607 * [DASHBOARDS] Hide tab menu items instead of disabling them by @bosiraphael in https://github.com/twentyhq/twenty/pull/16629 * feat: 🎸 added higher resoulution options in the dateTime Filter by @Bhoomaahamso in https://github.com/twentyhq/twenty/pull/16548 * Create typeguards for widget configurations by @bosiraphael in https://github.com/twentyhq/twenty/pull/16627 * fix: hide GraphQL stack traces and messages in production by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16593 * feat: add lingui/no-unlocalized-strings ESLint rule and fix translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16610 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16644 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16646 * feat: soft disable LOCAL code interpreter driver in production by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16647 * fix: ensure QueryRunner is released in workspace schema operations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16649 * Use parameterized query in getRemoteTableLocalName by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16651 * fix: bill all events in BillingUsageService.billUsage() instead of only the first one by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16650 * feat: add resizable navigation drawer and command menu panels by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16612 * feat: move support links to workspace switcher by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16653 * I18n Translations by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16656 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16657 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16660 * fix: prevent text overflow in view picker and record table action row by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16658 * Fix command menu input text color by @bosiraphael in https://github.com/twentyhq/twenty/pull/16661 * Metadata modules for `PageLayoutTab` `PageLayoutWidget` by @prastoin in https://github.com/twentyhq/twenty/pull/16662 * Always enable drag selection when side panel is opened by @bosiraphael in https://github.com/twentyhq/twenty/pull/16664 * Fixed command menu and main container layout by @lucasbordeau in https://github.com/twentyhq/twenty/pull/16665 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16666 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16667 * Fix subscription cross tenant issue by @martmull in https://github.com/twentyhq/twenty/pull/16670 * Fix/close filter by enter by @ManikanthMartha in https://github.com/twentyhq/twenty/pull/16643 * [DASHBOARDS] Add the ability to click to create a widget by @bosiraphael in https://github.com/twentyhq/twenty/pull/16673 * Billing - Fix subscription_schedule release by @etiennejouan in https://github.com/twentyhq/twenty/pull/16669 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16678 * Billing - fix duplicate key value violates unique constraint "IndexOnActiveSubscriptionPerWorkspace" by @etiennejouan in https://github.com/twentyhq/twenty/pull/16676 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16682 * Refactor seed to use twenty-standard application by @prastoin in https://github.com/twentyhq/twenty/pull/16598 * [DASHBOARDS] Fix settings color palette by @bosiraphael in https://github.com/twentyhq/twenty/pull/16681 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16685 * Add pattern for variable tag in tiptap by @thomtrp in https://github.com/twentyhq/twenty/pull/16652 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16687 * Fix ts error resolve rich text by @thomtrp in https://github.com/twentyhq/twenty/pull/16688 * Add field widget by @Devessier in https://github.com/twentyhq/twenty/pull/16609 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16690 * Fix standard agent and roles deletion command by @prastoin in https://github.com/twentyhq/twenty/pull/16686 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16692 * Make view bar filter dropdown field select scrollable by @lucasbordeau in https://github.com/twentyhq/twenty/pull/16684 * Read some endpoints on replica db (behind feature flag) by @ijreilly in https://github.com/twentyhq/twenty/pull/16677 * fix: mdast-util-to-hast has unsanitized class attribute by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16699 * changing location of lint rule by @guillim in https://github.com/twentyhq/twenty/pull/16703 * Refactor workspace creation by @prastoin in https://github.com/twentyhq/twenty/pull/16689 * fix: resolve react warning when updating state during render in SettingsPublicDomainsListCard by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16700 * Implement new version of the side panel sub header by @bosiraphael in https://github.com/twentyhq/twenty/pull/16683 * fix: nodemailer is vulnerable to DoS through uncontrolled recursion. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16698 * Refactor upsertRecordsInStore to accept an object with partialRecords by @charlesBochet in https://github.com/twentyhq/twenty/pull/16707 * Filter expected errors from sentry by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16642 * fix: Next has a denial of service with server components by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16702 * feat: rename Releases settings page to Updates by @Bonapara in https://github.com/twentyhq/twenty/pull/16634 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16711 * fix: next has a denial of service with server components by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16710 * fix: auth0/node-jws improperly verifies HMAC signature by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16712 * Fix create twenty app template by @martmull in https://github.com/twentyhq/twenty/pull/16708 * Message folders optimization by @neo773 in https://github.com/twentyhq/twenty/pull/16479 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16717 * Add useUpdateManyRecords hook and message folders sync status mutation by @neo773 in https://github.com/twentyhq/twenty/pull/16694 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16720 * [POC] Real-Time by @thomtrp in https://github.com/twentyhq/twenty/pull/16633 * remove IMAP_SMTP_CALDAV feature flag by @neo773 in https://github.com/twentyhq/twenty/pull/16695 * Gmail error handling fixes by @neo773 in https://github.com/twentyhq/twenty/pull/16719 * Fix composite upsert by @thomtrp in https://github.com/twentyhq/twenty/pull/16718 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16721 * Field widget edit relations by @Devessier in https://github.com/twentyhq/twenty/pull/16714 * Fix Global workflows not pinned by @charlesBochet in https://github.com/twentyhq/twenty/pull/16728 * User guide structure update by @StephanieJoly4 in https://github.com/twentyhq/twenty/pull/16705 * Restore docs.json user guide structure from PR #16705 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16741 * fix(docs): only download translations for supported languages by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16744 * Restore navigation structure from PR #16705 by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16742 * I18n Docs by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16746 * fix(docs): configure target languages in crowdin.yml by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16745 * feat: validator is vulnerable to incomplete filtering of one or more instances of special elements by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16748 * Enable read on replica for all by @ijreilly in https://github.com/twentyhq/twenty/pull/16740 * 1774 extensibility v1 create an exhaustive documentation readme or dedicated section in twenty contributing doc by @martmull in https://github.com/twentyhq/twenty/pull/16751 * Edit simple values in Field widget by @Devessier in https://github.com/twentyhq/twenty/pull/16749 * fix: storybook manager bundle may expose environment variables during build by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16747 * feat(i18n): fix translation QA issues and add automation by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16756 * Bump ts-loader from 9.5.1 to 9.5.4 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/16737 * Bump tsx from 4.20.5 to 4.21.0 by @dependabot[bot] in https://github.com/twentyhq/twenty/pull/16738 * docs: add IS_MULTIWORKSPACE_ENABLED documentation by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16758 * Adding one How To article to the workflow section by @StephanieJoly4 in https://github.com/twentyhq/twenty/pull/16760 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16761 * Allow custom fields to be editable for system objects and prevent the error for timeline activity on system object pages. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/16268 * i18n - docs translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/16767 * Allow creation date import by @BOHEUS in https://github.com/twentyhq/twenty/pull/16764 * fix: enable API key management of workspace views + fix permission bypass vulnerability by @eeeggg in https://github.com/twentyhq/twenty/pull/16768 * Fix: Record label identifier setting not saving on first attempt by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/16769 * fix: prevent API keys from creating UNLISTED views by @FelixMalfait in https://github.com/twentyhq/twenty/pull/16770 * fix: prevent workflow step title from transferring between steps. by @LuckyGoyal039 in https://github.com/twentyhq/twenty/pull/16762 ## New Contributors * @asasin235 made their first contribution in https://github.com/twentyhq/twenty/pull/16312 * @adityashirsatrao007 made their first contribution in https://github.com/twentyhq/twenty/pull/16547 * @Lakshayyy-m made their first contribution in https://github.com/twentyhq/twenty/pull/16582 * @Bhoomaahamso made their first contribution in https://github.com/twentyhq/twenty/pull/16548 * @eeeggg made their first contribution in https://github.com/twentyhq/twenty/pull/16768 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v1.13.0...v1.14.0