v1.7.0
twentyhq/twentyv1.7.0Oct 2, 2025by Weiko
AI Summary
Workflow-centric release with iterator support, calendar view, and AI model additions. Included billing refactoring and security improvements.
Key Highlights
- Workflow iterators for running actions over lists
- Calendar view with drag-and-drop
- xAI models support added
- Unaccent extension for accent-insensitive search
- Rich text email body support
- Workspace-level impersonation
New Features
- Workflow iterators
- Calendar view with compact view option
- xAI (Grok) models support
- Accent-insensitive search
- Rich text email composition
- Workspace impersonation module
- Billing refactoring
Full Release Notes
## What's Changed * Added disabled trash button in http in workflows by @SaurabhJain708 in https://github.com/twentyhq/twenty/pull/14439 * Disable hover and active styles when button is disabled in primary/default variant by @Devessier in https://github.com/twentyhq/twenty/pull/14524 * Add compact view to calendar by @Weiko in https://github.com/twentyhq/twenty/pull/14527 * Implement creating node before initial step + deleting loop edge by @Devessier in https://github.com/twentyhq/twenty/pull/14525 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14534 * Fix table mobile display issues by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14528 * Flat entity maps cache generic service + runner dynamically retrieving invalidating update cache + view service v2 refactor by @prastoin in https://github.com/twentyhq/twenty/pull/14508 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14536 * Add form select field by @thomtrp in https://github.com/twentyhq/twenty/pull/14538 * Add icon to duplicate + split step service in two by @thomtrp in https://github.com/twentyhq/twenty/pull/14521 * Add dnd to calendar view by @Weiko in https://github.com/twentyhq/twenty/pull/14539 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14540 * Put back previous empty option by @thomtrp in https://github.com/twentyhq/twenty/pull/14542 * Page layout refactoring by @bosiraphael in https://github.com/twentyhq/twenty/pull/14535 * [Dashboards] - refactor - pie chart by @ehconitin in https://github.com/twentyhq/twenty/pull/14526 * feat: Add xAI models support by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14523 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14544 * Fix variables coming from DB events by @thomtrp in https://github.com/twentyhq/twenty/pull/14545 * feat: add changelog & image for 1.5 by @Bonapara in https://github.com/twentyhq/twenty/pull/14412 * feat(search): Add unaccent support for accent-insensitive search. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/14464 * Fixed last column width bug on table with groups by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14541 * create groupBy resolver + mock groupBy service by @etiennejouan in https://github.com/twentyhq/twenty/pull/14530 * Add default limit when fetching records by @etiennejouan in https://github.com/twentyhq/twenty/pull/14532 * Fix table footer cell resize issue by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14552 * Add settings section for public domains by @martmull in https://github.com/twentyhq/twenty/pull/14543 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14553 * Feat: Add reasoning summary and tool details display for AI responses by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14414 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14555 * various UI fixes in calendar view by @Weiko in https://github.com/twentyhq/twenty/pull/14551 * Group By - Add feature flag by @etiennejouan in https://github.com/twentyhq/twenty/pull/14558 * Fix column resize handle by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14559 * Index v2 runner by @prastoin in https://github.com/twentyhq/twenty/pull/14537 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14560 * [Dashboards] - Add scroll wrapper by @ehconitin in https://github.com/twentyhq/twenty/pull/14561 * [Dashboards] - refactor - gauge and number chart by @ehconitin in https://github.com/twentyhq/twenty/pull/14550 * [fix] Handle null icon for field metadata by @ijreilly in https://github.com/twentyhq/twenty/pull/14565 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14571 * Add missing migration for unaccent by @FelixMalfait in https://github.com/twentyhq/twenty/pull/14566 * Fixes z-index with groups by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14563 * Change workflow node type by @thomtrp in https://github.com/twentyhq/twenty/pull/14570 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14575 * Create edit dashboard action by @bosiraphael in https://github.com/twentyhq/twenty/pull/14564 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14578 * Fix one to many relation and multi select fields on table by @charlesBochet in https://github.com/twentyhq/twenty/pull/14576 * Fix focused row group section border bottom by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14577 * remove singleton usage of i18n by @ehconitin in https://github.com/twentyhq/twenty/pull/14422 * fixing Numbers formatting by @ketanMehtaa in https://github.com/twentyhq/twenty/pull/14403 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14583 * Fixes hover + focus on same cell by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14580 * fix: Added isReadonly logic to css by @SaurabhJain708 in https://github.com/twentyhq/twenty/pull/14584 * Table small fixes by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14588 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14590 * Improve builder return type by @prastoin in https://github.com/twentyhq/twenty/pull/14592 * Make filters a regular step by @thomtrp in https://github.com/twentyhq/twenty/pull/14586 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14595 * [Iterator] Add position offset to empty node by @thomtrp in https://github.com/twentyhq/twenty/pull/14597 * Improve edge path algorithm by @Devessier in https://github.com/twentyhq/twenty/pull/14600 * Fix sort bug issue by @charlesBochet in https://github.com/twentyhq/twenty/pull/14607 * Use variables within Iterators by @thomtrp in https://github.com/twentyhq/twenty/pull/14604 * Add back shadow on frozen columns and header in table by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14593 * feat(billing): refacto billing by @AMoreaux in https://github.com/twentyhq/twenty/pull/14243 * Fix - Record text should always be visible and in first position in views by @ijreilly in https://github.com/twentyhq/twenty/pull/14598 * Add scripts to relaunch message and calendar channels by @charlesBochet in https://github.com/twentyhq/twenty/pull/14579 * Setup 1.6 commands by @prastoin in https://github.com/twentyhq/twenty/pull/14614 * Support loops in workflow versions by @Devessier in https://github.com/twentyhq/twenty/pull/14603 * fix(billing): reenable trial by @AMoreaux in https://github.com/twentyhq/twenty/pull/14616 * Added a util helper to remove accent and case to improve search logic by @SaurabhJain708 in https://github.com/twentyhq/twenty/pull/14533 * Refactored table width and height constants by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14613 * Fix messaging crons by @charlesBochet in https://github.com/twentyhq/twenty/pull/14619 * feat (search): add dynamic search field metadata foundation for database-driven search configuration by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/14469 * Optimize CI runner cost by @charlesBochet in https://github.com/twentyhq/twenty/pull/14628 * 1.6 changelog by @Bonapara in https://github.com/twentyhq/twenty/pull/14620 * Update integration test to include cases for bi-directional accent-insensitive search. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/14631 * feat(database): activate unaccent extension with immutable function by @AMoreaux in https://github.com/twentyhq/twenty/pull/14621 * feat: rich text email body by @arikchakma in https://github.com/twentyhq/twenty/pull/14482 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14634 * Fix table column width on mobile by @lucasbordeau in https://github.com/twentyhq/twenty/pull/14623 * Remove verbose option by @martmull in https://github.com/twentyhq/twenty/pull/14646 * Add view viewField favorite creation after object creation in migration v2 by @Weiko in https://github.com/twentyhq/twenty/pull/14644 * Merge commands by @martmull in https://github.com/twentyhq/twenty/pull/14647 * Remove twenty-apps irrelevant stuff by @martmull in https://github.com/twentyhq/twenty/pull/14649 * AI SDK v5 migration by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14549 * Imap perf improvement by @neo773 in https://github.com/twentyhq/twenty/pull/14629 * Fix/preserve channels on credential update by @neo773 in https://github.com/twentyhq/twenty/pull/14633 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14656 * Create a cancel action to leave the dashboard edit mode without saving by @bosiraphael in https://github.com/twentyhq/twenty/pull/14650 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14658 * Index v2 side effects by @prastoin in https://github.com/twentyhq/twenty/pull/14567 * Add a new graphql mutation in the pageLayout resolver to handle page layout update with tabs and widgets by @bosiraphael in https://github.com/twentyhq/twenty/pull/14612 * Allow nodes connection to loop edge by @Devessier in https://github.com/twentyhq/twenty/pull/14661 * Remove twenty-app.jsonc by @martmull in https://github.com/twentyhq/twenty/pull/14662 * [Dashboards] - Fix seeding not working for YC workspace because of duplicate IDs by @ehconitin in https://github.com/twentyhq/twenty/pull/14591 * feat: Added workspace-level impersonation module and functionality by @harshit078 in https://github.com/twentyhq/twenty/pull/14360 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14667 * Migrate update step changes to diff by @thomtrp in https://github.com/twentyhq/twenty/pull/14663 * Outbound message domains by @neo773 in https://github.com/twentyhq/twenty/pull/14557 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14677 * Create save dashboard record action by @bosiraphael in https://github.com/twentyhq/twenty/pull/14665 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14683 * Create MenuPicker by @bosiraphael in https://github.com/twentyhq/twenty/pull/14681 * Add FK creation in migration v2 by @Weiko in https://github.com/twentyhq/twenty/pull/14685 * update cleaning job to progressively delete metadata by @etiennejouan in https://github.com/twentyhq/twenty/pull/14596 * Store history when iterator reset the step info by @thomtrp in https://github.com/twentyhq/twenty/pull/14684 * Debug webhook job by @charlesBochet in https://github.com/twentyhq/twenty/pull/14675 * Add basic support for iterators in workflow runs by @Devessier in https://github.com/twentyhq/twenty/pull/14680 * Implement groupBy resolver (with orderBy, without viewId) by @ijreilly in https://github.com/twentyhq/twenty/pull/14690 * Migrate from Zod v3 to v4 by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14639 * Import - Fix erase on update on Number, Boolean and Multi Select fields by @etiennejouan in https://github.com/twentyhq/twenty/pull/14686 * Fix flaky test on page layout widget by @bosiraphael in https://github.com/twentyhq/twenty/pull/14703 * Add UTC timezone label to CRON trigger form by @omareltomy in https://github.com/twentyhq/twenty/pull/14674 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14704 * batched updates/insert and delete invalid folders by @neo773 in https://github.com/twentyhq/twenty/pull/14702 * Fix calendar booking step in onboarding when env var is not configured by @ehconitin in https://github.com/twentyhq/twenty/pull/14707 * docs: update PostgreSQL installation instructions for macOS by @ireoluwacodes in https://github.com/twentyhq/twenty/pull/14710 * Add logs to debug worker performance on production by @charlesBochet in https://github.com/twentyhq/twenty/pull/14712 * 1541 extensibility twenty cli use workspace migration v2 to synchronize application objects fields views by @martmull in https://github.com/twentyhq/twenty/pull/14706 * Add ServerlessFunction to migration v2 by @Weiko in https://github.com/twentyhq/twenty/pull/14698 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14718 * 1571 extensibility twenty cli add command to create base entities like object agent or serverless by @martmull in https://github.com/twentyhq/twenty/pull/14722 * Update menu items across the app by @bosiraphael in https://github.com/twentyhq/twenty/pull/14724 * Enables phone number search in the global search (Command Menu) for person records. by @mabdullahabaid in https://github.com/twentyhq/twenty/pull/14636 * add code checksum to flat serverless function by @Weiko in https://github.com/twentyhq/twenty/pull/14721 * Allow bulk records for manual trigger by @thomtrp in https://github.com/twentyhq/twenty/pull/14725 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14739 * Fix variable search for iterators by @thomtrp in https://github.com/twentyhq/twenty/pull/14742 * Activate v2 default seed by @prastoin in https://github.com/twentyhq/twenty/pull/14660 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14744 * Restructure agent chat messages with parts-based architecture by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14749 * Add configuration types for widgets by @ehconitin in https://github.com/twentyhq/twenty/pull/14717 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14765 * Fix workflow menu icons by @thomtrp in https://github.com/twentyhq/twenty/pull/14767 * Visualize iterator sub step's output by iteration index by @Devessier in https://github.com/twentyhq/twenty/pull/14747 * feat: Add ability to drag arrow tip to another node by @harshit078 in https://github.com/twentyhq/twenty/pull/14657 * Workflow run over a list of records + backfill availability on manual triggers by @thomtrp in https://github.com/twentyhq/twenty/pull/14761 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14768 * Add impersonate banner by @etiennejouan in https://github.com/twentyhq/twenty/pull/14734 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14770 * [GroupBy] Add views filters to groupBy query by @ijreilly in https://github.com/twentyhq/twenty/pull/14762 * chore(billing): add tests + fix meter name for trial by @AMoreaux in https://github.com/twentyhq/twenty/pull/14701 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14778 * Store history for iterator by @thomtrp in https://github.com/twentyhq/twenty/pull/14771 * Add db event trigger and cron trigger to migration v2 by @Weiko in https://github.com/twentyhq/twenty/pull/14772 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14782 * [Dashboards]- Addition of tabs by @ehconitin in https://github.com/twentyhq/twenty/pull/14756 * Search record action - allow to search more than 1 record by @thomtrp in https://github.com/twentyhq/twenty/pull/14769 * Intercept all abortErrors by @ijreilly in https://github.com/twentyhq/twenty/pull/14780 * Store last iterator execution in history by @thomtrp in https://github.com/twentyhq/twenty/pull/14786 * Field level permission checks on widgets by @ehconitin in https://github.com/twentyhq/twenty/pull/14774 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14788 * 1573 extensibility twenty cli handle custom layers for serverless functions of applications by @martmull in https://github.com/twentyhq/twenty/pull/14779 * Visualize workflow run step input by @Devessier in https://github.com/twentyhq/twenty/pull/14784 * [View migration] Clean ViewFilterOperand by @ijreilly in https://github.com/twentyhq/twenty/pull/14785 * [GroupBy] Add views filters to groupBy query 2/2: handle anyFieldFilter by @ijreilly in https://github.com/twentyhq/twenty/pull/14791 * Added all the initial selection logic by @SaurabhJain708 in https://github.com/twentyhq/twenty/pull/14789 * fix view update in migration v2 by @Weiko in https://github.com/twentyhq/twenty/pull/14794 * Display actions on calendar item selection by @thomtrp in https://github.com/twentyhq/twenty/pull/14795 * Feat/add add icon to calendar view by @SaurabhJain708 in https://github.com/twentyhq/twenty/pull/14696 * fix(billing): refactor and update subscription phase handling logic by @AMoreaux in https://github.com/twentyhq/twenty/pull/14783 * fix - lint main by @ehconitin in https://github.com/twentyhq/twenty/pull/14802 * Fix AI Chat permission error for users with restricted field access by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14799 * Structured agent chat messages follow up by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14797 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14808 * Remove deprecated check by @martmull in https://github.com/twentyhq/twenty/pull/14809 * Fix step output for iterators by @Devessier in https://github.com/twentyhq/twenty/pull/14796 * Put checkbox and tag into left content by @thomtrp in https://github.com/twentyhq/twenty/pull/14811 * Hide iteration switcher for steps following iterators by @Devessier in https://github.com/twentyhq/twenty/pull/14810 * Message Folders Redesign and Import Policy by @neo773 in https://github.com/twentyhq/twenty/pull/14714 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14812 * refactor(captcha): add path-based captcha check and cleanup unused to… by @AMoreaux in https://github.com/twentyhq/twenty/pull/14803 * feat: add create or update workflow trigger by @harshit078 in https://github.com/twentyhq/twenty/pull/14708 * Add workflow iterator to lab by @thomtrp in https://github.com/twentyhq/twenty/pull/14814 * Fix calendar padding and set calendar top bar fixed by @Weiko in https://github.com/twentyhq/twenty/pull/14815 * add the contextual text for multiselectavatar and selectavatar by @guillim in https://github.com/twentyhq/twenty/pull/14807 * Fix path retrieval for twenty apps in twenty-cli by @Weiko in https://github.com/twentyhq/twenty/pull/14818 * Feat: native model capabilities by @abdulrahmancodes in https://github.com/twentyhq/twenty/pull/14787 * i18n - translations by @github-actions[bot] in https://github.com/twentyhq/twenty/pull/14822 ## New Contributors * @omareltomy made their first contribution in https://github.com/twentyhq/twenty/pull/14674 * @ireoluwacodes made their first contribution in https://github.com/twentyhq/twenty/pull/14710 **Full Changelog**: https://github.com/twentyhq/twenty/compare/v1.6.0...v1.7.0