<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: NocoBase</title>
    <description>The latest articles on DEV Community by NocoBase (@nocobase).</description>
    <link>https://dev.to/nocobase</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1349233%2Ffe1061e9-2897-4210-a0b2-a96c044ac3b2.jpg</url>
      <title>DEV Community: NocoBase</title>
      <link>https://dev.to/nocobase</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nocobase"/>
    <language>en</language>
    <item>
      <title>Weekly Updates: Improvements and Bug Fixes</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 11 Sep 2026 09:42:33 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-improvements-and-bug-fixes-4lg2</link>
      <guid>https://dev.to/nocobase/weekly-updates-improvements-and-bug-fixes-4lg2</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.10
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[utils]&lt;/strong&gt; Added an option to block server-side requests and redirects to literal IP addresses (&lt;a href="https://github.com/nocobase/nocobase/pull/10490" rel="noopener noreferrer"&gt;#10490&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Improve V2 form QR scanning reliability on iOS. (&lt;a href="https://github.com/nocobase/nocobase/pull/10456" rel="noopener noreferrer"&gt;#10456&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Hide unsupported built-in date variables from workflow create and update field assignments. (&lt;a href="https://github.com/nocobase/nocobase/pull/10442" rel="noopener noreferrer"&gt;#10442&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed misleading preparing status when a subapp deployment environment is unavailable (&lt;a href="https://github.com/nocobase/nocobase/pull/10485" rel="noopener noreferrer"&gt;#10485&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Delay node]&lt;/strong&gt; Fixed delay duration variable validation and report invalid resolved values instead of waiting unexpectedly. (&lt;a href="https://github.com/nocobase/nocobase/pull/10469" rel="noopener noreferrer"&gt;#10469&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed subapp access failures after rolling updates or deployment environment changes by @2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.9
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the v2 Update record field settings failing after an assigned field was deleted. (&lt;a href="https://github.com/nocobase/nocobase/pull/10483" rel="noopener noreferrer"&gt;#10483&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Show the standard deleted-field warning for historical V2 field assignments. (&lt;a href="https://github.com/nocobase/nocobase/pull/10484" rel="noopener noreferrer"&gt;#10484&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix filter forms not collapsing on mobile (&lt;a href="https://github.com/nocobase/nocobase/pull/10479" rel="noopener noreferrer"&gt;#10479&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Support displaying to-many association fields as read-only subtables in client v2 forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10478" rel="noopener noreferrer"&gt;#10478&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix nested association fields rendering blank in V2 forms when the parent relation uses dropdown selection. (&lt;a href="https://github.com/nocobase/nocobase/pull/10477" rel="noopener noreferrer"&gt;#10477&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the inverse relationship type being editable in v2 field configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/10476" rel="noopener noreferrer"&gt;#10476&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix interrupted option value input for custom radio and checkbox fields in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10480" rel="noopener noreferrer"&gt;#10480&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix full-page reloads when opening settings pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10474" rel="noopener noreferrer"&gt;#10474&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; Restrict legacy local upload URLs to signed-in users by default, with an opt-in compatibility switch for public access. (&lt;a href="https://github.com/nocobase/nocobase/pull/10471" rel="noopener noreferrer"&gt;#10471&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fixed the inverse-field option not remaining selected when editing a v2 relation field. (&lt;a href="https://github.com/nocobase/nocobase/pull/10482" rel="noopener noreferrer"&gt;#10482&lt;/a&gt;) by @katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed non-admin variable resolution in form linkage rules, referenced templates, and scripts. (&lt;a href="https://github.com/nocobase/nocobase/pull/10467" rel="noopener noreferrer"&gt;#10467&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Access control]&lt;/strong&gt; Fix role permissions so selecting a deeply nested menu also selects all parent menus (&lt;a href="https://github.com/nocobase/nocobase/pull/10473" rel="noopener noreferrer"&gt;#10473&lt;/a&gt;) by @zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed an issue where newly created records were not immediately visible in the Kanban block. (&lt;a href="https://github.com/nocobase/nocobase/pull/10463" rel="noopener noreferrer"&gt;#10463&lt;/a&gt;) by @gaurangagar&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix approval cards showing outdated content after saving an edited draft by @zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.8
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-08&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[WeCom]&lt;/strong&gt; Improved type safety and unified the notification recipient selector in the WeCom plugin. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed applications unexpectedly starting in environments where they were not deployed (&lt;a href="https://github.com/nocobase/nocobase/pull/10464" rel="noopener noreferrer"&gt;#10464&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Allow all workflow variable types in in-app notification titles and detail links. (&lt;a href="https://github.com/nocobase/nocobase/pull/10470" rel="noopener noreferrer"&gt;#10470&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Prevent file redirects from reusing expired signed storage URLs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10475" rel="noopener noreferrer"&gt;#10475&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source manager]&lt;/strong&gt; Added current user and current role variable selection to v2 permission data scopes (&lt;a href="https://github.com/nocobase/nocobase/pull/10472" rel="noopener noreferrer"&gt;#10472&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed an issue where a timed-out JavaScript workflow node could incorrectly abort the workflow instead of respecting "Continue when exception thrown". (&lt;a href="https://github.com/nocobase/nocobase/pull/10461" rel="noopener noreferrer"&gt;#10461&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed AI employees repeatedly querying knowledge bases when the Knowledge Base Prompt omitted the retrieved-content placeholder, and added clear validation guidance when saving the configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/10413" rel="noopener noreferrer"&gt;#10413&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed PGVector connection testing, ZIP import result display, document segment-setting inheritance, and validation for chunk overlap values in AI knowledge bases. by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed exposure of sub-application authentication secrets in application management responses by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[DingTalk]&lt;/strong&gt; Unified the DingTalk notification recipient selector. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.7
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-05&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an authenticated knowledge base retrieval API and a built-in provider for connecting remote NocoBase knowledge bases. by @cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Corrected the root package license metadata to Apache-2.0 and raised the Node.js requirement to version 22 (&lt;a href="https://github.com/nocobase/nocobase/pull/10448" rel="noopener noreferrer"&gt;#10448&lt;/a&gt;) by @hongboji&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fixed frontend freezing after selecting an in-app message or email channel in workflow v2 notification nodes (&lt;a href="https://github.com/nocobase/nocobase/pull/10445" rel="noopener noreferrer"&gt;#10445&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[DingTalk]&lt;/strong&gt; DingTalk ActionCard button links can now be configured to open in an external browser. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Restricted SQL collections from querying PostgreSQL system objects or executing multiple statements (&lt;a href="https://github.com/nocobase/nocobase/pull/10455" rel="noopener noreferrer"&gt;#10455&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Fixed the record comments block to display the commenter's nickname when using the Last modified by field (&lt;a href="https://github.com/nocobase/nocobase/pull/10446" rel="noopener noreferrer"&gt;#10446&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevented Bedrock errors caused by aborted AI responses leaving tool calls without matching tool results. (&lt;a href="https://github.com/nocobase/nocobase/pull/10447" rel="noopener noreferrer"&gt;#10447&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;Fixed an error that prevented business analysis reports containing charts from opening. (&lt;a href="https://github.com/nocobase/nocobase/pull/10440" rel="noopener noreferrer"&gt;#10440&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Fix Vditor detail fields to use HTML preview by default so Markdown images can be displayed. (&lt;a href="https://github.com/nocobase/nocobase/pull/10459" rel="noopener noreferrer"&gt;#10459&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fix the missing record unique key setting in the v2 collection editor. (&lt;a href="https://github.com/nocobase/nocobase/pull/10453" rel="noopener noreferrer"&gt;#10453&lt;/a&gt;) by @katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed workflow user selection when a user-related collection uses its primary key as the user foreign key (&lt;a href="https://github.com/nocobase/nocobase/pull/10354" rel="noopener noreferrer"&gt;#10354&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed AI employee workflow nodes failing to access NocoBase permanent file URLs and unnecessarily copying internal files to AI storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/10408" rel="noopener noreferrer"&gt;#10408&lt;/a&gt;) by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Knowledge base uploads now allow all document formats supported by the backend by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt; Fix dynamic image rendering for stable file URLs in template printing. by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.3.0-beta.9
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[utils]&lt;/strong&gt; Added an option to block server-side requests and redirects to literal IP addresses (&lt;a href="https://github.com/nocobase/nocobase/pull/10490" rel="noopener noreferrer"&gt;#10490&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Improve V2 form QR scanning reliability on iOS. (&lt;a href="https://github.com/nocobase/nocobase/pull/10456" rel="noopener noreferrer"&gt;#10456&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[WeCom]&lt;/strong&gt; Improved type safety and unified the notification recipient selector in the WeCom plugin. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hide unsupported built-in date variables from workflow create and update field assignments. (&lt;a href="https://github.com/nocobase/nocobase/pull/10442" rel="noopener noreferrer"&gt;#10442&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;Fix full-page reloads when opening settings pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10474" rel="noopener noreferrer"&gt;#10474&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed the v2 Update record field settings failing after an assigned field was deleted. (&lt;a href="https://github.com/nocobase/nocobase/pull/10483" rel="noopener noreferrer"&gt;#10483&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Show the standard deleted-field warning for historical V2 field assignments. (&lt;a href="https://github.com/nocobase/nocobase/pull/10484" rel="noopener noreferrer"&gt;#10484&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix interrupted option value input for custom radio and checkbox fields in filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10480" rel="noopener noreferrer"&gt;#10480&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Support displaying to-many association fields as read-only subtables in client v2 forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10478" rel="noopener noreferrer"&gt;#10478&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix nested association fields rendering blank in V2 forms when the parent relation uses dropdown selection. (&lt;a href="https://github.com/nocobase/nocobase/pull/10477" rel="noopener noreferrer"&gt;#10477&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the inverse relationship type being editable in v2 field configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/10476" rel="noopener noreferrer"&gt;#10476&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix filter forms not collapsing on mobile (&lt;a href="https://github.com/nocobase/nocobase/pull/10479" rel="noopener noreferrer"&gt;#10479&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt; Fixed misleading preparing status when a subapp deployment environment is unavailable (&lt;a href="https://github.com/nocobase/nocobase/pull/10485" rel="noopener noreferrer"&gt;#10485&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; Restrict legacy local upload URLs to signed-in users by default, with an opt-in compatibility switch for public access. (&lt;a href="https://github.com/nocobase/nocobase/pull/10471" rel="noopener noreferrer"&gt;#10471&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Delay node]&lt;/strong&gt; Fixed delay duration variable validation and report invalid resolved values instead of waiting unexpectedly. (&lt;a href="https://github.com/nocobase/nocobase/pull/10469" rel="noopener noreferrer"&gt;#10469&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the inverse-field option not remaining selected when editing a v2 relation field. (&lt;a href="https://github.com/nocobase/nocobase/pull/10482" rel="noopener noreferrer"&gt;#10482&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Added current user and current role variable selection to v2 permission data scopes (&lt;a href="https://github.com/nocobase/nocobase/pull/10472" rel="noopener noreferrer"&gt;#10472&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Allow all workflow variable types in in-app notification titles and detail links. (&lt;a href="https://github.com/nocobase/nocobase/pull/10470" rel="noopener noreferrer"&gt;#10470&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Access control]&lt;/strong&gt; Fix role permissions so selecting a deeply nested menu also selects all parent menus (&lt;a href="https://github.com/nocobase/nocobase/pull/10473" rel="noopener noreferrer"&gt;#10473&lt;/a&gt;) by @zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed an issue where newly created records were not immediately visible in the Kanban block. (&lt;a href="https://github.com/nocobase/nocobase/pull/10463" rel="noopener noreferrer"&gt;#10463&lt;/a&gt;) by @gaurangagar&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Prevent file redirects from reusing expired signed storage URLs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10475" rel="noopener noreferrer"&gt;#10475&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed non-admin variable resolution in form linkage rules, referenced templates, and scripts. (&lt;a href="https://github.com/nocobase/nocobase/pull/10467" rel="noopener noreferrer"&gt;#10467&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix approval cards showing outdated content after saving an edited draft by @zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed subapp access failures after rolling updates or deployment environment changes by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.3.0-beta.8
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-07&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an authenticated knowledge base retrieval API and a built-in provider for connecting remote NocoBase knowledge bases. by @cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fixed frontend freezing after selecting an in-app message or email channel in workflow v2 notification nodes (&lt;a href="https://github.com/nocobase/nocobase/pull/10445" rel="noopener noreferrer"&gt;#10445&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed applications unexpectedly starting in environments where they were not deployed (&lt;a href="https://github.com/nocobase/nocobase/pull/10464" rel="noopener noreferrer"&gt;#10464&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed AI employees repeatedly querying knowledge bases when the Knowledge Base Prompt omitted the retrieved-content placeholder, and added clear validation guidance when saving the configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/10413" rel="noopener noreferrer"&gt;#10413&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;Prevented Bedrock errors caused by aborted AI responses leaving tool calls without matching tool results. (&lt;a href="https://github.com/nocobase/nocobase/pull/10447" rel="noopener noreferrer"&gt;#10447&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Fix Vditor detail fields to use HTML preview by default so Markdown images can be displayed. (&lt;a href="https://github.com/nocobase/nocobase/pull/10459" rel="noopener noreferrer"&gt;#10459&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Restricted SQL collections from querying PostgreSQL system objects or executing multiple statements (&lt;a href="https://github.com/nocobase/nocobase/pull/10455" rel="noopener noreferrer"&gt;#10455&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Fixed the record comments block to display the commenter's nickname when using the Last modified by field (&lt;a href="https://github.com/nocobase/nocobase/pull/10446" rel="noopener noreferrer"&gt;#10446&lt;/a&gt;) by @jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed workflow user selection when a user-related collection uses its primary key as the user foreign key (&lt;a href="https://github.com/nocobase/nocobase/pull/10354" rel="noopener noreferrer"&gt;#10354&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fix the missing record unique key setting in the v2 collection editor. (&lt;a href="https://github.com/nocobase/nocobase/pull/10453" rel="noopener noreferrer"&gt;#10453&lt;/a&gt;) by @katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed an issue where a timed-out JavaScript workflow node could incorrectly abort the workflow instead of respecting "Continue when exception thrown". (&lt;a href="https://github.com/nocobase/nocobase/pull/10461" rel="noopener noreferrer"&gt;#10461&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Knowledge base uploads now allow all document formats supported by the backend by @cgyrock&lt;/li&gt;
&lt;li&gt;Fixed PGVector connection testing, ZIP import result display, document segment-setting inheritance, and validation for chunk overlap values in AI knowledge bases. by @cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt; Fix dynamic image rendering for stable file URLs in template printing. by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed exposure of sub-application authentication secrets in application management responses by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Unified the DingTalk notification recipient selector. by @chenzhizdt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.4.0-alpha.5
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-09&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[WeCom]&lt;/strong&gt; Improved type safety and unified the notification recipient selector in the WeCom plugin. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support displaying to-many association fields as read-only subtables in client v2 forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10478" rel="noopener noreferrer"&gt;#10478&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed the inverse relationship type being editable in v2 field configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/10476" rel="noopener noreferrer"&gt;#10476&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fix nested association fields rendering blank in V2 forms when the parent relation uses dropdown selection. (&lt;a href="https://github.com/nocobase/nocobase/pull/10477" rel="noopener noreferrer"&gt;#10477&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; Restrict legacy local upload URLs to signed-in users by default, with an opt-in compatibility switch for public access. (&lt;a href="https://github.com/nocobase/nocobase/pull/10471" rel="noopener noreferrer"&gt;#10471&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed an issue where a timed-out JavaScript workflow node could incorrectly abort the workflow instead of respecting "Continue when exception thrown". (&lt;a href="https://github.com/nocobase/nocobase/pull/10461" rel="noopener noreferrer"&gt;#10461&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Prevent file redirects from reusing expired signed storage URLs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10475" rel="noopener noreferrer"&gt;#10475&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Allow all workflow variable types in in-app notification titles and detail links. (&lt;a href="https://github.com/nocobase/nocobase/pull/10470" rel="noopener noreferrer"&gt;#10470&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Added current user and current role variable selection to v2 permission data scopes (&lt;a href="https://github.com/nocobase/nocobase/pull/10472" rel="noopener noreferrer"&gt;#10472&lt;/a&gt;) by @jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed an issue where newly created records were not immediately visible in the Kanban block. (&lt;a href="https://github.com/nocobase/nocobase/pull/10463" rel="noopener noreferrer"&gt;#10463&lt;/a&gt;) by @gaurangagar&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Unified the DingTalk notification recipient selector. by @chenzhizdt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.4.0-alpha.4
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-06&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an authenticated knowledge base retrieval API and a built-in provider for connecting remote NocoBase knowledge bases. by @cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fixed frontend freezing after selecting an in-app message or email channel in workflow v2 notification nodes (&lt;a href="https://github.com/nocobase/nocobase/pull/10445" rel="noopener noreferrer"&gt;#10445&lt;/a&gt;) by @jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[server]&lt;/strong&gt; Fixed applications unexpectedly starting in environments where they were not deployed (&lt;a href="https://github.com/nocobase/nocobase/pull/10464" rel="noopener noreferrer"&gt;#10464&lt;/a&gt;) by @2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Fix Vditor detail fields to use HTML preview by default so Markdown images can be displayed. (&lt;a href="https://github.com/nocobase/nocobase/pull/10459" rel="noopener noreferrer"&gt;#10459&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed AI employees repeatedly querying knowledge bases when the Knowledge Base Prompt omitted the retrieved-content placeholder, and added clear validation guidance when saving the configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/10413" rel="noopener noreferrer"&gt;#10413&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;Prevented Bedrock errors caused by aborted AI responses leaving tool calls without matching tool results. (&lt;a href="https://github.com/nocobase/nocobase/pull/10447" rel="noopener noreferrer"&gt;#10447&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Fixed the record comments block to display the commenter's nickname when using the Last modified by field (&lt;a href="https://github.com/nocobase/nocobase/pull/10446" rel="noopener noreferrer"&gt;#10446&lt;/a&gt;) by @jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fix the missing record unique key setting in the v2 collection editor. (&lt;a href="https://github.com/nocobase/nocobase/pull/10453" rel="noopener noreferrer"&gt;#10453&lt;/a&gt;) by @katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed workflow user selection when a user-related collection uses its primary key as the user foreign key (&lt;a href="https://github.com/nocobase/nocobase/pull/10354" rel="noopener noreferrer"&gt;#10354&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Restricted SQL collections from querying PostgreSQL system objects or executing multiple statements (&lt;a href="https://github.com/nocobase/nocobase/pull/10455" rel="noopener noreferrer"&gt;#10455&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed PGVector connection testing, ZIP import result display, document segment-setting inheritance, and validation for chunk overlap values in AI knowledge bases. by @cgyrock&lt;/li&gt;
&lt;li&gt;Knowledge base uploads now allow all document formats supported by the backend by @cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt; Fix dynamic image rendering for stable file URLs in template printing. by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed exposure of sub-application authentication secrets in application management responses by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>10 Open-Source AI Agent Platforms for Business: From Automation to Internal Apps</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Sat, 05 Sep 2026 14:07:48 +0000</pubDate>
      <link>https://dev.to/nocobase/10-open-source-ai-agent-platforms-for-business-from-automation-to-internal-apps-3n08</link>
      <guid>https://dev.to/nocobase/10-open-source-ai-agent-platforms-for-business-from-automation-to-internal-apps-3n08</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/open-source-ai-agent-platforms-for-business" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/open-source-ai-agent-platforms-for-business&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;These 10 platforms can be roughly grouped into three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NocoBase, Activepieces, Kestra, and Windmill are better suited to connecting AI with enterprise data, automation, and business processes.&lt;/li&gt;
&lt;li&gt;Coze Studio, Langflow, and Dify are better suited to visually building Agents and AI applications.&lt;/li&gt;
&lt;li&gt;MaxKB, AnythingLLM, and RAGFlow are better suited to enterprise knowledge bases and RAG.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a company needs to manage structured business data, permissions, and internal applications, NocoBase is worth considering first. If the main goal is to connect multiple SaaS tools and automate tasks, Activepieces is a strong option. If the focus is building Agents and AI workflows, Dify, Langflow, or Coze Studio are good starting points. If private document Q&amp;amp;A and complex knowledge retrieval matter most, MaxKB, AnythingLLM, or RAGFlow are more suitable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;More companies are starting to bring AI Agents into everyday work. Customer follow-up, email organization, task reminders, and data summaries are all examples of repetitive work that can increasingly be handed over to AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5r3o0c19v9q78yek2e9k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5r3o0c19v9q78yek2e9k.png" alt="Reddit-uemixv.png" width="606" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On Reddit's &lt;a href="https://www.reddit.com/r/smallbusiness/comments/1vkc911/small_business_owner_using_chatgpt_where_should_i/" rel="noopener noreferrer"&gt;r/smallbusiness&lt;/a&gt;, one small-business owner explained that they already use ChatGPT and want to go further by letting AI handle customer follow-up, email classification, proposal reminders, and weekly summaries. As they researched further, they came across n8n, Zapier, APIs, MCP, and various Agent-building tools. They do not have a development background and do not want to learn an entire technical stack just for a few automation workflows. What made the decision even harder was the maintenance question: if it takes several weeks to build these applications, will they then need constant upkeep and eventually become more complicated than the original way of working?&lt;/p&gt;

&lt;p&gt;This is a common problem when businesses choose AI Agent tools. A simple search for “AI Agent” brings up very different types of products: developer frameworks such as LangChain, CrewAI, and Haystack; Agent-building platforms; automation tools; RAG platforms; and enterprise application platforms that can manage business data, pages, permissions, and workflows in the same system.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Based on practical business use cases, this article collects 10 &lt;strong&gt;open-source AI Agent projects that support self-hosting and already provide visual applications, workflows, knowledge bases, or business-system capabilities&lt;/strong&gt;. For each project, we look at the basics, notable AI Agent capabilities, business use cases, and the types of teams it is best suited for.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To keep the scope clear, the projects included here need to meet several basic criteria: &lt;strong&gt;the core code is public and actively maintained, self-hosting is supported, Agent, tool-calling, or AI workflow capabilities are already available, and the project provides at least one of the following: visual applications, automation, knowledge bases, or enterprise business systems.&lt;/strong&gt; Project information and selection guidance are based mainly on official websites, GitHub repositories, and official documentation. This is not a benchmark under a unified test environment or a complete ranking.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;💡 If you are more interested in development frameworks such as LangChain and CrewAI and want to compare different Agent frameworks and development platforms, see our earlier article: &lt;a href="https://www.nocobase.com/en/blog/8-open-source-ai-agent-platforms-for-internal-tools" rel="noopener noreferrer"&gt;8 Open-Source AI Agent Platforms for Internal Tools&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before going through the projects one by one, you can first scan the list below to understand how their positioning, use cases, and technical requirements differ.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Enterprise Applications and Business Automation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. NocoBase
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;https://www.nocobase.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;https://github.com/nocobase/nocobase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 23.9K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Employees&lt;/strong&gt;: &lt;a href="https://docs.nocobase.com/ai-employees/quick-start" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-employees/quick-start&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Builder&lt;/strong&gt;: &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-builder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase is an open-source, self-hosted AI no-code platform for enterprise applications. It is mainly used to build CRM systems, ticketing systems, IT management systems, approval workflows, and other internal business applications. It provides the foundational capabilities required by enterprise applications, including data models, pages, permissions, and workflows, while also allowing AI to participate in both application building and later adjustments. AI Employees can also be configured inside the system so AI can combine current business data, tools, and processes to perform analysis, information processing, and task execution.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0gu7fx8enyc9965jk84f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0gu7fx8enyc9965jk84f.png" alt="NocoBase1-d3zdlw.png" width="799" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI + no-code application building&lt;/strong&gt;: Users can describe business requirements in natural language, and AI can create data tables and relationships, pages, workflows, and role permissions. NocoBase provides both a no-code portal and an AI portal. The no-code portal makes it easier for business users to continue adjusting the application visually, while the AI portal is better suited to complex interactions and highly customized pages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://docs.nocobase.com/ai-builder/ai-portal/" rel="noopener noreferrer"&gt;AI Portal Quick Start - NocoBase Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI Portal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp5ca97citlxdmc7yngtu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp5ca97citlxdmc7yngtu.png" alt="NocoBase2-fbd2y1.png" width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No-code Portal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb2qtesynk37igi7qylqw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb2qtesynk37igi7qylqw.png" alt="NocoBase3-hyg550.png" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Employees and business execution&lt;/strong&gt;: AI can participate in daily work as a specific role, handling tasks such as data analysis, email organization, and information extraction. It can also use system tools and workflows to query data, fill forms, or trigger business processes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://docs.nocobase.com/ai-employees/features/tools" rel="noopener noreferrer"&gt;AI Employees: Using Tools - NocoBase Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd8i9tlk76i9ctusiko6j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd8i9tlk76i9ctusiko6j.png" alt="NocoBase4-xxuvt5.png" width="799" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise knowledge base&lt;/strong&gt;: AI Employees can retrieve enterprise knowledge automatically or on demand, with accessible content filtered according to the current user's role. This allows customer service, sales, or internal assistants to work with the company's own knowledge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://docs.nocobase.com/ai-employees/knowledge-base/knowledge-base" rel="noopener noreferrer"&gt;NocoBase AI Knowledge Base Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqtvr2wq3u4aeka424pv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwqtvr2wq3u4aeka424pv.png" alt="NocoBase5-xtr048.png" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise permissions and execution control&lt;/strong&gt;: AI Employees inherit the current user's data permissions. Important operations such as modifying data can also require confirmation before execution, helping prevent an Agent from gaining access beyond the user's own permission scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://docs.nocobase.com/ai-employees/permission" rel="noopener noreferrer"&gt;AI Employee Roles and Permissions - NocoBase Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsgpn60ihx7fhhijz9zll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsgpn60ihx7fhhijz9zll.png" alt="NocoBase6-2n7cas.png" width="799" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CRM&lt;/strong&gt;: Organize communication details from customer emails or meeting notes, generate follow-up suggestions, and assist sales using customer, contact, and opportunity data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready CRM with AI and NocoBase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F20ykegwag2vwfq67uwhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F20ykegwag2vwfq67uwhc.png" alt="NocoBase7-rhk2ez.png" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Customer support and ticketing&lt;/strong&gt;: Analyze submitted customer issues, determine category and priority, generate response suggestions using the knowledge base, and participate in ticket-handling workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhuzbojwv61cuoc5su9ew.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhuzbojwv61cuoc5su9ew.png" alt="NocoBase8-12xpon.png" width="799" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IT management&lt;/strong&gt;: Identify IT request types, priorities, and handling suggestions from employees' natural-language descriptions, then work with asset, maintenance, approval, and related business data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase" rel="noopener noreferrer"&gt;How to Build an Enterprise IT Operations System with AI and NocoBase in 2 Hours&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcszbs1d8o0sedo6uf2cc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcszbs1d8o0sedo6uf2cc.png" alt="NocoBase9-1b5gyk.png" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internal business applications&lt;/strong&gt;: Configure AI Employees for different roles in procurement, approval, project management, operations, and other systems, allowing them to use business data and workflows to complete routine tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;NocoBase is a good fit for teams with clearly defined business needs such as CRM, customer support ticketing, IT management, or approvals, especially when they want AI to accelerate application building without asking AI to create an entire business system from scratch. Core capabilities such as data models, permissions, and workflows are already provided by the platform. Business teams can complete most of the setup with no-code tools and AI, then extend the system further through APIs and plugins. It is especially suitable for teams building internal systems that are expected to be used and iterated over the long term.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Activepieces
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.activepieces.com/" rel="noopener noreferrer"&gt;https://www.activepieces.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/activepieces/activepieces" rel="noopener noreferrer"&gt;https://github.com/activepieces/activepieces&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 24.0K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt;: &lt;a href="https://www.activepieces.com/docs/mcp/overview" rel="noopener noreferrer"&gt;https://www.activepieces.com/docs/mcp/overview&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;Activepieces is an open-source, self-hosted AI automation platform mainly used to connect the applications, data, and business processes a company already relies on. It brings AI Agents, automation workflows, and data into the same environment and is well suited to sales, customer support, operations, and other work that spans multiple tools.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open-Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nam0ecosocfdfj8slol.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nam0ecosocfdfj8slol.png" alt="Activepieces1-p5mhpr.png" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual AI Agent creation&lt;/strong&gt;: Users can define an Agent's task, model, and available tools, then place the Agent directly inside automation workflows. Existing workflows can also be reused as Agent tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqbepc96uhh6you73lz3c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqbepc96uhh6you73lz3c.png" alt="Activepieces2-usoav3.png" width="799" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Natural-language automation building&lt;/strong&gt;: Users can describe what they want to accomplish and let AI generate an Agent or automation workflow. They can then continue editing visually by adding conditions, loops, and code execution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect business tools&lt;/strong&gt;: The platform can connect more than 700 applications, including CRM systems, email, collaboration tools, spreadsheets, and other commonly used services. Through MCP, tools and workflows built in the platform can also be exposed to other AI clients that support MCP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjuznw2rivk94nzqziqay.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjuznw2rivk94nzqziqay.png" alt="Activepieces3-beqsn8.png" width="799" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sales lead processing&lt;/strong&gt;: Capture new leads from email or forms, let AI classify customer type and priority, update the CRM, and generate follow-up content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer support workflows&lt;/strong&gt;: Automatically read customer issues, classify and summarize them, assign tickets, and synchronize information between customer support systems and CRM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Daily operations automation&lt;/strong&gt;: Organize email, extract information, synchronize spreadsheets or databases, and automatically generate daily reports, weekly reports, and business notifications from data across multiple systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;Activepieces is better suited to small and midsize teams or business departments that already use several SaaS tools but have limited development resources. Sales, marketing, customer support, and operations teams that frequently move data, send messages, and follow up across multiple systems can start with visual workflows and later add APIs or custom integrations as requirements become more complex.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Kestra
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://kestra.io/" rel="noopener noreferrer"&gt;https://kestra.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/kestra-io/kestra" rel="noopener noreferrer"&gt;https://github.com/kestra-io/kestra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 28.0K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Copilot&lt;/strong&gt;: &lt;a href="https://kestra.io/docs/ai-tools/ai-copilot" rel="noopener noreferrer"&gt;https://kestra.io/docs/ai-tools/ai-copilot&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;Kestra is an open-source, self-hosted workflow orchestration platform mainly used to manage automation across data, AI, and infrastructure. AI Agents can run directly as tasks inside workflows, calling tools, executing other tasks, or triggering existing flows based on their goals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0vjl053ouckexhh9wlpm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0vjl053ouckexhh9wlpm.png" alt="Kestra1-qepx6c.png" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Agents working with workflows&lt;/strong&gt;: AI Copilot can generate or modify workflows from natural-language instructions. Agents can also be placed directly inside existing workflows, where they can use models, memory, tools, and existing Kestra tasks and flows, then decide the next step based on execution results.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm02jca0c94a0fwams12w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm02jca0c94a0fwams12w.png" alt="Kestra2-un0lak.png" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual and code-based development&lt;/strong&gt;: Workflows can be created and adjusted through the visual interface, while more complex requirements can be extended with YAML, Python, Docker, and custom scripts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fflctzeb084xnlmpk0vvd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fflctzeb084xnlmpk0vvd.png" alt="Kestra3-favk4g.png" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Traceable execution&lt;/strong&gt;: Agents and regular tasks share the same runtime system, making it possible to inspect execution status, logs, and failure records in one place for easier troubleshooting and maintenance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Data-processing automation&lt;/strong&gt;: Choose next steps based on data state and call existing workflows to complete cleaning, analysis, and aggregation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IT and operations workflows&lt;/strong&gt;: Analyze alerts or system events, then execute checks, notifications, or other follow-up tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Complex business and AI workflows&lt;/strong&gt;: Combine models, tools, approvals, data processing, and cross-system tasks to handle workflows that require multiple steps and dynamic decisions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;Kestra is better suited to teams that already have some automation foundation and have developers, data engineers, or operations specialists involved. Its orchestration capabilities become more valuable when workflows grow longer and need task dependencies, retries, execution-state tracking, and multi-step AI decisions. If a small team only wants to build a few simple business automations quickly, it may not need such a complete workflow system.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Windmill
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.windmill.dev/" rel="noopener noreferrer"&gt;https://www.windmill.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/windmill-labs/windmill" rel="noopener noreferrer"&gt;https://github.com/windmill-labs/windmill&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 17.7K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Agent applications&lt;/strong&gt;: &lt;a href="https://www.windmill.dev/use-cases/ai-agents" rel="noopener noreferrer"&gt;https://www.windmill.dev/use-cases/ai-agents&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;Windmill is an open-source, self-hosted development and automation platform that can run scripts, APIs, workflows, and internal applications in one environment. It supports both visual orchestration and code in Python, TypeScript, Go, SQL, and other languages, making it more suitable for teams with some technical expertise.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6ekmry4ajrtxiegfloqg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6ekmry4ajrtxiegfloqg.png" alt="Windmill1-u4c2db.png" width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Add Agents to workflows&lt;/strong&gt;: AI Agents can run directly as workflow steps and be combined with conditions, approvals, error handling, and other nodes to handle tasks that require AI judgment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F78wthg9si4u1f6b42xdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F78wthg9si4u1f6b42xdf.png" alt="Windmill2-86jcks.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use existing technical resources&lt;/strong&gt;: Agents can use scripts, databases, APIs, and other workflows already available in Windmill. They can also connect to MCP tools, allowing teams to reuse existing code and internal services directly inside Agent workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkl39kghyvkyaw611po62.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkl39kghyvkyaw611po62.png" alt="Windmill3-jejm47.png" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Permissions, approvals, and execution records&lt;/strong&gt;: Teams can limit which resources an Agent can access and execute, require human confirmation before important actions, and inspect tool calls, inputs and outputs, logs, and execution status for each run.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IT and operations automation&lt;/strong&gt;: Analyze problems based on alerts or system state, then call scripts to perform checks, remediation, and notifications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data processing and analysis&lt;/strong&gt;: Query databases or run existing data scripts, let an Agent analyze the results, and trigger subsequent workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Internal AI tools&lt;/strong&gt;: Combine Agents, backend scripts, and internal app interfaces to build data assistants, operations tools, and other internal applications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;Windmill is more suitable for teams that already have developers, data specialists, or operations engineers. If a company has accumulated many scripts, databases, APIs, and internal services and wants to reuse those existing resources for Agents and automation, Windmill can be a natural fit. For teams without technical staff that mainly want to build a few simple workflows visually, its development-platform orientation may feel heavier.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Visual AI Agent Building Platforms
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5. Coze Studio
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.coze.cn/home" rel="noopener noreferrer"&gt;https://www.coze.cn/home&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/coze-dev/coze-studio" rel="noopener noreferrer"&gt;https://github.com/coze-dev/coze-studio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 21.5K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Agent documentation&lt;/strong&gt;: &lt;a href="https://github.com/coze-dev/coze-studio/wiki/1.-What-is-Coze-Studio" rel="noopener noreferrer"&gt;https://github.com/coze-dev/coze-studio/wiki/1.-What-is-Coze-Studio&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;Coze Studio is an open-source, all-in-one AI Agent development platform from ByteDance. Its main focus is visually creating, debugging, and deploying Agents. Users can combine models, knowledge, and tools directly, making it suitable for quickly building customer-service assistants, knowledge Q&amp;amp;A, content assistants, and other AI applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhf31efg2syp84td6njbc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhf31efg2syp84td6njbc.png" alt="Coze1-x3ltv6.png" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Visual Agent and workflow building&lt;/strong&gt;: Configure models, prompts, and tools through the interface, or orchestrate multi-step workflows on a canvas with conditions, data processing, and other logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwz8mxqmdw3tdxqn9u2x6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwz8mxqmdw3tdxqn9u2x6.png" alt="Coze2-tarjfy.png" width="800" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAG and knowledge bases&lt;/strong&gt;: Connect enterprise documents and knowledge data so Agents can answer questions and handle tasks based on specified content.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugins and external tools&lt;/strong&gt;: Agents can call external services through plugins, bringing search, queries, data processing, and other capabilities into the execution process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvt0ruyem0pg53v20a7kr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvt0ruyem0pg53v20a7kr.png" alt="Coze3-abbyw4.png" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development, debugging, and deployment&lt;/strong&gt;: Agents can be created, tested, and deployed within the same platform, reducing the need to switch between multiple tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI customer support&lt;/strong&gt;: Use knowledge bases to answer product, service, and after-sales questions, while plugins query additional business information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise knowledge assistants&lt;/strong&gt;: Provide employee Q&amp;amp;A, document lookup, and information organization based on internal documents and knowledge bases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content and marketing assistants&lt;/strong&gt;: Combine search, content generation, and workflows for research, content organization, and first-draft creation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;Coze Studio is a good fit for teams that are just starting to experiment with AI Agents and want to quickly build customer-service assistants, knowledge Q&amp;amp;A, or content assistants without dedicated AI developers. Product, operations, or business teams can validate ideas visually first, then add knowledge bases, plugins, and more complex workflows as needed.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Langflow
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://www.langflow.org/" rel="noopener noreferrer"&gt;https://www.langflow.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/langflow-ai/langflow" rel="noopener noreferrer"&gt;https://github.com/langflow-ai/langflow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 153.9K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents&lt;/strong&gt;: &lt;a href="https://docs.langflow.org/agents" rel="noopener noreferrer"&gt;https://docs.langflow.org/agents&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;Langflow is an open-source visual AI application development platform mainly used to build Agents and AI workflows. It combines models, tools, data, and other Agents through modular components while retaining Python extensibility, making it suitable for AI application scenarios that require frequent experimentation and iteration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F24q0vk3ocqo0rfjc7zbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F24q0vk3ocqo0rfjc7zbs.png" alt="Langflow1-dbxpex.png" width="799" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Drag-and-drop building and multi-Agent composition&lt;/strong&gt;: Configure Agents on a visual canvas and connect models, prompts, tools, and other components into complete workflows. Components and flows can also be used as Agent tools, and multiple Agents can divide work such as retrieval, analysis, and organization.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP support&lt;/strong&gt;: Connect external MCP services or expose workflows built in Langflow to other AI applications that support MCP.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff84pqdmjlmxcrd30njyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff84pqdmjlmxcrd30njyk.png" alt="Langflow2-p8b1dx.png" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Models and Python extensions&lt;/strong&gt;: Freely combine different models and data sources. When built-in components do not cover a requirement, custom Python components can connect enterprise APIs and processing logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Knowledge and document applications&lt;/strong&gt;: Combine internal documents, retrieval, models, and Agents for knowledge Q&amp;amp;A, document analysis, and information extraction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Agent workflows&lt;/strong&gt;: Let different Agents handle retrieval, analysis, organization, and other tasks, then connect them into one complete process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI application prototypes&lt;/strong&gt;: Quickly validate ideas such as customer support assistants, research assistants, and content-generation tools, then connect them to existing products through APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;Langflow is better suited to teams with some technical involvement that need to experiment frequently with different models and Agent structures. Product or data teams can first build workflows visually, while developers add more complex functionality through Python, custom components, and APIs. It is well suited to prototyping and continuous experimentation. For teams with no technical staff that only want to launch fixed business workflows quickly, later-stage maintenance may depend more heavily on developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Dify
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://dify.ai/" rel="noopener noreferrer"&gt;https://dify.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/langgenius/dify" rel="noopener noreferrer"&gt;https://github.com/langgenius/dify&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 154.0K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official documentation&lt;/strong&gt;: &lt;a href="https://docs.dify.ai/" rel="noopener noreferrer"&gt;https://docs.dify.ai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dify is an open-source AI application development platform for building Agents, knowledge assistants, and more complex AI workflows. It covers the full lifecycle from application creation and debugging to publishing and ongoing runtime management, making it suitable for teams that want to develop multiple AI applications continuously within one platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff6puvjbntlpw7pkje7di.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff6puvjbntlpw7pkje7di.png" alt="Dify1-835tx4.png" width="800" height="623"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agent and workflow building&lt;/strong&gt;: Configure Agent models, instructions, tools, and knowledge bases through the visual interface, or use the canvas to orchestrate multi-step workflows with conditions, knowledge retrieval, tool calls, and human input.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsr7kx5enbjvuqsblbd2j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsr7kx5enbjvuqsblbd2j.png" alt="Dify2-9eaiyv.png" width="800" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RAG and knowledge processing&lt;/strong&gt;: Build knowledge bases from PDF, PPT, and other documents, with content cleaning, chunking, indexing, and retrieval testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7f1tolyop9taa0no92u4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7f1tolyop9taa0no92u4.png" alt="Dify3-xs0trk.png" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model and plugin extensions&lt;/strong&gt;: Connect multiple model providers and add new tools, data sources, triggers, and Agent capabilities through plugins.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publishing and runtime management&lt;/strong&gt;: Publish completed applications as web apps or APIs, while monitoring logs, feedback, latency, and usage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI customer support and knowledge assistants&lt;/strong&gt;: Combine enterprise knowledge bases and external tools to handle customer inquiries or internal employee knowledge searches.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business information processing&lt;/strong&gt;: Connect extraction, classification, analysis, generation, and tool calls into complete workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rapid AI application launch&lt;/strong&gt;: Publish completed Agents or workflows as applications or APIs, then integrate them with existing products and business systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;Dify is a good fit when a team has moved beyond experimenting with a single Agent and plans to keep building customer support, knowledge assistants, content-processing tools, and other AI applications. Business and product teams can complete most configuration visually, while developers can add plugins, APIs, and deeper integrations when needed. For small and midsize businesses or product teams that want to manage multiple AI projects on one platform, it can be easier than maintaining several separate tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Enterprise Knowledge and RAG Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  8. MaxKB
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://maxkb.cn/" rel="noopener noreferrer"&gt;https://maxkb.cn/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/1Panel-dev/MaxKB" rel="noopener noreferrer"&gt;https://github.com/1Panel-dev/MaxKB&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 22.6K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Official documentation&lt;/strong&gt;: &lt;a href="https://maxkb.cn/docs/v2/index.html" rel="noopener noreferrer"&gt;https://maxkb.cn/docs/v2/index.html&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;MaxKB is an open-source, self-hosted enterprise Agent platform that is well suited to starting with enterprise knowledge bases and knowledge Q&amp;amp;A. In addition to basic RAG, it provides visual workflows and tool-calling capabilities that can be extended into customer support, office assistants, and similar scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjdze8ah0x4mtfwfbionn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjdze8ah0x4mtfwfbionn.png" alt="MaxKB1-fgub0k.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise knowledge bases and RAG&lt;/strong&gt;: Upload documents or crawl online content, then perform chunking, vectorization, and knowledge retrieval for internal materials and professional Q&amp;amp;A.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visual workflows and tool calling&lt;/strong&gt;: Combine AI conversation, knowledge retrieval, conditions, forms, document extraction, and other nodes on a canvas. MCP services can also be connected so models can call external tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple models and local deployment&lt;/strong&gt;: Connect public models such as OpenAI, Claude, Gemini, DeepSeek, and Qwen, as well as local models through Ollama, vLLM, and similar tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration with existing systems&lt;/strong&gt;: Completed Agents can be embedded into websites and internal applications through public links, embed code, or APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI customer support&lt;/strong&gt;: Connect product knowledge bases, FAQs, and business materials to an Agent for handling customer inquiries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professional knowledge applications&lt;/strong&gt;: Use industry materials for search, organization, and analysis in finance, education, research, and other specialized scenarios.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;MaxKB is particularly suitable for &lt;strong&gt;teams that already have a large amount of enterprise documentation and knowledge material and want to build knowledge-focused AI Agents relatively quickly&lt;/strong&gt;. Its visual workflows and knowledge-base capabilities have a relatively low entry barrier, while local deployment and local models make it a good fit for organizations with requirements around internal knowledge use, data control, and third-party system integration.&lt;/p&gt;

&lt;h3&gt;
  
  
  9. AnythingLLM
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://anythingllm.com/" rel="noopener noreferrer"&gt;https://anythingllm.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Mintplex-Labs/anything-llm" rel="noopener noreferrer"&gt;https://github.com/Mintplex-Labs/anything-llm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 65.4K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Flow&lt;/strong&gt;: &lt;a href="https://docs.anythingllm.com/agent-flows/overview" rel="noopener noreferrer"&gt;https://docs.anythingllm.com/agent-flows/overview&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;AnythingLLM is an open-source, local-first AI application mainly used to build AI assistants based on private documents and internal knowledge. It offers both desktop and self-hosted versions with a relatively complete graphical interface, so teams can start without first setting up a complex development environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdpyz7apmu0mzebiv93n4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdpyz7apmu0mzebiv93n4.png" alt="AnythingLLM1-5fia5p.png" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private documents and RAG&lt;/strong&gt;: Add PDF, Word, text, and other files to separate workspaces so AI can answer questions based on selected content while preserving citations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs8r5o9yun5wo6fq08lz2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs8r5o9yun5wo6fq08lz2.png" alt="AnythingLLM2-4h817b.png" width="799" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agent Flow&lt;/strong&gt;: Visually combine web scraping, API calls, model instructions, file reading and writing, and other steps into repeatable processing flows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-user and permissions&lt;/strong&gt;: The self-hosted version supports multiple users and permission management, allowing teams to separate workspaces and knowledge access by user or group.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Internal knowledge and document assistants&lt;/strong&gt;: Answer questions, summarize information, and extract data from company policies, product materials, training documents, contracts, and reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research and document organization&lt;/strong&gt;: Combine internal documents, web information, and tool calls to collect, organize, and analyze information.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;AnythingLLM is better suited to individuals, small teams, or companies that want to pilot a private AI assistant within a department first. Even without dedicated AI developers, teams can start quickly with document Q&amp;amp;A and information organization. If the main goal is to let AI use internal knowledge securely rather than build complex business workflows, it is a lighter-weight option.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. RAGFlow
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://ragflow.io/" rel="noopener noreferrer"&gt;https://ragflow.io/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/infiniflow/ragflow" rel="noopener noreferrer"&gt;https://github.com/infiniflow/ragflow&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Stars&lt;/strong&gt;: 89.7K&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent guide&lt;/strong&gt;: &lt;a href="https://github.com/infiniflow/ragflow/tree/main/docs/guides/agent" rel="noopener noreferrer"&gt;https://github.com/infiniflow/ragflow/tree/main/docs/guides/agent&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Product Overview
&lt;/h4&gt;

&lt;p&gt;RAGFlow is an open-source RAG and AI Agent platform focused on complex document processing and enterprise knowledge retrieval. Compared with simpler knowledge-Q&amp;amp;A tools, it is better suited to scenarios with complex document types, large knowledge volumes, and stronger requirements for retrieval accuracy and source traceability.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;How Can OpenClaw Be Used in Real Business? 5 Recommended Open-Source Tools&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fznsadan4ckspj9hmyewm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fznsadan4ckspj9hmyewm.png" alt="AnythingLLM2-lvcqjv.png" width="799" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Core AI Capabilities
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Complex document understanding&lt;/strong&gt;: Process PDF, Word, PPT, spreadsheets, images, and long documents, extracting information that can be used for retrieval and analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-accuracy RAG&lt;/strong&gt;: Combine vector retrieval, keyword search, reranking, and metadata filtering to improve retrieval accuracy and traceability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent workflows&lt;/strong&gt;: Use a visual canvas to combine retrieval, models, conditions, loops, classification, and other steps. More complex patterns such as multi-Agent workflows, planning, and reflection are also supported.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4tm3dr896sx2uljxzpmr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4tm3dr896sx2uljxzpmr.png" alt="RAGFlow2-3r2pqb.png" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools and data-source integration&lt;/strong&gt;: Agents can call external tools and support MCP. Enterprise knowledge can also be synchronized from Confluence, S3, Notion, Google Drive, and other sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnisfl95up3erwkvgx6de.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnisfl95up3erwkvgx6de.png" alt="RAGFlow3-tlomcm.png" width="800" height="656"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Business Use Cases
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Complex enterprise knowledge bases&lt;/strong&gt;: Build a unified knowledge retrieval system across large collections of policies, technical manuals, reports, and professional materials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legal and compliance analysis&lt;/strong&gt;: Retrieve supporting evidence from regulations, contracts, cases, and internal materials, then generate analysis with sources.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research and decision support&lt;/strong&gt;: Combine internal data and external materials so Agents can retrieve, analyze, and generate reports.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Selection Guidance
&lt;/h4&gt;

&lt;p&gt;RAGFlow is suitable for teams with large knowledge volumes, complex documents, and some technical resources. In legal, manufacturing, technical support, research, and similar settings, it has stronger advantages when materials contain many long documents, tables, images, or specialized content and when retrieval accuracy and source evidence matter significantly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Many AI Agent products are beginning to overlap in functionality. Visual workflows, knowledge bases, MCP, and tool calling are now available on more and more platforms. In practice, teams need to consider whether these capabilities can fit smoothly into existing work and how much additional operational and maintenance overhead they will introduce.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hopefully, this article helps narrow down the options. Feel free to share it with friends or teams that are also looking for AI Agent tools.&lt;/p&gt;

&lt;p&gt;If you want to build similar enterprise applications with AI and NocoBase, these complete examples may be useful:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;Build a CRM with AI + NocoBase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase" rel="noopener noreferrer"&gt;Build an Enterprise IT Operations System with AI + NocoBase&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-production-ready-ticketing-system-with-ai" rel="noopener noreferrer"&gt;How to Build a Production-Ready Ticketing System with AI&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/building-inventory-management-system-vibe-coding-vs-nocobase-ai" rel="noopener noreferrer"&gt;Building an Inventory Management System: Vibe Coding vs NocoBase + AI&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready IT Operations System with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-baserow" rel="noopener noreferrer"&gt;NocoBase vs Baserow: Flexible Databases vs Enterprise Systems&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready CRM with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;How to Design an IT Asset Management System: Data Model, Lifecycle, and Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/best-smartsheet-alternatives" rel="noopener noreferrer"&gt;How to Choose a Smartsheet Alternative: 7 Tools Compared&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-complex-relational-models" rel="noopener noreferrer"&gt;5 Open-Source AI No-Code Tools for Complex Relational Data Models&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Weekly Updates: Improvements and Bug Fixes</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 04 Sep 2026 08:33:13 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-improvements-and-bug-fixes-4f64</link>
      <guid>https://dev.to/nocobase/weekly-updates-improvements-and-bug-fixes-4f64</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.6
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-02&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; Displayed migration file sizes with readable binary units instead of raw byte counts by @hongboji&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[utils]&lt;/strong&gt; Prevent stored XSS in rich-text fields written through APIs and rendered in display or edit mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/10425" rel="noopener noreferrer"&gt;#10425&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[database]&lt;/strong&gt; Fixed SQL Server string filters failing to match literal square brackets and other &lt;code&gt;LIKE&lt;/code&gt; wildcard characters (&lt;a href="https://github.com/nocobase/nocobase/pull/10436" rel="noopener noreferrer"&gt;#10436&lt;/a&gt;) by @hongboji&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Restore table actions in V2 Markdown Vditor fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10438" rel="noopener noreferrer"&gt;#10438&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed the missing file storage selector in v2 file collection create and edit forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10439" rel="noopener noreferrer"&gt;#10439&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File storage: S3(Pro)]&lt;/strong&gt; Fix S3 Pro multipart upload failures for backup files larger than 5 MB. by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.5
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-31&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve workflow task detail handling on mobile by using a full-width Drawer and responsive task-center presentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/10428" rel="noopener noreferrer"&gt;#10428&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;Optimized pending workflow job recovery by adding a composite index on job status and ID. (&lt;a href="https://github.com/nocobase/nocobase/pull/10427" rel="noopener noreferrer"&gt;#10427&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;Fix schedule workflows in static mode running one more time after &lt;code&gt;endsOn&lt;/code&gt; (&lt;a href="https://github.com/nocobase/nocobase/pull/10411" rel="noopener noreferrer"&gt;#10411&lt;/a&gt;) by @Tespera&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt; Fix workflow user recipient variables displaying &lt;code&gt;Variable parsing failed&lt;/code&gt; and unify user selectors across workflow nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10432" rel="noopener noreferrer"&gt;#10432&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adapted approval task details and remote forms to narrow mobile viewports. by @mytharcher&lt;/li&gt;
&lt;li&gt;Fix approval assignee variables displaying &lt;code&gt;Variable parsing failed&lt;/code&gt; and reuse the shared workflow user selector. by @mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.4
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-28&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed AI employees incorrectly reporting no knowledge-base access for root users by @hongboji&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fixed the approval trigger-variable form not rendering for subflow nodes on v1 workflow pages. by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[DingTalk]&lt;/strong&gt; Fixed an issue where DingTalk Stream mode synchronization sources could not be submitted in the v1 client. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.3.0-beta.6
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-31&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Optimized pending workflow job recovery by adding a composite index on job status and ID. (&lt;a href="https://github.com/nocobase/nocobase/pull/10427" rel="noopener noreferrer"&gt;#10427&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;Fix schedule workflows in static mode running one more time after &lt;code&gt;endsOn&lt;/code&gt; (&lt;a href="https://github.com/nocobase/nocobase/pull/10411" rel="noopener noreferrer"&gt;#10411&lt;/a&gt;) by @Tespera&lt;/li&gt;
&lt;li&gt;Improve workflow task detail handling on mobile by using a full-width Drawer and responsive task-center presentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/10428" rel="noopener noreferrer"&gt;#10428&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt; Fix workflow user recipient variables displaying &lt;code&gt;Variable parsing failed&lt;/code&gt; and unify user selectors across workflow nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10432" rel="noopener noreferrer"&gt;#10432&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix approval assignee variables displaying &lt;code&gt;Variable parsing failed&lt;/code&gt; and reuse the shared workflow user selector. by @mytharcher&lt;/li&gt;
&lt;li&gt;Adapted approval task details and remote forms to narrow mobile viewports. by @mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Fixed an issue where DingTalk Stream mode synchronization sources could not be submitted in the v1 client. by @chenzhizdt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.4.0-alpha.3
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-02&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Removed the persisted AI context data source settings and selector while keeping direct data source query capabilities. (&lt;a href="https://github.com/nocobase/nocobase/pull/10450" rel="noopener noreferrer"&gt;#10450&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.4.0-alpha.2
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-02&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Corrected the root package license metadata to Apache-2.0 and raised the Node.js requirement to version 22 (&lt;a href="https://github.com/nocobase/nocobase/pull/10448" rel="noopener noreferrer"&gt;#10448&lt;/a&gt;) by @hongboji&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[DingTalk]&lt;/strong&gt; DingTalk ActionCard button links can now be configured to open in an external browser. by @chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed AI employee workflow nodes failing to access NocoBase permanent file URLs and unnecessarily copying internal files to AI storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/10408" rel="noopener noreferrer"&gt;#10408&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed an error that prevented business analysis reports containing charts from opening. (&lt;a href="https://github.com/nocobase/nocobase/pull/10440" rel="noopener noreferrer"&gt;#10440&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.4.0-alpha.1
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-09-02&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Migration manager]&lt;/strong&gt; Displayed migration file sizes with readable binary units instead of raw byte counts by @hongboji&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[database]&lt;/strong&gt; Fixed SQL Server string filters failing to match literal square brackets and other &lt;code&gt;LIKE&lt;/code&gt; wildcard characters (&lt;a href="https://github.com/nocobase/nocobase/pull/10436" rel="noopener noreferrer"&gt;#10436&lt;/a&gt;) by @hongboji&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[utils]&lt;/strong&gt; Prevent stored XSS in rich-text fields written through APIs and rendered in display or edit mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/10425" rel="noopener noreferrer"&gt;#10425&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Restore table actions in V2 Markdown Vditor fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10438" rel="noopener noreferrer"&gt;#10438&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed the missing file storage selector in v2 file collection create and edit forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10439" rel="noopener noreferrer"&gt;#10439&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[File storage: S3(Pro)]&lt;/strong&gt; Fix S3 Pro multipart upload failures for backup files larger than 5 MB. by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>How to Build a Production-Ready Ticketing System with AI</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Thu, 03 Sep 2026 07:49:25 +0000</pubDate>
      <link>https://dev.to/nocobase/how-to-build-a-production-ready-ticketing-system-with-ai-3f0n</link>
      <guid>https://dev.to/nocobase/how-to-build-a-production-ready-ticketing-system-with-ai-3f0n</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/build-production-ready-ticketing-system-with-ai" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/build-production-ready-ticketing-system-with-ai&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;AI can build a ticketing system quickly, but “the features have been generated” does not mean “the system is ready for production.”&lt;/p&gt;

&lt;p&gt;A system that a team can actually use needs at least clear data relationships, inspectable role permissions, and workflows whose execution results can be traced. This article uses a NocoBase ticketing system as an example to show how AI can turn natural-language requirements into an application and how to verify these core business foundations.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Build a Production-Ready Ticketing System with AI
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Building a ticketing system with AI may not seem difficult. But can it really be used in production?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On &lt;a href="https://www.reddit.com/r/nocode/comments/1uysnen/building_internal_tools_without_engineering_and/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt; in the r/nocode community, one user described a problem their team had encountered. They tried several AI + no-code tools. The applications looked good at first, but once real business data was added, problems started appearing one after another, and it was often difficult to tell what had gone wrong.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1wst59z6bd3ga1bndkf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1wst59z6bd3ga1bndkf7.png" alt="reddit1-ygpeth.png" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One reply in the comments pointed to the core issue: many AI-built systems start to fail in more complex business scenarios because they do not &lt;strong&gt;maintain a complete internal model of the application, including who is using the system, what permissions different roles have, how work moves through the process, and what users ultimately need to accomplish.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8efno0pvaexp4o4mrior.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8efno0pvaexp4o4mrior.png" alt="reddit2-b67anb.png" width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI can generate pages and features quickly, but for an application to run reliably over the long term, the underlying platform still needs clear data models, relationships, permissions, and workflow capabilities. Otherwise, as business complexity grows, the features generated by AI become increasingly difficult to keep working correctly.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;In this article, I will use a ticketing system as an example to show how AI and NocoBase can be used together to build a system with the foundations required for production use.&lt;/p&gt;

&lt;p&gt;In this process, NocoBase provides the underlying capabilities for data relationships, permission control, and workflows. AI is responsible for understanding business requirements, converting natural language into data structures, pages, and features, and continuing to adjust the system as requirements evolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Describe the Business Requirements and Let AI Design the System
&lt;/h2&gt;

&lt;p&gt;Before building anything, start from the actual work. Clarify the problems the team is facing and what the system needs to solve, then describe those requirements to AI in natural language so it can build the required ticketing system on NocoBase.&lt;/p&gt;

&lt;p&gt;If you are not sure how to describe the requirements, start from a few angles. For a ticketing system, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How customer issues enter the system&lt;/strong&gt;: which channels they usually come from and how they are currently collected and handled;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What happens after an issue comes in&lt;/strong&gt;: who takes ownership, how follow-up works, and when the issue is considered resolved;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Which situations require special attention&lt;/strong&gt;: for example, urgent issues, tickets that remain unassigned for too long, or tickets that have been open for an extended period.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once these points are clear, they can be turned directly into a natural-language requirement for AI. Below is the actual requirement we used in this build:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We are a small software company with four customer support agents. Customers mainly report issues through email and the support entry point on our website.&lt;/p&gt;

&lt;p&gt;We currently handle these issues through a shared inbox. As the volume grows, issues are sometimes missed. People may assume someone else has already replied, only to find that no one handled the issue. Some tickets go through several rounds of communication, but it becomes unclear who currently owns them. Urgent issues can also remain unresolved for too long.&lt;/p&gt;

&lt;p&gt;I want to build a customer support ticketing system. Each customer issue should be recorded separately and assigned to a specific support agent. Agents should be able to continuously update progress until the issue is resolved. For urgent issues, tickets that remain unassigned for too long, or tickets that are close to breaching their deadline, the system should remind the team to take action.&lt;/p&gt;

&lt;p&gt;We also want an overview page that quickly shows how many issues are still open, which issues need priority attention, and how many issues have recently been resolved.&lt;/p&gt;

&lt;p&gt;Please design and build this system based on these actual business requirements.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;AI first breaks the requirements down into a data structure. In NocoBase, it creates tables for tickets, customers, support agents, communication records, SLA rules, and related data, then defines the relationships between them.&lt;/p&gt;

&lt;p&gt;On top of the data model, AI continues building the pages.&lt;/p&gt;

&lt;p&gt;In the end, AI creates a ticket list, ticket detail pages, and a support workspace, covering the basic scenarios of ticket recording, assignment, follow-up, and overview.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr7oyo634bd13adh6oroh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr7oyo634bd13adh6oroh.png" alt="Tickets en-v1b1s0.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmum8nrg5v9e2q4vojatl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmum8nrg5v9e2q4vojatl.png" alt="Customer satisfaction en-709uw1.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F820w74yv7itolm7u5zxd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F820w74yv7itolm7u5zxd.png" alt="SLA &amp;amp; escalations en-0zfn5p.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuie65lon9j1at4yb10ub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuie65lon9j1at4yb10ub.png" alt="Queue workload en-z7he21.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point, we have turned a business description into a working ticketing system. But “the features have been built” and “the system is ready for production” are not the same thing.&lt;/p&gt;

&lt;p&gt;Once the whole team starts using the system, three questions still need to be verified: &lt;strong&gt;Are the data relationships accurate? Can different team members collaborate according to their permissions? Can assignment, reminders, SLA breaches, and escalation rules execute reliably?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Solve Three Core Problems for Production Use
&lt;/h2&gt;

&lt;p&gt;The Reddit comment mentioned earlier pointed out that many AI-built applications begin to fail once real data is added because they do not maintain a complete internal model of the application: who uses the system, what roles different members have, how the data is related, and which rules govern the flow of work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F362kl9rsp9ad43k9b88g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F362kl9rsp9ad43k9b88g.png" alt="reddit3-09lu3o.png" width="800" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ticketing system now has data tables and pages, but when four support agents start working with real customer issues, we still need to validate three core areas.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Are the Data Relationships Accurate?
&lt;/h3&gt;

&lt;p&gt;A ticket is not an isolated record.&lt;/p&gt;

&lt;p&gt;Each ticket needs to be associated with the customer who submitted it, the current owner, historical communication records, and the applicable SLA rule. When the ticket status changes, statistics and pending items on the workspace also need to update accordingly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhfue84qyfzngmqilxdcs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhfue84qyfzngmqilxdcs.png" alt="数据之间的关系1 en-pax4na.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If these relationships are not defined clearly, the system may still look complete while failing in actual use. After changing the owner, previous handling records may become difficult to find. A ticket may be matched to the wrong response deadline, or numbers on the overview page may no longer match reality.&lt;/p&gt;

&lt;p&gt;In NocoBase, these relationships are not temporary pieces of logic written by AI into a specific page. They are defined directly in the data model. Using the ticket table as an example, the SLA policy, queue, ticket type, and submitter are defined as many-to-one relationships. One ticket can be linked to multiple satisfaction records, attachments, followers, and other tickets. Parent-child ticket relationships are also explicitly defined in field configuration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F95647f127xb4zupc4rf6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F95647f127xb4zupc4rf6.png" alt="数据之间的关系2 en-cknbzn.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These relationships become part of the NocoBase data model and are shared by pages, permissions, workflows, and reporting features. Users can inspect each field type and relationship directly in the data source interface and continue adjusting them as business requirements change.&lt;/p&gt;

&lt;p&gt;This is different from a Vibe Coding approach that starts from generated code. In a code-generated application, data relationships usually need to be implemented across the database structure, backend models, APIs, and page queries. If a relationship is incomplete or only one layer is updated later, data inconsistencies can occur. Manual inspection also requires developers to look into both code and database structures to verify the actual implementation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffl9b5mhf3ta1ws1z3lqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffl9b5mhf3ta1ws1z3lqn.png" alt="数据之间的关系3 en-fhk0oy.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase already provides data modeling capabilities. AI only needs to translate business requirements into tables, fields, and relationships instead of building the entire data layer from scratch. After the system is generated, people can inspect and modify the model directly in the same interface.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Can Different Roles Collaborate According to the Rules?
&lt;/h3&gt;

&lt;p&gt;When only one person uses a system, permissions are usually not a major issue. Once an entire team starts collaborating, it becomes necessary to define who can see what and who can change what.&lt;/p&gt;

&lt;p&gt;In this ticketing system, AI can configure the corresponding roles and data permissions directly in NocoBase.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbgohzeiabx4ubimr8qxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbgohzeiabx4ubimr8qxw.png" alt="规则协作1 en-mi39un.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is another important difference between building with NocoBase and using a Vibe Coding approach. In an AI-generated application, permission rules often need to be implemented separately across pages, APIs, and data queries. As the number of roles and rules increases, configuration becomes more complex. During manual review, teams often need to return to the code or test the application directly to confirm whether permissions are actually taking effect.&lt;/p&gt;

&lt;p&gt;NocoBase already provides permission management capabilities. AI does not need to rebuild a permission system. It only needs to configure which data different roles can view and operate on according to the business requirements. The result is also clearly visible in the administration interface, where users can inspect the permission scope for each role and switch identities to validate the result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa6qu18xhs55pny15bezd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa6qu18xhs55pny15bezd.png" alt="规则协作2 en-qqc7b4.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Business Rules Execute Reliably?
&lt;/h3&gt;

&lt;p&gt;Many rules in a ticketing system need to be monitored continuously and triggered automatically by the system.&lt;/p&gt;

&lt;p&gt;In the workflow management interface, users can directly inspect how each rule is triggered, its execution mode, whether it is enabled, and how many times it has run. There is no need to enter the codebase to confirm which rules are active, what conditions trigger them, and whether they have actually executed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydst3pd6svlrvlk61be2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fydst3pd6svlrvlk61be2.png" alt="可靠执行1 en-ql1blo.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Execution results can also be inspected in detail. Take the “escalate overdue urgent tickets” workflow as an example. The system iterates through tickets that meet the condition, processes their deadlines, and runs the notification node. In the execution record shown in the screenshot, the escalation notification to the current owner has completed successfully, and the node status is shown as complete.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F88efjfjbiik40urzg9w7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F88efjfjbiik40urzg9w7.png" alt="可靠执行2 en-1qjkl8.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This means business rules are no longer hidden pieces of code. AI can configure them directly using NocoBase's existing workflow capabilities, while people can inspect the workflow structure, runtime status, and individual execution records from the interface.&lt;/p&gt;

&lt;p&gt;This is exactly what an internal application needs before being used in real operations: it is not enough to define a business process. Teams also need to know whether it was triggered, how far it progressed, and whether it ultimately completed successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Add AI Capabilities to the System
&lt;/h2&gt;

&lt;p&gt;Another advantage of building on NocoBase is that AI does not only help during the application-building stage. Once the core system is ready, AI Employees and workflows can allow AI to participate directly in ticket handling.&lt;/p&gt;

&lt;p&gt;In the current ticketing system, we use AI in two specific parts of the process.&lt;/p&gt;

&lt;p&gt;The first is ticket creation.&lt;/p&gt;

&lt;p&gt;Support agents do not need to fill in every ticket field manually from the start. They can simply describe the customer's issue in natural language. AI Smart Form Fill first turns that description into a ticket title and issue description. Once the basic information is filled in, AI Smart Triage can review the ticket and suggest a category and priority.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ewjubaqfkuehco6vc8p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ewjubaqfkuehco6vc8p.png" alt="AI 能力1 en-zu7ek6.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, AI is responsible for converting the customer's natural-language description into structured information, but it does not bypass the form and submit the ticket automatically. The support agent can still review and edit the generated content before confirming and creating the ticket.&lt;/p&gt;

&lt;p&gt;The second part is ticket handling.&lt;/p&gt;

&lt;p&gt;On the ticket detail page, a support agent can ask AI to draft the next customer reply based on the current ticket. AI reads the customer's issue, handling progress, and communication history, then refers to the help articles matched by the system. It summarizes the ticket situation and response strategy before generating a reply draft.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyfayzhw1lcy2ox20qrk1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyfayzhw1lcy2ox20qrk1.gif" alt="AI 能力2 en-rh0v12.gif" width="760" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;More importantly, AI does not operate outside the system's permission model. NocoBase can control which users are allowed to use which AI Employees based on role. When an AI Employee calls the built-in data query tools, the system applies the current user's data permissions and only returns data that the user is allowed to access.&lt;/p&gt;

&lt;p&gt;Related documentation: &lt;a href="https://docs.nocobase.com/ai-employees/permission" rel="noopener noreferrer"&gt;AI Employee Roles and Permissions - NocoBase Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz29rw7481izq55gjyu6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz29rw7481izq55gjyu6d.png" alt="AI 能力3en-0z3kdr.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This means that when a regular support agent uses AI, AI does not automatically gain access to data that only a supervisor is allowed to see. What AI can access is still constrained by the original permission boundaries of the business system.&lt;/p&gt;

&lt;p&gt;This is also what distinguishes NocoBase's AI capabilities from temporarily calling a large language model outside the application. AI is not just an extra chat entry point. It operates inside the existing data, permission, and workflow system. It can participate in the business process without bypassing the application's existing management rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Back to the question at the beginning: can an AI-built ticketing system really be used in production?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It depends on whether the system has a clear, inspectable business structure underneath it.&lt;/p&gt;

&lt;p&gt;In this case, we first describe the business problems and requirements to AI. AI then uses NocoBase's existing data model, permission, and workflow capabilities to turn those requirements into a working ticketing system.&lt;/p&gt;

&lt;p&gt;That is the value of combining AI with NocoBase: AI understands the requirements and improves building efficiency, while NocoBase provides a manageable and inspectable system foundation. The final business rules and go-live results are still confirmed by people.&lt;/p&gt;

&lt;p&gt;If you have an internal process that still depends on spreadsheets, a shared inbox, or manual reminders, start with four questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who will use the system?&lt;/li&gt;
&lt;li&gt;What business information does the system need to record?&lt;/li&gt;
&lt;li&gt;What can different roles view and operate on?&lt;/li&gt;
&lt;li&gt;Which rules need to be executed automatically by the system?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once these questions are described clearly, AI has a much better starting point for building the business system.&lt;/p&gt;

&lt;p&gt;If you want to try this approach, first connect your Coding Agent to NocoBase AI Builder, then describe your business requirements in natural language.&lt;/p&gt;

&lt;p&gt;During initialization, you can give AI the following instruction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Help me install the NocoBase CLI and complete initialization:
https://docs.nocobase.com/ai/ai-quick-start.md
(Please open and read the linked documentation directly.)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After initialization is complete, continue with the specific business requirements and ask AI to build on NocoBase's existing data model, permissions, workflows, and related capabilities. You can then keep modifying the same application as the requirements evolve.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try the NocoBase + AI Demo:&lt;/strong&gt; &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;Request an online demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it yourself:&lt;/strong&gt; &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;View the AI Builder documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/building-inventory-management-system-vibe-coding-vs-nocobase-ai" rel="noopener noreferrer"&gt;Building an Inventory Management System: Vibe Coding vs NocoBase + AI &lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready IT Operations System with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-baserow" rel="noopener noreferrer"&gt;NocoBase vs Baserow: Flexible Databases vs Enterprise Systems&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready CRM with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;How to Design an IT Asset Management System: Data Model, Lifecycle, and Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/best-smartsheet-alternatives" rel="noopener noreferrer"&gt;How to Choose a Smartsheet Alternative: 7 Tools Compared&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-complex-relational-models" rel="noopener noreferrer"&gt;5 Open-Source AI No-Code Tools for Complex Relational Data Models&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Weekly Updates: Added DeepSeek V4 Flash with Reasoning Continuation and Web Search</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Fri, 28 Aug 2026 15:57:41 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-added-deepseek-v4-flash-with-reasoning-continuation-and-web-search-5h18</link>
      <guid>https://dev.to/nocobase/weekly-updates-added-deepseek-v4-flash-with-reasoning-continuation-and-web-search-5h18</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.3
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-26&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fix a render error when switching a v2 association field to popup record selection. (&lt;a href="https://github.com/nocobase/nocobase/pull/10419" rel="noopener noreferrer"&gt;#10419&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Public forms]&lt;/strong&gt; Fix duplicate Submit actions in V2 regular form configuration when Public Forms is enabled. (&lt;a href="https://github.com/nocobase/nocobase/pull/10417" rel="noopener noreferrer"&gt;#10417&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI LLM: GigaChat]&lt;/strong&gt; Fixed an application startup error on iOS 15.6 and earlier when the GigaChat AI provider is enabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10418" rel="noopener noreferrer"&gt;#10418&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[WeCom]&lt;/strong&gt; Fixed WeCom automatic login lifecycle and notification form compatibility in client-v2. by chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.2
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-25&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Clarified how to use public NocoBase file URLs in Markdown, external pages, and third-party services (&lt;a href="https://github.com/nocobase/nocobase/pull/10406" rel="noopener noreferrer"&gt;#10406&lt;/a&gt;) by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/file-manager/storage/" rel="noopener noreferrer"&gt;Storage engine overview&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Access control]&lt;/strong&gt; Fixed an ACL bypass that allowed &lt;code&gt;firstOrCreate&lt;/code&gt; or &lt;code&gt;updateOrCreate&lt;/code&gt; to read or modify existing records without the required view or update permission. (&lt;a href="https://github.com/nocobase/nocobase/pull/10403" rel="noopener noreferrer"&gt;#10403&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix option fields being unable to select configured values in v2 workflow Create record and Update record nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10414" rel="noopener noreferrer"&gt;#10414&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fix the extra trigger at &lt;code&gt;startsOn&lt;/code&gt; for schedule workflows repeating on a cron expression (&lt;a href="https://github.com/nocobase/nocobase/pull/10410" rel="noopener noreferrer"&gt;#10410&lt;/a&gt;) by Tespera&lt;/li&gt;
&lt;li&gt;Fixed workflow task center menus so the active menu can be collapsed by clicking it again while retaining its selected highlight (&lt;a href="https://github.com/nocobase/nocobase/pull/10404" rel="noopener noreferrer"&gt;#10404&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed collection event as sub-workflows failing when called with a record ID and no preload associations configured (&lt;a href="https://github.com/nocobase/nocobase/pull/10407" rel="noopener noreferrer"&gt;#10407&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI templates]&lt;/strong&gt; Fix the error when closing an approval task containing a referenced block (&lt;a href="https://github.com/nocobase/nocobase/pull/10415" rel="noopener noreferrer"&gt;#10415&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.1
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-24&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[UI layout]&lt;/strong&gt; Fix the issue where desktop routes may be empty after upgrading (&lt;a href="https://github.com/nocobase/nocobase/pull/10405" rel="noopener noreferrer"&gt;#10405&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Fix a crash when changing and drag-sorting Pro export fields. by katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-22&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tabs on pages, subpages and pop-ups support the configuration of linkage rules (&lt;a href="https://github.com/nocobase/nocobase/pull/10099" rel="noopener noreferrer"&gt;#10099&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Added configurable App and Portal entry support for V2 action panels and the left-top app switcher. (&lt;a href="https://github.com/nocobase/nocobase/pull/9893" rel="noopener noreferrer"&gt;#9893&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Add an environment variable to configure legacy and modern route entry modes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9891" rel="noopener noreferrer"&gt;#9891&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added configurable App and Portal entries for the V2 action panel and app switcher. by katherinehhh&lt;/li&gt;
&lt;li&gt;Add Multi-Portal plugin by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added configurable automatic or on-demand knowledge-base retrieval for AI employees, with role-based knowledge-base access filtering. (&lt;a href="https://github.com/nocobase/nocobase/pull/10362" rel="noopener noreferrer"&gt;#10362&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Added DeepSeek V4 Flash and V4 Pro Responses API support with reasoning continuity, native web search, citations, and model-aware web search controls (&lt;a href="https://github.com/nocobase/nocobase/pull/10337" rel="noopener noreferrer"&gt;#10337&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;AI employees can now be assigned skills from the employee settings page. Skills are built from plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/10237" rel="noopener noreferrer"&gt;#10237&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Added UI navigation for supported LLM service CLI commands, including provider preselection when creating a service. (&lt;a href="https://github.com/nocobase/nocobase/pull/10210" rel="noopener noreferrer"&gt;#10210&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Added an embeddable AI chat box block that supports scoped conversations, AI employee tasks, and shared chat runtime behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/10125" rel="noopener noreferrer"&gt;#10125&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Added frontend AI tools for JS blocks (&lt;a href="https://github.com/nocobase/nocobase/pull/10121" rel="noopener noreferrer"&gt;#10121&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Added RunJS APIs for triggering AI employee tasks from JS blocks. (&lt;a href="https://github.com/nocobase/nocobase/pull/10061" rel="noopener noreferrer"&gt;#10061&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Added structured AI usage records for usage statistics (&lt;a href="https://github.com/nocobase/nocobase/pull/10004" rel="noopener noreferrer"&gt;#10004&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Added an external vector store configuration form for AI knowledge bases. (&lt;a href="https://github.com/nocobase/nocobase/pull/9723" rel="noopener noreferrer"&gt;#9723&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[WEB client]&lt;/strong&gt; Reduced application language responses to requested resource namespaces (&lt;a href="https://github.com/nocobase/nocobase/pull/10175" rel="noopener noreferrer"&gt;#10175&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Public forms]&lt;/strong&gt; In the v1 public form, support creating v2 forms and prohibit creating v1 forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10045" rel="noopener noreferrer"&gt;#10045&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved comment block settings with data scope, default sorting, selectable page size, optional last-page jumping, and scalar owner field mapping. (&lt;a href="https://github.com/nocobase/nocobase/pull/9954" rel="noopener noreferrer"&gt;#9954&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Added a comments block. (&lt;a href="https://github.com/nocobase/nocobase/pull/9916" rel="noopener noreferrer"&gt;#9916&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: Email]&lt;/strong&gt; Migrated the workflow notification node client to v2, restored channel-specific notification forms, and kept legacy workflow route compatibility for migrated notification configuration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9817" rel="noopener noreferrer"&gt;#9817&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: mailer node]&lt;/strong&gt; Added v2 client support for configuring the workflow mailer node. (&lt;a href="https://github.com/nocobase/nocobase/pull/9825" rel="noopener noreferrer"&gt;#9825&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI layout]&lt;/strong&gt; Add support for mobile layout (&lt;a href="https://github.com/nocobase/nocobase/pull/9641" rel="noopener noreferrer"&gt;#9641&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added workflow database transaction scope support. (&lt;a href="https://github.com/nocobase/nocobase/pull/9742" rel="noopener noreferrer"&gt;#9742&lt;/a&gt;) by mytharcher
Reference: &lt;a href="//docs/docs/en/workflow/nodes/transaction.md"&gt;Database Transaction&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Migrate the Workflow settings page to the v2 client and share a reusable draggable category-tabs component via &lt;code&gt;@NocoBase/client-v2&lt;/code&gt;. (&lt;a href="https://github.com/nocobase/nocobase/pull/9645" rel="noopener noreferrer"&gt;#9645&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Multi-space]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added default-space configuration so newly created users automatically join the selected default space. by jiannx&lt;/li&gt;
&lt;li&gt;Added debounced display-name search to space switchers and space management in both v1 and v2 by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added UI navigation for creating and editing vector databases from CLI commands, with provider preselection for new databases. by cgyrock&lt;/li&gt;
&lt;li&gt;Added role-based read-only and read/write permissions for knowledge-base management, including creator ownership and read-only management views. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Database transaction node]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added the database transaction workflow node plugin. by mytharcher&lt;/li&gt;
&lt;li&gt;Added a client-v2 implementation for the workflow database transaction node while preserving the legacy client entry. by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt; Added client v2 support for the record history plugin. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added usage instructions and card-style workflow selection to the approval initiation list in client v2 by mytharcher&lt;/li&gt;
&lt;li&gt;Added usage instructions and card-style workflow selection to the approval initiation list by mytharcher&lt;/li&gt;
&lt;li&gt;Add approval initiation and todo blocks for v2 pages by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Email synchronization now uses recoverable background jobs with status history and safer full-resync cleanup, including Gmail Spam and Trash. by jiannx&lt;/li&gt;
&lt;li&gt;Migrated the email manager client to v2. by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth: LDAP]&lt;/strong&gt; Add LDAP user synchronization configuration support for client v2. by chenzhizdt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File URLs now use stable NocoBase access URLs so permissions can be checked before redirecting to storage. (&lt;a href="https://github.com/nocobase/nocobase/pull/10103" rel="noopener noreferrer"&gt;#10103&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Refined Russian documentation translation for improved wording, readability, and terminology consistency. (&lt;a href="https://github.com/nocobase/nocobase/pull/9942" rel="noopener noreferrer"&gt;#9942&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;li&gt;Refined Russian documentation translation for improved wording, readability, and terminology consistency. (&lt;a href="https://github.com/nocobase/nocobase/pull/9816" rel="noopener noreferrer"&gt;#9816&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;li&gt;Improved AI knowledge base retrieval and documentation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9765" rel="noopener noreferrer"&gt;#9765&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Refined Russian documentation translation for improved wording, readability, and terminology consistency. (&lt;a href="https://github.com/nocobase/nocobase/pull/9754" rel="noopener noreferrer"&gt;#9754&lt;/a&gt;) by sembaev-a-a&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; &lt;code&gt;nb api resource create&lt;/code&gt; now accepts a JSON array for &lt;code&gt;--values&lt;/code&gt; to create multiple records in a single request. (&lt;a href="https://github.com/nocobase/nocobase/pull/10325" rel="noopener noreferrer"&gt;#10325&lt;/a&gt;) by Molunerfinn&lt;br&gt;
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/fix/cli-resource-create-array-values/docs/docs/en/api/cli/api/resource/create.md" rel="noopener noreferrer"&gt;nb api resource create&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactor Markdown Vditor into a unified plugin-backed Markdown engine with compatibility bridges for existing Markdown block and Vditor field plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9998" rel="noopener noreferrer"&gt;#9998&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Refactor Markdown Vditor into a unified plugin-backed Markdown engine with compatibility bridges for existing Markdown block and Vditor field plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9998" rel="noopener noreferrer"&gt;#9998&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Adjusted the v2 System settings menu order and page panel height to match the standard settings layout. (&lt;a href="https://github.com/nocobase/nocobase/pull/9849" rel="noopener noreferrer"&gt;#9849&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed missing Settings entries for Client V2 plugin manager cards when a plugin uses a shared or legacy settings path. (&lt;a href="https://github.com/nocobase/nocobase/pull/9852" rel="noopener noreferrer"&gt;#9852&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Grouped task-center items by workflow in the new client and kept workflow filters consistent across task types. (&lt;a href="https://github.com/nocobase/nocobase/pull/10374" rel="noopener noreferrer"&gt;#10374&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Workflow create and update nodes now support combining text with variables when assigning string and text fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10238" rel="noopener noreferrer"&gt;#10238&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Workflow tasks can now be filtered and navigated by workflow, with per-workflow pending counts (&lt;a href="https://github.com/nocobase/nocobase/pull/10173" rel="noopener noreferrer"&gt;#10173&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Improved workflow pending task handling by persisting start, resume, and rerun tasks in the event queue. (&lt;a href="https://github.com/nocobase/nocobase/pull/9846" rel="noopener noreferrer"&gt;#9846&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Unsupported workflow v2 canvas nodes now keep the normal node card actions while showing the node type as unsupported. (&lt;a href="https://github.com/nocobase/nocobase/pull/10054" rel="noopener noreferrer"&gt;#10054&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Simplified workflow v2 create/update field assignment, improved selected variable display, and avoided generating unused assign-form model data. (&lt;a href="https://github.com/nocobase/nocobase/pull/9887" rel="noopener noreferrer"&gt;#9887&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Exported workflow v2 canvas extension APIs for downstream workflow node plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9834" rel="noopener noreferrer"&gt;#9834&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Migrate the workflow output node configuration to v2 and align v2 workflow result viewers with the legacy display behavior for string results. (&lt;a href="https://github.com/nocobase/nocobase/pull/9813" rel="noopener noreferrer"&gt;#9813&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Migrate the workflow end node to the v2 implementation. (&lt;a href="https://github.com/nocobase/nocobase/pull/9795" rel="noopener noreferrer"&gt;#9795&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simplified AI knowledge base vector configuration (&lt;a href="https://github.com/nocobase/nocobase/pull/10178" rel="noopener noreferrer"&gt;#10178&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Improved AI employee reliability across validation, data permissions, record context, attachments, workflow tasks, conversation recovery, and coding editor lifecycle handling. (&lt;a href="https://github.com/nocobase/nocobase/pull/10162" rel="noopener noreferrer"&gt;#10162&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed AI employee model settings persistence, disabled employee conversation creation, and mobile chatbox layout behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/10120" rel="noopener noreferrer"&gt;#10120&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Improved AI employee tool settings, data-query guardrails, relation field querying, and malformed tool call diagnostics. (&lt;a href="https://github.com/nocobase/nocobase/pull/10042" rel="noopener noreferrer"&gt;#10042&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Improved AI employee web search to reduce unnecessary model reasoning and better use provider-specific thinking controls. (&lt;a href="https://github.com/nocobase/nocobase/pull/9996" rel="noopener noreferrer"&gt;#9996&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Removed the deprecated Datasource entry from AI employee settings and context selection in the v2 UI. (&lt;a href="https://github.com/nocobase/nocobase/pull/9988" rel="noopener noreferrer"&gt;#9988&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Migrated the AI employee plugin to client-v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9794" rel="noopener noreferrer"&gt;#9794&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Added independent storage settings for returning original file URLs and allowing public access to file URLs (&lt;a href="https://github.com/nocobase/nocobase/pull/10160" rel="noopener noreferrer"&gt;#10160&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Manual node]&lt;/strong&gt; Show manual workflow tasks in the V2 task center and guide users to the legacy page for processing (&lt;a href="https://github.com/nocobase/nocobase/pull/10085" rel="noopener noreferrer"&gt;#10085&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support multi portals for ui build apis. (&lt;a href="https://github.com/nocobase/nocobase/pull/10072" rel="noopener noreferrer"&gt;#10072&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Open runjs browser globals. (&lt;a href="https://github.com/nocobase/nocobase/pull/9841" rel="noopener noreferrer"&gt;#9841&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection: SQL]&lt;/strong&gt; Not user-facing; added client-v2 unit test coverage for migrated plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/9967" rel="noopener noreferrer"&gt;#9967&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data visualization]&lt;/strong&gt; Improved chart event scripts so custom event handlers can clean up safely (&lt;a href="https://github.com/nocobase/nocobase/pull/10034" rel="noopener noreferrer"&gt;#10034&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hide deprecated v2 main data source collection templates from the create collection menu. (&lt;a href="https://github.com/nocobase/nocobase/pull/10009" rel="noopener noreferrer"&gt;#10009&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Display unsupported external data source fields in V2 Configure fields, and align backup restore form label styles. (&lt;a href="https://github.com/nocobase/nocobase/pull/9983" rel="noopener noreferrer"&gt;#9983&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved comment submit actions and fixed related comment/user form submission issues. (&lt;a href="https://github.com/nocobase/nocobase/pull/10002" rel="noopener noreferrer"&gt;#10002&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Added the new comment block plugin to the NocoBase preset and marked the legacy comments plugin as deprecated. (&lt;a href="https://github.com/nocobase/nocobase/pull/9936" rel="noopener noreferrer"&gt;#9936&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve client-v2 test coverage for the users plugin. (&lt;a href="https://github.com/nocobase/nocobase/pull/9975" rel="noopener noreferrer"&gt;#9975&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Improved the Users &amp;amp; Permissions v2 page layout and department tree behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9780" rel="noopener noreferrer"&gt;#9780&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aligned v2 workflow request and mailer node configuration fields with legacy layout and attachment variable behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9952" rel="noopener noreferrer"&gt;#9952&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Migrated the JavaScript workflow node to client-v2 (&lt;a href="https://github.com/nocobase/nocobase/pull/9805" rel="noopener noreferrer"&gt;#9805&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI layout]&lt;/strong&gt; Improved the v2 mobile tab bar so crowded tabs scroll horizontally instead of overlapping. (&lt;a href="https://github.com/nocobase/nocobase/pull/9949" rel="noopener noreferrer"&gt;#9949&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Aggregate node]&lt;/strong&gt; Improved v2 workflow field selection for update and aggregate query nodes, including safer associated collection selection in aggregate query nodes. (&lt;a href="https://github.com/nocobase/nocobase/pull/9938" rel="noopener noreferrer"&gt;#9938&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Logger]&lt;/strong&gt; Added the Logger settings page to the client v2 runtime. (&lt;a href="https://github.com/nocobase/nocobase/pull/9933" rel="noopener noreferrer"&gt;#9933&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Form drafts]&lt;/strong&gt; Migrate plugin form drafts to client v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9910" rel="noopener noreferrer"&gt;#9910&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JSON calculation]&lt;/strong&gt; Migrated the workflow JSON calculation node configuration UI to the v2 workflow canvas while preserving v1 canvas compatibility. (&lt;a href="https://github.com/nocobase/nocobase/pull/9902" rel="noopener noreferrer"&gt;#9902&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[User data synchronization]&lt;/strong&gt; Added modern UI support for user data synchronization settings (&lt;a href="https://github.com/nocobase/nocobase/pull/9837" rel="noopener noreferrer"&gt;#9837&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Public forms]&lt;/strong&gt; Separated v1 and v2 public form lists and fixed the v2 Configure page to open a configurable form detail page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9851" rel="noopener noreferrer"&gt;#9851&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improved backup manager table styling and long file name display. (&lt;a href="https://github.com/nocobase/nocobase/pull/9864" rel="noopener noreferrer"&gt;#9864&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Tables whose collection &lt;code&gt;dataCategory&lt;/code&gt; is marked as &lt;code&gt;'runtime'&lt;/code&gt; are now excluded from backups automatically. (&lt;a href="https://github.com/nocobase/nocobase/pull/9804" rel="noopener noreferrer"&gt;#9804&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Custom action event]&lt;/strong&gt; Migrated workflow triggers and bind-workflow settings to client-v2, including action trigger, custom action trigger, request interception trigger, and submit/update action workflow binding settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/9845" rel="noopener noreferrer"&gt;#9845&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Migrated the workflow HTTP request node to client-v2. (&lt;a href="https://github.com/nocobase/nocobase/pull/9806" rel="noopener noreferrer"&gt;#9806&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Locale tester]&lt;/strong&gt; Added a client v2 settings page for the locale tester. (&lt;a href="https://github.com/nocobase/nocobase/pull/9744" rel="noopener noreferrer"&gt;#9744&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Access control]&lt;/strong&gt; Aligned the v2 Users &amp;amp; Permissions settings pages with v1 behavior, including pagination totals, department tree behavior, selected styles, and internal permissions-panel scrolling. (&lt;a href="https://github.com/nocobase/nocobase/pull/9810" rel="noopener noreferrer"&gt;#9810&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aligned the vector database list styling with other settings tables by cgyrock&lt;/li&gt;
&lt;li&gt;Vector database and embedding settings can now be configured directly for each AI knowledge base by cgyrock&lt;/li&gt;
&lt;li&gt;Migrated the AI knowledge base settings pages to the v2 client and fixed layout and loading issues in knowledge base and vector store pages. by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[HTTP request encryption]&lt;/strong&gt; Added v2 client support for HTTP request encryption so query parameters continue to be encrypted in the v2 client. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Database transaction node]&lt;/strong&gt; Improved the v2 workflow database transaction node layout so branch labels and the commit marker have better spacing. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Change pending queue strategy based on workflow engine refactored by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File storage: S3(Pro)]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;S3 Pro uploads now return the created file record with permanent file URLs. by mytharcher&lt;/li&gt;
&lt;li&gt;Added independent S3 Pro settings for original URLs, public file URL access, and unsigned URLs by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Updated approval task grouping and timelines in the new client to match the legacy experience. by mytharcher&lt;/li&gt;
&lt;li&gt;Approval application and todo tasks can now be filtered by workflow with per-workflow pending counts by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Moved the department-based mail viewing option to the V1 general mail settings page, prevented service credential saves from overwriting it, and placed V2 General settings before Service provider settings. by jiannx&lt;/li&gt;
&lt;li&gt;Moved the department-based mail viewing option to the general mail settings page. by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Hid the standalone V2 Applications block while keeping its settings page available internally. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[WeCom]&lt;/strong&gt; Added modern UI support for WeCom authentication, sync, and notification settings by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complete DingTalk client v2 support, including Stream synchronization, notification configuration, and automatic login improvements. by chenzhizdt&lt;/li&gt;
&lt;li&gt;Added modern UI support for DingTalk authentication, sync, and notification settings by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Fix &lt;code&gt;nb plugin import&lt;/code&gt; failing on plugin tarballs built by &lt;code&gt;yarn build --tar&lt;/code&gt;, and correct example code and scaffold structure in the plugin development docs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10351" rel="noopener noreferrer"&gt;#10351&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed relationship picker labels when association form values contain only a related record ID. (&lt;a href="https://github.com/nocobase/nocobase/pull/10386" rel="noopener noreferrer"&gt;#10386&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed a false DatePicker missing-component error in v2 table filters. (&lt;a href="https://github.com/nocobase/nocobase/pull/10392" rel="noopener noreferrer"&gt;#10392&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed false missing-component console errors when opening v2 table filters. (&lt;a href="https://github.com/nocobase/nocobase/pull/10389" rel="noopener noreferrer"&gt;#10389&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an error that prevented filter conditions from being cleared in workflow settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/10388" rel="noopener noreferrer"&gt;#10388&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed missing frontend response notifications on Client V2 pages, including errors returned by pre-action workflows (&lt;a href="https://github.com/nocobase/nocobase/pull/10376" rel="noopener noreferrer"&gt;#10376&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fix Chinese text appearing when searching mobile select fields in English (&lt;a href="https://github.com/nocobase/nocobase/pull/10367" rel="noopener noreferrer"&gt;#10367&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed pages under &lt;code&gt;/v&lt;/code&gt; remaining in UI editing mode after switching to a role without page configuration permission (&lt;a href="https://github.com/nocobase/nocobase/pull/10359" rel="noopener noreferrer"&gt;#10359&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Show a retryable localized fallback in v2 blocks when an external data source is unavailable. (&lt;a href="https://github.com/nocobase/nocobase/pull/10336" rel="noopener noreferrer"&gt;#10336&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Redirect users without Settings access to the first available page (&lt;a href="https://github.com/nocobase/nocobase/pull/10331" rel="noopener noreferrer"&gt;#10331&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Automatically redirect to an accessible Settings tab when the current tab is unavailable (&lt;a href="https://github.com/nocobase/nocobase/pull/10332" rel="noopener noreferrer"&gt;#10332&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix incorrect editing and display of large decimal values in V2 fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10330" rel="noopener noreferrer"&gt;#10330&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed Kanban column quick create records not inheriting the selected group value (&lt;a href="https://github.com/nocobase/nocobase/pull/10321" rel="noopener noreferrer"&gt;#10321&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed automatic SSO redirect providers failing to preserve authentication order in production builds (&lt;a href="https://github.com/nocobase/nocobase/pull/10100" rel="noopener noreferrer"&gt;#10100&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Workflow filters now preserve workflow variable expressions and show a clear parsing error when variable metadata cannot be resolved. (&lt;a href="https://github.com/nocobase/nocobase/pull/10088" rel="noopener noreferrer"&gt;#10088&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix an error in v2 workflow value editors when a collection field is named nodeName. (&lt;a href="https://github.com/nocobase/nocobase/pull/10067" rel="noopener noreferrer"&gt;#10067&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed workflow v2 variable editors to preserve saved variable pills, disabled states, and operator labels consistently across trigger, filter, and field assignment forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10041" rel="noopener noreferrer"&gt;#10041&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed an issue where v2 workflow assigned fields could still be edited in read-only executed workflow versions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10014" rel="noopener noreferrer"&gt;#10014&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fix the issue where opening an empty V2 Group menu item shows 404 (&lt;a href="https://github.com/nocobase/nocobase/pull/9896" rel="noopener noreferrer"&gt;#9896&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix workflow execution revision navigation so creating a new version after manual execution opens the correct workflow page in both legacy and modern shells. (&lt;a href="https://github.com/nocobase/nocobase/pull/9955" rel="noopener noreferrer"&gt;#9955&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed V2 admin group routes showing 404 when the group has no available child menu page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9932" rel="noopener noreferrer"&gt;#9932&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed link actions becoming invisible on mobile embedded pages when icon-only mode is enabled but no icon is configured. (&lt;a href="https://github.com/nocobase/nocobase/pull/9919" rel="noopener noreferrer"&gt;#9919&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed a brief no-pages prompt flash when refreshing in UI Editor mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/9918" rel="noopener noreferrer"&gt;#9918&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix issue where RunJS resource create actions could not create associated sub-table records (&lt;a href="https://github.com/nocobase/nocobase/pull/10355" rel="noopener noreferrer"&gt;#10355&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fix dropdown menus being cut off in short browser windows (&lt;a href="https://github.com/nocobase/nocobase/pull/10379" rel="noopener noreferrer"&gt;#10379&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where users could type extra text after selecting a variable in single-value variable inputs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10050" rel="noopener noreferrer"&gt;#10050&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fix the issue where mobile popups with long content cannot scroll (&lt;a href="https://github.com/nocobase/nocobase/pull/9871" rel="noopener noreferrer"&gt;#9871&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt; Fix incomplete long sidebar menu titles and misaligned configuration toolbars (&lt;a href="https://github.com/nocobase/nocobase/pull/10380" rel="noopener noreferrer"&gt;#10380&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[auth]&lt;/strong&gt; Fixed occasional &lt;code&gt;Invalid CSRF token&lt;/code&gt; errors on API requests in cross-origin deployments (&lt;a href="https://github.com/nocobase/nocobase/pull/10245" rel="noopener noreferrer"&gt;#10245&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[server]&lt;/strong&gt; Fixed custom portals missing when multi-application plugins are disabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10055" rel="noopener noreferrer"&gt;#10055&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix V2 Import drag-and-drop being blocked by the AI attachment overlay. (&lt;a href="https://github.com/nocobase/nocobase/pull/10384" rel="noopener noreferrer"&gt;#10384&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed AI employee chat streaming long responses causing other idle browser tabs to balloon to multiple gigabytes of memory (&lt;a href="https://github.com/nocobase/nocobase/pull/10352" rel="noopener noreferrer"&gt;#10352&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed the untranslated Settings tab in the AI plugin's client-v2 settings pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10234" rel="noopener noreferrer"&gt;#10234&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed frontend Tools asking for confirmation in chat instead of using runtime approval (&lt;a href="https://github.com/nocobase/nocobase/pull/10166" rel="noopener noreferrer"&gt;#10166&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;li&gt;Fix unnecessary login-required requests on V2 public form pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10013" rel="noopener noreferrer"&gt;#10013&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Disable workflow execution mode selection until a trigger type is selected. (&lt;a href="https://github.com/nocobase/nocobase/pull/10296" rel="noopener noreferrer"&gt;#10296&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed workflow execution page titles and added a workflow-list link for missing workflows (&lt;a href="https://github.com/nocobase/nocobase/pull/10360" rel="noopener noreferrer"&gt;#10360&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Improved regression coverage for permanent file URLs, attachment thumbnails, preview downloads, and local storage security headers (&lt;a href="https://github.com/nocobase/nocobase/pull/10148" rel="noopener noreferrer"&gt;#10148&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Workflow form controls now correctly inherit the disabled state when viewing executed workflows. (&lt;a href="https://github.com/nocobase/nocobase/pull/10079" rel="noopener noreferrer"&gt;#10079&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Refresh the workflow canvas after updating trigger configuration (&lt;a href="https://github.com/nocobase/nocobase/pull/10068" rel="noopener noreferrer"&gt;#10068&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed workflow v2 condition operands to stay on one row by default and wrap correctly when selected variable paths are too long. (&lt;a href="https://github.com/nocobase/nocobase/pull/10033" rel="noopener noreferrer"&gt;#10033&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix display and detail loading issues in the workflow v2 task center (&lt;a href="https://github.com/nocobase/nocobase/pull/10001" rel="noopener noreferrer"&gt;#10001&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix untranslated workflow result labels and oversized CC configuration dialogs (&lt;a href="https://github.com/nocobase/nocobase/pull/9977" rel="noopener noreferrer"&gt;#9977&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix workflow context mismatches across bundles so branches and some variable pickers work correctly in legacy workflow pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9951" rel="noopener noreferrer"&gt;#9951&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix issues after migrated client to v2 (&lt;a href="https://github.com/nocobase/nocobase/pull/9929" rel="noopener noreferrer"&gt;#9929&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fix the issue where in-app message content cannot be configured in v2 workflows (&lt;a href="https://github.com/nocobase/nocobase/pull/9885" rel="noopener noreferrer"&gt;#9885&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Restored debounced remote search for workflow collection trigger manual execution and aligned the selector with the v1 200-record fetch behavior. (&lt;a href="https://github.com/nocobase/nocobase/pull/9870" rel="noopener noreferrer"&gt;#9870&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed the workflow v2 add-node menu so unavailable node types are disabled according to workflow and branch rules (&lt;a href="https://github.com/nocobase/nocobase/pull/9855" rel="noopener noreferrer"&gt;#9855&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fixed the in-app message template form showing workflow canvas variables instead of the variables provided by the page. (&lt;a href="https://github.com/nocobase/nocobase/pull/10180" rel="noopener noreferrer"&gt;#10180&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Map]&lt;/strong&gt; Fixed region selection not finishing on double-click when map point data is displayed, and fixed AMap remaining in a loading state (&lt;a href="https://github.com/nocobase/nocobase/pull/10373" rel="noopener noreferrer"&gt;#10373&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[UI layout]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix mobile pages appearing in the desktop navigation (&lt;a href="https://github.com/nocobase/nocobase/pull/10375" rel="noopener noreferrer"&gt;#10375&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Hide the mobile UI Editor when the current role cannot configure the interface (&lt;a href="https://github.com/nocobase/nocobase/pull/10341" rel="noopener noreferrer"&gt;#10341&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix desktop pages using mobile styles on narrow screens (&lt;a href="https://github.com/nocobase/nocobase/pull/10229" rel="noopener noreferrer"&gt;#10229&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the Mobile settings link losing the current sub-application path (&lt;a href="https://github.com/nocobase/nocobase/pull/10078" rel="noopener noreferrer"&gt;#10078&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed the Mobile settings link opening the main application from a sub-application. (&lt;a href="https://github.com/nocobase/nocobase/pull/10075" rel="noopener noreferrer"&gt;#10075&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed local storage files such as logos failing to load in sub-applications after stable URL redirects (&lt;a href="https://github.com/nocobase/nocobase/pull/10358" rel="noopener noreferrer"&gt;#10358&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed shared attachments such as the system logo not loading for authenticated member users (&lt;a href="https://github.com/nocobase/nocobase/pull/10268" rel="noopener noreferrer"&gt;#10268&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed 404 errors when uploading files to attachment URL fields in external data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/9809" rel="noopener noreferrer"&gt;#9809&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed required-field validation being skipped when submitting forms in UI editor mode (&lt;a href="https://github.com/nocobase/nocobase/pull/10371" rel="noopener noreferrer"&gt;#10371&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Show backend errors when adding a user or changing a password in V2. (&lt;a href="https://github.com/nocobase/nocobase/pull/10364" rel="noopener noreferrer"&gt;#10364&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Block: Tree]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed tree filter permissions and connected tree-table expansion state, and corrected details pagination totals after filtering. (&lt;a href="https://github.com/nocobase/nocobase/pull/10361" rel="noopener noreferrer"&gt;#10361&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed Tree block searches showing placeholder nodes when no business-field records matched (&lt;a href="https://github.com/nocobase/nocobase/pull/10323" rel="noopener noreferrer"&gt;#10323&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records]&lt;/strong&gt; Fixed an issue where files could not be imported by dragging them into the v2 Import dialog. (&lt;a href="https://github.com/nocobase/nocobase/pull/10350" rel="noopener noreferrer"&gt;#10350&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Action: Print]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the missing print action model registration on V1 pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10347" rel="noopener noreferrer"&gt;#10347&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed v2 detail block printing so empty detail blocks no longer print the whole page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9832" rel="noopener noreferrer"&gt;#9832&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Verification]&lt;/strong&gt; Add a refresh button to the Verification list (&lt;a href="https://github.com/nocobase/nocobase/pull/10340" rel="noopener noreferrer"&gt;#10340&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed locale tester errors when no saved locale record exists, and allowed notification channel identifiers to be customized when creating channels (&lt;a href="https://github.com/nocobase/nocobase/pull/10311" rel="noopener noreferrer"&gt;#10311&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fix receiver selection saving user IDs as text (&lt;a href="https://github.com/nocobase/nocobase/pull/10093" rel="noopener noreferrer"&gt;#10093&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix incorrect workflow variables shown in CC configuration (&lt;a href="https://github.com/nocobase/nocobase/pull/9937" rel="noopener noreferrer"&gt;#9937&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Gantt]&lt;/strong&gt; Fixed custom record colors not being applied to short Gantt task bars (&lt;a href="https://github.com/nocobase/nocobase/pull/10322" rel="noopener noreferrer"&gt;#10322&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Localization]&lt;/strong&gt; Fixed a crash when opening Localization settings with the Lina AI assistant entry. (&lt;a href="https://github.com/nocobase/nocobase/pull/10293" rel="noopener noreferrer"&gt;#10293&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevent repeated V2 backup restore submissions while a restore request is in progress. (&lt;a href="https://github.com/nocobase/nocobase/pull/10262" rel="noopener noreferrer"&gt;#10262&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Improved the stability and accuracy of backup plugin frontend tests. (&lt;a href="https://github.com/nocobase/nocobase/pull/10184" rel="noopener noreferrer"&gt;#10184&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed inconsistent bold labels on the v2 Backup manager settings page. (&lt;a href="https://github.com/nocobase/nocobase/pull/9908" rel="noopener noreferrer"&gt;#9908&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Variables and secrets]&lt;/strong&gt; Fix validation feedback for v2 environment variable bulk imports and fix Type filtering failures. (&lt;a href="https://github.com/nocobase/nocobase/pull/10154" rel="noopener noreferrer"&gt;#10154&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Authentication]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed declaration generation errors in the v2 authenticator management page (&lt;a href="https://github.com/nocobase/nocobase/pull/10095" rel="noopener noreferrer"&gt;#10095&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed missing saved Authenticator settings when editing authenticators in the v2 authentication manager. (&lt;a href="https://github.com/nocobase/nocobase/pull/10091" rel="noopener noreferrer"&gt;#10091&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Fixed incorrect redirects after SSO login in v2 sub applications (&lt;a href="https://github.com/nocobase/nocobase/pull/9927" rel="noopener noreferrer"&gt;#9927&lt;/a&gt;) by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JSON variable mapping]&lt;/strong&gt; Fix an error when selecting loop scope variables in the JSON variable mapping workflow node. (&lt;a href="https://github.com/nocobase/nocobase/pull/10094" rel="noopener noreferrer"&gt;#10094&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Delay node]&lt;/strong&gt; Fix delay node duration input and prevent values below the minimum from being saved. (&lt;a href="https://github.com/nocobase/nocobase/pull/10056" rel="noopener noreferrer"&gt;#10056&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Aggregate node]&lt;/strong&gt; Fix validation rule to allow null filter (&lt;a href="https://github.com/nocobase/nocobase/pull/10053" rel="noopener noreferrer"&gt;#10053&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Public forms]&lt;/strong&gt; Fix the issue where public forms can still be configured when UI Editor is off (&lt;a href="https://github.com/nocobase/nocobase/pull/10036" rel="noopener noreferrer"&gt;#10036&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Embed NocoBase]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed an issue where tokens could be polluted when embedding NocoBase pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/9948" rel="noopener noreferrer"&gt;#9948&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed v2 embed pages losing token-based access after the URL token is removed and the page is refreshed. (&lt;a href="https://github.com/nocobase/nocobase/pull/9857" rel="noopener noreferrer"&gt;#9857&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Fixed a crash when dragging v2 exportable fields after selecting relation fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/9995" rel="noopener noreferrer"&gt;#9995&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Comment]&lt;/strong&gt; Adjusted the default action order for new Comment blocks. (&lt;a href="https://github.com/nocobase/nocobase/pull/9976" rel="noopener noreferrer"&gt;#9976&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt; Fixed the issue where mobile page can't be created by flow surface api. (&lt;a href="https://github.com/nocobase/nocobase/pull/9911" rel="noopener noreferrer"&gt;#9911&lt;/a&gt;) by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: mailer node]&lt;/strong&gt; Fixed workflow v2 test failures caused by missing mocks for trigger workflow action registration. (&lt;a href="https://github.com/nocobase/nocobase/pull/9863" rel="noopener noreferrer"&gt;#9863&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Added a warning and quick setup for v2 data source collections without a primary key or record unique key. (&lt;a href="https://github.com/nocobase/nocobase/pull/9872" rel="noopener noreferrer"&gt;#9872&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow node registration failure in the legacy workflow client. (&lt;a href="https://github.com/nocobase/nocobase/pull/9826" rel="noopener noreferrer"&gt;#9826&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Response message]&lt;/strong&gt; Migrated the workflow response message node to the v2 canvas and fixed unsupported workflow types being able to add it. (&lt;a href="https://github.com/nocobase/nocobase/pull/9830" rel="noopener noreferrer"&gt;#9830&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[API documentation]&lt;/strong&gt; Fixed the API documentation package declaration build failure. (&lt;a href="https://github.com/nocobase/nocobase/pull/9752" rel="noopener noreferrer"&gt;#9752&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added an overwrite option for AI knowledge base workflow document creation, allowing workflows to replace existing documents with the same key. by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External PostgreSQL]&lt;/strong&gt; Automatically load collections when editing an external relational data source in client v2. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[plugin-service-platform]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restored licensed plugin downloads from the service platform. by jiannx&lt;/li&gt;
&lt;li&gt;Disabled the service platform plugin download endpoint. by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Verification: TOTP authenticator]&lt;/strong&gt; Fixed TOTP authenticator bindings so temporary setup secrets are removed and previously verified codes cannot be reused. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed file preview, permanent URL handling, and upload routing for external NocoBase file collections, including S3 Pro uploads by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-space]&lt;/strong&gt; Fixed authentication recovery requests being blocked by stale multi-space headers. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth: SAML 2.0]&lt;/strong&gt; Fixed SAML automatic sign-in redirects for unauthenticated users in the modern client while preserving the original destination path by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App SSO]&lt;/strong&gt; Fixed incorrect App SSO redirects in v2 sub applications by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Subflow]&lt;/strong&gt; Fixed workflow title search in the subflow node configuration selector. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed duplicate migration creation on repeated submission and improved v2 migration log and process drawer display. by katherinehhh&lt;/li&gt;
&lt;li&gt;Improve v2 migration error feedback, prevent duplicate migration rule names, and fix environment check modal overflow. by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth: OIDC]&lt;/strong&gt; Fixed OIDC automatic login redirects in production builds and retained the original modern-client path after login by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Invalid approval workflows in the new to-do center are now disabled and display a configuration warning. by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed related approval blocks failing to load on Client V2 record detail pages by mytharcher&lt;/li&gt;
&lt;li&gt;Fix workflow form action buttons responding in configuration dialogs by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix Approval blocks not refreshing after withdrawal or return by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Guide users to V1 pages when approval interfaces cannot be used in V2 by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix blank approval forms and missing or incorrect action buttons by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Allow users to view approval interfaces and cards after a workflow has been executed by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed premature applicant validation and untranslated role labels in the approval workflow manual execution dialog. by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fix the error when configuring approval workflow conditions by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the approval workflow task title remaining editable in executed workflow configurations after production builds. by Molunerfinn&lt;/li&gt;
&lt;li&gt;Close the Apply new drawer when opening an approval form by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix empty approval interfaces and fixed assignee IDs by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the error when opening CC node settings by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix v2 approval subtables not displaying correctly in details by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix approval assignee sorting and hide unsupported legacy configuration entries by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing approval data on approval task cards by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing processed approval details in v2 task detail popups by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix approval task form and action issues in the workflow v2 task center by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix issues involved by migrating to client v2 by mytharcher&lt;/li&gt;
&lt;li&gt;Fix display and action issues in approval initiator interfaces by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where approval tables appear in the block data source list by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix an error that could prevent V2 pages from opening when approval and notification plugins are enabled by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Signature]&lt;/strong&gt; Fix client-v2 signature field file collection selector localization and option filtering. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Audit logs]&lt;/strong&gt; Fixed raw translation expressions appearing in the client V2 audit log Role column. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed app visit links losing the v2 path in sub applications by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[WeCom]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed WeCom notification channels not saving the selected authenticator. by jiannx&lt;/li&gt;
&lt;li&gt;Fixed a blank flash when switching route menu items with the WeCom plugin enabled in Client V2 by 2013xile&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Fixed DingTalk notification channels losing the selected authenticator when saved from the v2 channel form by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.44
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-21&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Multi-space]&lt;/strong&gt; Added search to space switchers and space management in both v1 and v2 by jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[DingTalk]&lt;/strong&gt; Fixed DingTalk internal auto-login retaining the previous user's session after switching accounts. by chenzhizdt&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.43
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-19&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[app]&lt;/strong&gt; Added runtime polyfills for modern JavaScript APIs in supported older browsers (&lt;a href="https://github.com/nocobase/nocobase/pull/10385" rel="noopener noreferrer"&gt;#10385&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Fixed customized external database field display names being reset when selected tables are reloaded by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fixed customized external database field display names being reset when a data source is submitted or its selected tables are changed (&lt;a href="https://github.com/nocobase/nocobase/pull/10387" rel="noopener noreferrer"&gt;#10387&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fixed approval workflows configured to return to any previous approval node only allowing the nearest upstream node by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.42
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-18&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Added LDAP and DingTalk user data synchronization guides, including permissions, event modes, synchronized fields, department owners, and troubleshooting. (&lt;a href="https://github.com/nocobase/nocobase/pull/10377" rel="noopener noreferrer"&gt;#10377&lt;/a&gt;) by chenzhizdt
Reference: &lt;a href="https://github.com/chenzhizdt/nocobase/blob/docs/ldap-dingtalk/docs/docs/en/users-permissions/sync/sources/dingtalk.md" rel="noopener noreferrer"&gt;DingTalk synchronization&lt;/a&gt;, &lt;a href="https://github.com/chenzhizdt/nocobase/blob/docs/ldap-dingtalk/docs/docs/en/users-permissions/sync/sources/ldap.md" rel="noopener noreferrer"&gt;LDAP synchronization&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Improve LDAP and DingTalk user synchronization documentation and add all supported translations. (&lt;a href="https://github.com/nocobase/nocobase/pull/10382" rel="noopener noreferrer"&gt;#10382&lt;/a&gt;) by chenzhizdt
Reference: &lt;a href="//docs/docs/en/users-permissions/sync/sources/dingtalk.md"&gt;DingTalk&lt;/a&gt; / &lt;a href="//docs/docs/en/users-permissions/sync/sources/ldap.md"&gt;LDAP&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow task recovery repeatedly enqueueing jobs whose executions have ended or expired. (&lt;a href="https://github.com/nocobase/nocobase/pull/10366" rel="noopener noreferrer"&gt;#10366&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Fix export errors when using complex filters with the Export Pro plugin by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt; Fixed asynchronous imports not respecting field-level import permissions by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed Kingbase connections when creating supervised applications by 2013xile&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.3.0-beta.4
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-25&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Clarified how to use public NocoBase file URLs in Markdown, external pages, and third-party services (&lt;a href="https://github.com/nocobase/nocobase/pull/10406" rel="noopener noreferrer"&gt;#10406&lt;/a&gt;) by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/file-manager/storage/" rel="noopener noreferrer"&gt;Storage engine overview&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[UI layout]&lt;/strong&gt; Fix the issue where desktop routes may be empty after upgrading (&lt;a href="https://github.com/nocobase/nocobase/pull/10405" rel="noopener noreferrer"&gt;#10405&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed workflow task center menus so the active menu can be collapsed by clicking it again while retaining its selected highlight (&lt;a href="https://github.com/nocobase/nocobase/pull/10404" rel="noopener noreferrer"&gt;#10404&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Fix a crash when changing and drag-sorting Pro export fields. by katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.18
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-20&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[AI employees]&lt;/strong&gt; Added DeepSeek V4 Flash and V4 Pro Responses API support with reasoning continuity, native web search, citations, and model-aware web search controls (&lt;a href="https://github.com/nocobase/nocobase/pull/10337" rel="noopener noreferrer"&gt;#10337&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Multi-space]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Added search to space switchers and space management in both v1 and v2 by jiannx&lt;/li&gt;
&lt;li&gt;Added debounced display-name search to space switchers and space management in both v1 and v2 by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Email manager]&lt;/strong&gt; Email synchronization now uses recoverable background jobs with status history and safer full-resync cleanup, including Gmail Spam and Trash. by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth: LDAP]&lt;/strong&gt; Add LDAP user synchronization configuration support for client v2. by chenzhizdt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve LDAP and DingTalk user synchronization documentation and add all supported translations. (&lt;a href="https://github.com/nocobase/nocobase/pull/10382" rel="noopener noreferrer"&gt;#10382&lt;/a&gt;) by chenzhizdt
Reference: &lt;a href="//docs/docs/en/users-permissions/sync/sources/dingtalk.md"&gt;DingTalk&lt;/a&gt; / &lt;a href="//docs/docs/en/users-permissions/sync/sources/ldap.md"&gt;LDAP&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Added LDAP and DingTalk user data synchronization guides, including permissions, event modes, synchronized fields, department owners, and troubleshooting. (&lt;a href="https://github.com/nocobase/nocobase/pull/10377" rel="noopener noreferrer"&gt;#10377&lt;/a&gt;) by chenzhizdt
Reference: &lt;a href="https://github.com/chenzhizdt/nocobase/blob/docs/ldap-dingtalk/docs/docs/en/users-permissions/sync/sources/dingtalk.md" rel="noopener noreferrer"&gt;DingTalk synchronization&lt;/a&gt;, &lt;a href="https://github.com/chenzhizdt/nocobase/blob/docs/ldap-dingtalk/docs/docs/en/users-permissions/sync/sources/ldap.md" rel="noopener noreferrer"&gt;LDAP synchronization&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[lock-manager]&lt;/strong&gt; Added renewable local lock leases and ensured try-acquired locks are released safely across reuse and errors (&lt;a href="https://github.com/nocobase/nocobase/pull/10368" rel="noopener noreferrer"&gt;#10368&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; &lt;code&gt;nb api resource create&lt;/code&gt; now accepts a JSON array for &lt;code&gt;--values&lt;/code&gt; to create multiple records in a single request. (&lt;a href="https://github.com/nocobase/nocobase/pull/10325" rel="noopener noreferrer"&gt;#10325&lt;/a&gt;) by Molunerfinn&lt;br&gt;
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/fix/cli-resource-create-array-values/docs/docs/en/api/cli/api/resource/create.md" rel="noopener noreferrer"&gt;nb api resource create&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Grouped task-center items by workflow in the new client and kept workflow filters consistent across task types. (&lt;a href="https://github.com/nocobase/nocobase/pull/10374" rel="noopener noreferrer"&gt;#10374&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Tree filter blocks now support configurable default sorting. (&lt;a href="https://github.com/nocobase/nocobase/pull/10339" rel="noopener noreferrer"&gt;#10339&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Redis lock adapter]&lt;/strong&gt; Added renewable Redis lock leases and made reusable lock handles release safely during contention and errors by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Updated approval task grouping and timelines in the new client to match the legacy experience. by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Complete DingTalk client v2 support, including Stream synchronization, notification configuration, and automatic login improvements. by chenzhizdt&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed relationship picker labels when association form values contain only a related record ID. (&lt;a href="https://github.com/nocobase/nocobase/pull/10386" rel="noopener noreferrer"&gt;#10386&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed a false DatePicker missing-component error in v2 table filters. (&lt;a href="https://github.com/nocobase/nocobase/pull/10392" rel="noopener noreferrer"&gt;#10392&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed false missing-component console errors when opening v2 table filters. (&lt;a href="https://github.com/nocobase/nocobase/pull/10389" rel="noopener noreferrer"&gt;#10389&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an error that prevented filter conditions from being cleared in workflow settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/10388" rel="noopener noreferrer"&gt;#10388&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed missing frontend response notifications on Client V2 pages, including errors returned by pre-action workflows (&lt;a href="https://github.com/nocobase/nocobase/pull/10376" rel="noopener noreferrer"&gt;#10376&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fix Chinese text appearing when searching mobile select fields in English (&lt;a href="https://github.com/nocobase/nocobase/pull/10367" rel="noopener noreferrer"&gt;#10367&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix filter forms refreshing automatically in UI edit mode (&lt;a href="https://github.com/nocobase/nocobase/pull/10356" rel="noopener noreferrer"&gt;#10356&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Use Cascader by default for tree-structured relation fields in v2 filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10357" rel="noopener noreferrer"&gt;#10357&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix JS items incorrectly appearing in form field linkage rule actions (&lt;a href="https://github.com/nocobase/nocobase/pull/10363" rel="noopener noreferrer"&gt;#10363&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Fixed pages under &lt;code&gt;/v&lt;/code&gt; remaining in UI editing mode after switching to a role without page configuration permission (&lt;a href="https://github.com/nocobase/nocobase/pull/10359" rel="noopener noreferrer"&gt;#10359&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;li&gt;Automatically redirect to an accessible Settings tab when the current tab is unavailable (&lt;a href="https://github.com/nocobase/nocobase/pull/10332" rel="noopener noreferrer"&gt;#10332&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix mobile single-select relation fields not clearing when the selected record is tapped again (&lt;a href="https://github.com/nocobase/nocobase/pull/10346" rel="noopener noreferrer"&gt;#10346&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where China region fields cannot be added directly to filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10333" rel="noopener noreferrer"&gt;#10333&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed an issue where ctx.form.submit could not correctly submit form data. (&lt;a href="https://github.com/nocobase/nocobase/pull/10063" rel="noopener noreferrer"&gt;#10063&lt;/a&gt;) by gchust&lt;/li&gt;
&lt;li&gt;Redirect users without Settings access to the first available page (&lt;a href="https://github.com/nocobase/nocobase/pull/10331" rel="noopener noreferrer"&gt;#10331&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix incorrect editing and display of large decimal values in V2 fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10330" rel="noopener noreferrer"&gt;#10330&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Show a retryable localized fallback in v2 blocks when an external data source is unavailable. (&lt;a href="https://github.com/nocobase/nocobase/pull/10336" rel="noopener noreferrer"&gt;#10336&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[app]&lt;/strong&gt; Added runtime polyfills for modern JavaScript APIs in supported older browsers (&lt;a href="https://github.com/nocobase/nocobase/pull/10385" rel="noopener noreferrer"&gt;#10385&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[flow-engine]&lt;/strong&gt; Fix dropdown menus being cut off in short browser windows (&lt;a href="https://github.com/nocobase/nocobase/pull/10379" rel="noopener noreferrer"&gt;#10379&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[client]&lt;/strong&gt; Fix incomplete long sidebar menu titles and misaligned configuration toolbars (&lt;a href="https://github.com/nocobase/nocobase/pull/10380" rel="noopener noreferrer"&gt;#10380&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix &lt;code&gt;nb plugin import&lt;/code&gt; failing on plugin tarballs built by &lt;code&gt;yarn build --tar&lt;/code&gt;, and correct example code and scaffold structure in the plugin development docs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10351" rel="noopener noreferrer"&gt;#10351&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;li&gt;Fixed customized external database field display names being reset when selected tables are reloaded by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed prefix indexes on camel-case fields when underscored database naming is enabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10329" rel="noopener noreferrer"&gt;#10329&lt;/a&gt;) by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Fixed customized external database field display names being reset when a data source is submitted or its selected tables are changed (&lt;a href="https://github.com/nocobase/nocobase/pull/10387" rel="noopener noreferrer"&gt;#10387&lt;/a&gt;) by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow task recovery repeatedly enqueueing jobs whose executions have ended or expired. (&lt;a href="https://github.com/nocobase/nocobase/pull/10366" rel="noopener noreferrer"&gt;#10366&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed workflow execution page titles and added a workflow-list link for missing workflows (&lt;a href="https://github.com/nocobase/nocobase/pull/10360" rel="noopener noreferrer"&gt;#10360&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Disable workflow execution mode selection until a trigger type is selected. (&lt;a href="https://github.com/nocobase/nocobase/pull/10296" rel="noopener noreferrer"&gt;#10296&lt;/a&gt;) by Molunerfinn&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification: In-app message]&lt;/strong&gt; Fixed the in-app message template form showing workflow canvas variables instead of the variables provided by the page. (&lt;a href="https://github.com/nocobase/nocobase/pull/10180" rel="noopener noreferrer"&gt;#10180&lt;/a&gt;) by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Map]&lt;/strong&gt; Fixed region selection not finishing on double-click when map point data is displayed, and fixed AMap remaining in a loading state (&lt;a href="https://github.com/nocobase/nocobase/pull/10373" rel="noopener noreferrer"&gt;#10373&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Fix Markdown HTML previews in v2 details blocks under dark themes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10370" rel="noopener noreferrer"&gt;#10370&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[UI layout]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix mobile pages appearing in the desktop navigation (&lt;a href="https://github.com/nocobase/nocobase/pull/10375" rel="noopener noreferrer"&gt;#10375&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Hide the mobile UI Editor when the current role cannot configure the interface (&lt;a href="https://github.com/nocobase/nocobase/pull/10341" rel="noopener noreferrer"&gt;#10341&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix V2 Import drag-and-drop being blocked by the AI attachment overlay. (&lt;a href="https://github.com/nocobase/nocobase/pull/10384" rel="noopener noreferrer"&gt;#10384&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed AI employee chat streaming long responses causing other idle browser tabs to balloon to multiple gigabytes of memory (&lt;a href="https://github.com/nocobase/nocobase/pull/10352" rel="noopener noreferrer"&gt;#10352&lt;/a&gt;) by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JSON calculation]&lt;/strong&gt; Fixed JSON Query jobs losing structured parser errors and displaying &lt;code&gt;[object Object]&lt;/code&gt; (&lt;a href="https://github.com/nocobase/nocobase/pull/10344" rel="noopener noreferrer"&gt;#10344&lt;/a&gt;) by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Users]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Show backend errors when adding a user or changing a password in V2. (&lt;a href="https://github.com/nocobase/nocobase/pull/10364" rel="noopener noreferrer"&gt;#10364&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed required-field validation being skipped when submitting forms in UI editor mode (&lt;a href="https://github.com/nocobase/nocobase/pull/10371" rel="noopener noreferrer"&gt;#10371&lt;/a&gt;) by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix the extra submit step when selecting an existing file in a single-value field (&lt;a href="https://github.com/nocobase/nocobase/pull/10372" rel="noopener noreferrer"&gt;#10372&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed local storage files such as logos failing to load in sub-applications after stable URL redirects (&lt;a href="https://github.com/nocobase/nocobase/pull/10358" rel="noopener noreferrer"&gt;#10358&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed video previews not updating when switching between files (&lt;a href="https://github.com/nocobase/nocobase/pull/10345" rel="noopener noreferrer"&gt;#10345&lt;/a&gt;) by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Import records]&lt;/strong&gt; Fixed an issue where files could not be imported by dragging them into the v2 Import dialog. (&lt;a href="https://github.com/nocobase/nocobase/pull/10350" rel="noopener noreferrer"&gt;#10350&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Print]&lt;/strong&gt; Fix the missing print action model registration on V1 pages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10347" rel="noopener noreferrer"&gt;#10347&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Fixed tree filter permissions and connected tree-table expansion state, and corrected details pagination totals after filtering. (&lt;a href="https://github.com/nocobase/nocobase/pull/10361" rel="noopener noreferrer"&gt;#10361&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Verification]&lt;/strong&gt; Add a refresh button to the Verification list (&lt;a href="https://github.com/nocobase/nocobase/pull/10340" rel="noopener noreferrer"&gt;#10340&lt;/a&gt;) by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed configured content disappearing after reopening a kanban card's detail drawer (&lt;a href="https://github.com/nocobase/nocobase/pull/10334" rel="noopener noreferrer"&gt;#10334&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Action: Export records]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix table export errors after filtering by multiple relation fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10342" rel="noopener noreferrer"&gt;#10342&lt;/a&gt;) by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed a page crash when sorting an edited relation field in Export V2. (&lt;a href="https://github.com/nocobase/nocobase/pull/10335" rel="noopener noreferrer"&gt;#10335&lt;/a&gt;) by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Notification manager]&lt;/strong&gt; Fixed locale tester errors when no saved locale record exists, and allowed notification channel identifiers to be customized when creating channels (&lt;a href="https://github.com/nocobase/nocobase/pull/10311" rel="noopener noreferrer"&gt;#10311&lt;/a&gt;) by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Duplicate record]&lt;/strong&gt; Improve direct duplication failure feedback in v2 without duplicate API error messages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10327" rel="noopener noreferrer"&gt;#10327&lt;/a&gt;) by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External PostgreSQL]&lt;/strong&gt; Automatically load collections when editing an external relational data source in client v2. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Encryption]&lt;/strong&gt; Fixed bulk import failing with &lt;code&gt;model.changed is not a function&lt;/code&gt; when the collection contains an encryption field by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Fix export errors when using complex filters with the Export Pro plugin by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed asynchronous imports not respecting field-level import permissions by mytharcher&lt;/li&gt;
&lt;li&gt;Fixed asynchronously imported records not being associated with the current space by jiannx&lt;/li&gt;
&lt;li&gt;Clarified import results by showing the number of newly created records separately from updated records by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Webhook]&lt;/strong&gt; Fixed a 400 error when manually executing a webhook workflow without request headers by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt; Improved record history write performance for collections with large snapshot tables by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed approval workflows configured to return to any previous approval node only allowing the nearest upstream node by mytharcher&lt;/li&gt;
&lt;li&gt;Add data scope filtering to Client V2 related approval blocks by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix Approval blocks not refreshing after withdrawal or return by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Invalid approval workflows in the new to-do center are now disabled and display a configuration warning. by mytharcher&lt;/li&gt;
&lt;li&gt;Fix inconsistent subtable column widths in approval details by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed related approval blocks failing to load on Client V2 record detail pages by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Audit logs]&lt;/strong&gt; Fixed raw translation expressions appearing in the client V2 audit log Role column. by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Fixed Kingbase connections when creating supervised applications by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Building an Inventory Management System: Vibe Coding vs NocoBase + AI</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 24 Aug 2026 11:37:45 +0000</pubDate>
      <link>https://dev.to/nocobase/building-an-inventory-management-system-vibe-coding-vs-nocobase-ai-32ck</link>
      <guid>https://dev.to/nocobase/building-an-inventory-management-system-vibe-coding-vs-nocobase-ai-32ck</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/building-inventory-management-system-vibe-coding-vs-nocobase-ai" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/building-inventory-management-system-vibe-coding-vs-nocobase-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On &lt;a href="https://www.reddit.com/r/InventoryManagement/comments/1s8i5lq/quick_help_to_create_a_warehouse_management/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt; in r/InventoryManagement, someone wanted to use AI to build an inventory management app for a restaurant.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj4v3zigtfhq3fkng8253.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj4v3zigtfhq3fkng8253.png" alt="reddit1-wcwqye.png" width="657" height="320"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, the requirements seemed simple: enter products, receive goods, and issue goods. But once the system was actually being built, more questions appeared. How should different inventory units be handled? How should quantities change after receiving and issuing goods? Requirements that can be described in just a few sentences often involve more data and business rules than expected once they are implemented in a real system. People in the comments also pointed out that inventory management is much more complex than it appears on the surface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkazh4s4v7vrpedpzmi4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkazh4s4v7vrpedpzmi4i.png" alt="reddit2-ztg7en.png" width="671" height="128"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is also a common issue when using AI to build business systems. Generating a few pages is becoming increasingly fast, but the data relationships behind those pages, inventory movements, permissions, workflows, and whether the system can still be maintained when requirements change all need to be checked carefully.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If we use exactly the same inventory management requirements, &lt;strong&gt;what is the difference between letting AI generate an application from scratch and letting AI build the same system on NocoBase?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We built two versions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starting from a blank project, AI directly generated an independent inventory management application.&lt;/li&gt;
&lt;li&gt;AI built the same system on top of NocoBase's data models, permissions, and workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Next, we compare the two approaches across purchasing, receiving, inventory movement records, inventory counting, and later requirement changes, focusing on concrete differences in data relationships, business rules, permissions, and maintenance.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. What Can the Same Prompt Generate?
&lt;/h2&gt;

&lt;p&gt;The requirements we gave AI covered a relatively complete inventory management workflow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build an inventory management system for an auto-parts sales company to centrally manage products, categories, suppliers, purchase orders, and inventory; record receipts, issues, damage, and inventory adjustments; view inventory movement records; identify stockouts, low stock, overstock, and products with no outbound movement for a long time; support inventory counting, discrepancy review, and inventory adjustments; and provide a management workspace with interconnected demo data.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The requirements mainly contain five parts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Products and suppliers → Purchasing → Inventory movements → Inventory risks → Inventory counting and adjustments&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A purchase order may contain multiple products. After products are received, inventory quantities need to change, while the corresponding receipt record must also be preserved. If an inventory count finds a discrepancy, the system should not simply overwrite an inventory figure; it also needs to record the discrepancy, adjustment reason, and confirmation result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The full prompt is below. Both systems in the rest of this article were generated from this same requirement.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I am responsible for inventory management at an auto-parts sales company. We currently manage products, suppliers, purchasing, and inventory mainly with spreadsheets. As the number of products grows, we frequently encounter inaccurate inventory quantities, delayed discovery of stockouts, long-term overstock of some products, and inventory count discrepancies that are difficult to trace.

I want to build an inventory management system that centrally manages products, categories, suppliers, purchase orders, and inventory data. The system should record every receipt, issue, damage event, and inventory adjustment so that I can view current inventory at any time and understand why inventory quantities changed.

I want the system to automatically identify stockouts, low-stock items, overstock, and products with no outbound movement for a long time. Based on recent sales and inventory conditions, it should provide replenishment suggestions to help purchasing staff decide which products to buy, how much to buy, and which supplier to use.

The system also needs to support inventory counting. Staff can enter the actual quantity, and the system should automatically calculate inventory gains or losses. After review is completed, inventory should be adjusted according to the discrepancy, with a complete record retained.

Managers need an intuitive workspace showing total inventory, inventory value, recent receipts and issues, inventory risks, and pending items. The overall design should be clear and easy to use, allowing inventory staff to handle daily operations efficiently while helping managers quickly identify problems.

Based on the actual business requirements above, please design a reasonable functional structure, data relationships, and page interactions, and prepare some interconnected sample data so the system can directly demonstrate a complete inventory management process.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  First-Round Results
&lt;/h3&gt;

&lt;p&gt;We built the system in two ways: with Vibe Coding and with NocoBase + AI.&lt;/p&gt;

&lt;p&gt;From the pages alone, both versions already cover the main functions, including products, purchasing, receipts and issues, inventory counting, and data overview. Once we actually tested the systems, however, the difference in completeness became much clearer.&lt;/p&gt;

&lt;p&gt;In this generated result, &lt;strong&gt;NocoBase + AI had already created operational data tables, pages, and basic business relationships&lt;/strong&gt;. Product, supplier, and purchase-order data could be entered and linked normally. After the first round, the system was already relatively close to something that could be used in practice, and the next step was mainly to refine rules and operation details around the real business.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft8bkft4qrg2ghz9flutz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft8bkft4qrg2ghz9flutz.png" alt="NocoBase+AI data tables 1en-7j1slk.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc4d9vivmcyoxt3tau20x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc4d9vivmcyoxt3tau20x.png" alt="NocoBase+AI data tables en-grfhx4.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Vibe Coding version was still closer to a frontend prototype&lt;/strong&gt;. Although the pages already presented products, purchasing, receipts and issues, and inventory counting, the data was not yet truly interactive, and some buttons and actions could not complete actual business operations. To reach the same usage state, it would still need data persistence, APIs, business logic, permissions, and other pieces.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9m6og9pug7zz2tyha27y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9m6og9pug7zz2tyha27y.png" alt="Vibe Coding data tables en-m1oiop.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This difference comes from the starting point of the two approaches.&lt;/p&gt;

&lt;p&gt;Vibe Coding starts from a blank project. The database, APIs, pages, and business logic all need to be generated by AI step by step according to the current requirements.&lt;/p&gt;

&lt;p&gt;NocoBase + AI builds inside an existing application framework. When AI creates products, purchase orders, and inventory records, it can directly use existing capabilities for data relationships, pages, &lt;strong&gt;permissions, and workflows&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F86o3sgaazn2jznvvzmds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F86o3sgaazn2jznvvzmds.png" alt="NocoBase+AI permissions en-2t23w8.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Comparing the Two Inventory Management Systems in Real Business Workflows
&lt;/h2&gt;

&lt;p&gt;We selected a common inventory management workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create products and suppliers → Create purchase order → Receive goods → Generate an inventory movement record → Identify low stock → Start an inventory count → Review discrepancy → Adjust inventory&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Start with Products and Purchase Orders
&lt;/h3&gt;

&lt;p&gt;Start with the most basic data: products, suppliers, and purchase orders.&lt;/p&gt;

&lt;p&gt;Suppose the company purchases three types of auto parts from Supplier A. One purchase order contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;100 sets of brake pads&lt;/li&gt;
&lt;li&gt;200 air filters&lt;/li&gt;
&lt;li&gt;300 spark plugs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This order involves at least four types of records: supplier, purchase order, purchase order lines, and products. One order can contain multiple line items, and each line records a product, quantity, and unit price.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase + AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fms4pwgtpvmmxnd3mdy6v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fms4pwgtpvmmxnd3mdy6v.png" alt="NocoBase+AI Orders 1en-xvvf5i.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7czs56zz6fqa9lh7uvmj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7czs56zz6fqa9lh7uvmj.png" alt="NocoBase+AI Orders 2en-t7okhv.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F840wmf03wug700mvfz1w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F840wmf03wug700mvfz1w.png" alt="Vibe Coding Orders en-9095m6.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When checking an inventory management system, seeing a “Supplier” page and a “Purchase Order” page is not enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can these records reference one another and continue to be used during later receiving operations?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, can you view related products and purchase records from the supplier detail page? When opening a purchase order, can you see every product line? When receiving goods later, can the system still reference the data from this purchase order?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase + AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdbborcmiwmrvhb845gwo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdbborcmiwmrvhb845gwo.png" alt="NocoBase+AI products 1en-icuzi7.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fao2kf7vglfcd6kupukg3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fao2kf7vglfcd6kupukg3.png" alt="NocoBase+AI products 2en-ddthi5.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjyt4ed73ftruosb9oj4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjyt4ed73ftruosb9oj4.png" alt="Vibe Coding products en-3a614q.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Based on the current generated results, both systems already provide pages for these business objects. In NocoBase + AI, these business objects are built on a unified data model; in the Vibe Coding version, those relationships need to be maintained by the generated database structure and program logic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F13wsnsold51p1hx0f6sl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F13wsnsold51p1hx0f6sl.png" alt="NocoBase+AI data 1en-06qwhj.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F32lqlx8rkbibuaboqzst.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F32lqlx8rkbibuaboqzst.png" alt="NocoBase+AI data 2en-v44cvh.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Purchase Receiving and Inventory Movement Records
&lt;/h3&gt;

&lt;p&gt;After the purchase order is created, the next step is receiving.&lt;/p&gt;

&lt;p&gt;Suppose the brake pads already have 20 units in inventory and another 100 are received from this purchase order. After receiving, current inventory should become 120, and a new receipt record should be created and linked to the corresponding purchase order.&lt;/p&gt;

&lt;p&gt;The record also needs to retain the receiving time, operator, and other information. Later issues, damage, returns, or inventory-count adjustments should continue generating new inventory movement records.&lt;/p&gt;

&lt;p&gt;So we focus on three things: &lt;strong&gt;whether inventory is updated correctly, whether a corresponding record is preserved, and whether that record can be traced back to the original purchase order.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase + AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgo4k2a6pf002f2apa45d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgo4k2a6pf002f2apa45d.png" alt="NocoBase+AI inventory 1en-zhvk3s.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0fuepu48zczoct6kbwj7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0fuepu48zczoct6kbwj7.png" alt="NocoBase+AI inventory 2en-ie601d.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frd9ln3snuvs20ntc73y8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frd9ln3snuvs20ntc73y8.png" alt="Vibe Coding inventory en-tme7b7.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An inventory management system cannot store only the latest inventory figure. Receipts, issues, damage, and adjustments all need their own movement records so the source of the current inventory can be traced later.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Low Stock and Replenishment Decisions
&lt;/h3&gt;

&lt;p&gt;After inventory changes, managers also need to quickly identify which products have fallen below safety stock.&lt;/p&gt;

&lt;p&gt;For example, if a product has current inventory of 20 and safety stock of 50, the system should classify it as low stock. If safety stock is later changed to 30, the risk result should update accordingly.&lt;/p&gt;

&lt;p&gt;Both first versions already generated inventory-risk or similar management pages.&lt;/p&gt;

&lt;p&gt;But the source of the data still matters. Are these results directly derived from the inventory data created earlier?&lt;/p&gt;

&lt;p&gt;If the system also generates replenishment suggestions, it needs to calculate suggested quantities using current inventory, safety stock, target stock levels, and potentially historical outbound movements, while also retrieving the corresponding supplier information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase + AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1z79hfn8djeys91r2r64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1z79hfn8djeys91r2r64.png" alt="NocoBase+AI Inventory risk 1en-w09yw1.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvjw2q1c0o3kp57rqfl8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvjw2q1c0o3kp57rqfl8n.png" alt="NocoBase+AI Inventory risk 2en-8s89lt.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feb5l5fgyl5fj7vllrdef.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feb5l5fgyl5fj7vllrdef.png" alt="NocoBase+AI Inventory risk 3en-nfg8r2.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inventory risk is not standalone data. It comes from existing information such as current inventory, safety stock, products, and suppliers.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Inventory Count Discrepancies, Review, and Inventory Adjustments
&lt;/h3&gt;

&lt;p&gt;Suppose the system shows 100 units of a part, but warehouse staff physically count only 96.&lt;/p&gt;

&lt;p&gt;The counting staff first enter the actual quantity, and the system calculates a discrepancy of -4. But inventory should not immediately be changed to 96.&lt;/p&gt;

&lt;p&gt;The reason for those four missing units needs to be confirmed first. It may be an unrecorded issue, loss, an input error, or another cause. If counting staff can directly overwrite the original inventory figure after entering a count, it becomes difficult to determine later how the change occurred.&lt;/p&gt;

&lt;p&gt;So we added a more specific rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Counting staff can enter the actual quantity and discrepancy reason, but only after a reviewer confirms the result can the system formally adjust inventory.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The processing flow for one inventory-count discrepancy is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enter actual quantity → Calculate discrepancy -4 → Submit for review → Confirm adjustment → Inventory becomes 96 → Save adjustment record&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At this point, there is much more to check:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Is the discrepancy calculated automatically and moved into the correct status?&lt;/li&gt;
&lt;li&gt;Can users without review permission adjust inventory?&lt;/li&gt;
&lt;li&gt;After review, is inventory updated and an inventory movement record generated at the same time?&lt;/li&gt;
&lt;li&gt;Are the operator, time, and reason recorded?&lt;/li&gt;
&lt;li&gt;Are historical inventory-count results preserved?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This kind of requirement is difficult to solve simply by “generating an inventory count page.”&lt;/p&gt;

&lt;p&gt;In the Vibe Coding version, the system needs additional program logic to connect count status, review permissions, inventory updates, and adjustment records. For example, once a review is approved, the program must update inventory and create an adjustment record at the same time. Accounts without review permission must not be able to perform that operation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjnjivupzuavht1kh5dq9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjnjivupzuavht1kh5dq9.png" alt="Vibe Coding inventory updates en-hy3vfo.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The NocoBase + AI version uses existing data relationships, role permissions, and workflows to handle the same set of rules. After an inventory-count record is submitted, it enters a pending-review status. A reviewer confirms it, then inventory is updated and the corresponding adjustment record is preserved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fenecorsq289y0wrl8rqh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fenecorsq289y0wrl8rqh.png" alt="NocoBase+AI inventory-count record 1en-tn1rux.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff539g5mkcw3wha6itql9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff539g5mkcw3wha6itql9.png" alt="NocoBase+AI inventory-count record 2en-qnvizn.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Vibe Coding or NocoBase + AI: Which Should You Choose?
&lt;/h2&gt;

&lt;p&gt;After comparing purchasing, receiving, inventory risks, inventory counting, and the resulting features, the difference between the two approaches becomes more visible.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Comparison&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Vibe Coding&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;NocoBase + AI&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;First-Round Results&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;In this test, it was closer to a frontend prototype and still required additional data and business logic.&lt;/td&gt;
&lt;td&gt;In this test, it was already able to enter, link, and operate business data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Model&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Database structures, APIs, and data relationships need to be implemented within the project.&lt;/td&gt;
&lt;td&gt;Relationships between products, purchasing, inventory, and other business objects are built directly on a unified data model.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Permissions &amp;amp; Data Scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Permission logic needs to be developed and tested according to business rules.&lt;/td&gt;
&lt;td&gt;Roles, operation permissions, and data scopes can be configured directly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Business Processes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Status transitions, approvals, and automation require further development.&lt;/td&gt;
&lt;td&gt;Can be configured and adjusted directly through workflows.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Requirement Changes&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Changes may affect databases, APIs, pages, validation logic, and testing at the same time.&lt;/td&gt;
&lt;td&gt;Changes mainly focus on data models, pages, permissions, and workflows.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Extension Approach&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Extend and modify the system directly through code.&lt;/td&gt;
&lt;td&gt;Can be extended through configuration, while still supporting JS, plugins, and custom code when needed.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Future Maintenance&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;More dependent on developers and a complete codebase.&lt;/td&gt;
&lt;td&gt;Many business adjustments can continue to be handled through configuration, while complex requirements can move into the code layer.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  When Is NocoBase + AI a Better Fit?
&lt;/h3&gt;

&lt;p&gt;If you are building an internal business system for inventory management, procurement, CRM, or IT management, NocoBase + AI is generally a better fit.&lt;/p&gt;

&lt;p&gt;Its advantages mainly appear in four areas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. AI generates more than pages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Products, suppliers, purchase orders, inventory movement records, inventory-count records, permissions, and workflows created by AI become business objects inside NocoBase that can continue to be used and modified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Common back-office capabilities do not need to be rebuilt&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Data relationships, permissions, forms, workflows, and similar capabilities are already provided by NocoBase. Teams can spend more time on specific business rules such as how inventory should be calculated, who can see which warehouses, and how transfers should work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Later changes cost less&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When adding fields, adjusting pages, changing permissions, or adding workflows, many changes can be configured directly on the existing data model rather than repeatedly modifying frontend code, APIs, and database code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The scope of AI changes is clearer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI mainly operates on explicit objects such as data models, fields, pages, permissions, and workflows. As the system becomes more complex, it is easier to inspect which parts were affected by a change.&lt;/p&gt;

&lt;h3&gt;
  
  
  When Is Vibe Coding a Better Fit?
&lt;/h3&gt;

&lt;p&gt;Vibe Coding's main advantages are speed and flexibility. It can be a better choice when your project is focused on the following:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The project is still in an early validation stage.&lt;/strong&gt; The current goal is simply to build a demo, MVP, or disposable prototype quickly, without needing to consider complex data relationships, permissions, or long-term maintenance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. You already have an existing codebase and want AI to continue developing within that technical stack.&lt;/strong&gt; For example, your team already has its own frontend and backend projects and only wants AI to add pages, APIs, or business logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  How Can You Let AI Build on NocoBase?
&lt;/h3&gt;

&lt;p&gt;If you want to reproduce the NocoBase + AI approach above, first let your Coding Agent enter the NocoBase AI Builder environment, then submit the specific business requirements. During initialization, you can use the following instruction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Please follow the official NocoBase documentation to help me install the NocoBase CLI and complete initialization:
https://docs.nocobase.com/ai-builder

All subsequent applications must be built with NocoBase AI Builder and NocoBase Skills. Do not create a standalone React, Vue, or Next.js project.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After initialization is complete, submit the inventory management requirements from earlier and ask AI to prioritize NocoBase's data models, pages, permissions, and workflows. This keeps later generation and modification within the same application structure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If this article was helpful, feel free to share it with others who are exploring how to use AI to build business systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you also want to see what a system built with NocoBase + AI looks like in practice, you can request an online demo. If you want to try building one yourself, you can start with the AI Builder documentation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Try the NocoBase + AI Demo:&lt;/strong&gt; &lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;Request an online demo&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build it yourself:&lt;/strong&gt; &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;View the AI Builder documentation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready IT Operations System with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-baserow" rel="noopener noreferrer"&gt;NocoBase vs Baserow: Flexible Databases vs Enterprise Systems&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready CRM with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;How to Design an IT Asset Management System: Data Model, Lifecycle, and Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/best-smartsheet-alternatives" rel="noopener noreferrer"&gt;How to Choose a Smartsheet Alternative: 7 Tools Compared&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-complex-relational-models" rel="noopener noreferrer"&gt;5 Open-Source AI No-Code Tools for Complex Relational Data Models&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>Announcing NocoBase 2.2</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 24 Aug 2026 09:37:16 +0000</pubDate>
      <link>https://dev.to/nocobase/announcing-nocobase-22-3fnh</link>
      <guid>https://dev.to/nocobase/announcing-nocobase-22-3fnh</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/2.2.0" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/2.2.0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase 2.2 further completes the end-to-end V2 experience.&lt;/strong&gt; With the independent &lt;code&gt;/v/&lt;/code&gt; frontend entry and the new mobile experience now available, V2 is no longer just a redesigned page experience—it is becoming a more independent and lightweight frontend runtime. This release also upgrades the file access mechanism and continues to improve the comment block, AI knowledge base, workflows, and V2 compatibility across core plugins.&lt;/p&gt;

&lt;p&gt;If your application already relies primarily on V2 pages, 2.2 provides a more complete and lightweight V2 experience. If your application still mainly uses V1 pages, we recommend migrating your pages and plugins before switching to the new &lt;code&gt;/v/&lt;/code&gt; entry.&lt;/p&gt;

&lt;h2&gt;
  
  
  New features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  New independent &lt;code&gt;/v/&lt;/code&gt; frontend entry
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;/v/&lt;/code&gt; is a new, independently built frontend entry. NocoBase 2.0 introduced a major frontend refactor while retaining compatibility with V1 modules and pages. The &lt;code&gt;/v/&lt;/code&gt; build removes this legacy V1 compatibility: it can no longer create or render V1 pages and blocks and includes only V2 capabilities. It also delivers significant performance improvements and will become the primary target for future NocoBase development.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your production application already consists entirely of V2 pages, you can consider adopting the &lt;code&gt;/v/&lt;/code&gt; entry.&lt;/p&gt;

&lt;p&gt;If your application mainly uses V2 pages but still contains a small number of V1 pages, migrate those pages to V2 first.&lt;/p&gt;

&lt;p&gt;If your application still mainly uses V1 pages, we do not recommend switching directly to &lt;code&gt;/v/&lt;/code&gt;. Migrate the pages and related plugins first.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In most cases, you can enter the new frontend by adding the &lt;code&gt;/v/&lt;/code&gt; prefix to an existing path:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Original path
https://nocobase.example.com/admin/1xl0epqn6q3

# Independent V2 entry
https://nocobase.example.com/v/admin/1xl0epqn6q3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Set the default application entry
&lt;/h4&gt;

&lt;p&gt;Use the &lt;code&gt;APP_CLIENT_ENTRY_MODE&lt;/code&gt; environment variable to control the application entry mode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;legacy-default&lt;/code&gt;: both &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;/v/&lt;/code&gt; are available; &lt;code&gt;/&lt;/code&gt; is the default entry&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;modern-default&lt;/code&gt;: both &lt;code&gt;/&lt;/code&gt; and &lt;code&gt;/v/&lt;/code&gt; are available; &lt;code&gt;/v/&lt;/code&gt; is the default entry&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;modern-only&lt;/code&gt;: only &lt;code&gt;/v/&lt;/code&gt; is available&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Current status of &lt;code&gt;/v/&lt;/code&gt;
&lt;/h4&gt;

&lt;p&gt;The &lt;code&gt;/v/&lt;/code&gt; entry is being introduced progressively. It has several notable differences:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pages created with Page V1 are no longer displayed under &lt;code&gt;/v/&lt;/code&gt;. Pages created with Page V2 continue to work normally.&lt;/li&gt;
&lt;li&gt;Plugins adapted only for &lt;code&gt;client-v1&lt;/code&gt; are not loaded under &lt;code&gt;/v/&lt;/code&gt;. The &lt;code&gt;/v/&lt;/code&gt; entry loads only plugins adapted for &lt;code&gt;client-v2&lt;/code&gt;. See the &lt;a href="https://docs.nocobase.com/plugin-development/client/" rel="noopener noreferrer"&gt;client plugin development documentation&lt;/a&gt; for details.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most built-in NocoBase plugins have been adapted and migrated to client-v2 in this release, so most features are ready to use. A small number of plugins have not yet been migrated and will be handled progressively. Some plugin capabilities will receive future updates only under &lt;code&gt;/v/&lt;/code&gt;. Current differences include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The plugin list no longer shows deprecated plugins or plugins that support only NocoBase 1.x&lt;/li&gt;
&lt;li&gt;New Page V1 pages can no longer be created&lt;/li&gt;
&lt;li&gt;Public forms distinguish between V1 and V2, and V1 public forms are not displayed under &lt;code&gt;/v/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Approval workflows require their related UI to be reconfigured before they can be used under &lt;code&gt;/v/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The new mobile experience is available only under &lt;code&gt;/v/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The “AI employees / Data sources” tab has been removed&lt;/li&gt;
&lt;li&gt;Comment, calendar, expression, and external data collections have been removed&lt;/li&gt;
&lt;li&gt;Workflow manual nodes are not yet supported under &lt;code&gt;/v/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Badge counts cannot yet be added to menus&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plan the migration to &lt;code&gt;/v/&lt;/code&gt; according to your production environment and current use of V1 and V2 features.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/plugin-development/client/" rel="noopener noreferrer"&gt;Client plugin development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  File access upgrade: stable URLs, permission checks, and deployment changes
&lt;/h3&gt;

&lt;p&gt;NocoBase 2.2 introduces an important upgrade to the access mechanism for NocoBase-managed files. By default, attachments and files no longer expose local storage paths, object storage URLs, or presigned URLs as their business URLs. Instead, they use stable NocoBase URLs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/files/&amp;lt;app&amp;gt;/&amp;lt;dataSource&amp;gt;/&amp;lt;collection&amp;gt;/&amp;lt;id&amp;gt;&amp;lt;extname&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/files/main/main/attachments/42.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;APP_PUBLIC_PATH=/nocobase&lt;/code&gt; is configured, the corresponding subpath is added automatically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/nocobase/files/main/main/attachments/42.pdf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a stable URL is accessed, the request first goes to NocoBase. NocoBase checks the current user, role, view permission, and data scope for the target attachment or file collection. Once the check succeeds, NocoBase responds with a &lt;code&gt;302&lt;/code&gt; redirect to the actual URL generated by the storage engine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Stable URL → NocoBase identity and permission checks → 302 → Local or object storage URL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separates business content from physical storage addresses. If you change a bucket, CDN domain, signing strategy, or thumbnail rule, stable URLs already stored in business fields usually do not need to be updated. The everyday workflows for uploading attachments, displaying images, previewing files, and downloading files remain essentially unchanged.&lt;/p&gt;

&lt;h4&gt;
  
  
  Configure file URLs and public access independently
&lt;/h4&gt;

&lt;p&gt;For file storage engines, &lt;strong&gt;NocoBase URL&lt;/strong&gt; is the recommended default so that file access follows NocoBase role and data permissions. NocoBase 2.2 also provides separate options for scenarios that require direct storage URLs or public access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Original URL&lt;/strong&gt;: returns the storage engine URL directly, without NocoBase permission checks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Allow public access&lt;/strong&gt;: continues to return a NocoBase URL but skips file-record permission checks when the URL is accessed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4yai4eulhu3ndis95k19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4yai4eulhu3ndis95k19.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both Original URL and Allow public access expand the scope from which files can be accessed, so configure them carefully for your use case. After the settings are saved, the API response behavior changes for both existing and new files under the same storage engine, but no files are moved or uploaded again.&lt;/p&gt;

&lt;h4&gt;
  
  
  Check deployment configuration before upgrading
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;/files/&lt;/code&gt; is an authenticated NocoBase application route. It must not be handled as a static directory or fall through to the frontend SPA's &lt;code&gt;index.html&lt;/code&gt; fallback. Nginx and Caddy configurations generated by the current NocoBase CLI include the required rules automatically. If you maintain your reverse proxy manually, verify that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/files/&lt;/code&gt; is forwarded to NocoBase and evaluated before the SPA fallback rule&lt;/li&gt;
&lt;li&gt;When &lt;code&gt;APP_PUBLIC_PATH&lt;/code&gt; is configured, the corresponding subpath &lt;code&gt;/files/&lt;/code&gt; route is also forwarded, while the root &lt;code&gt;/files/&lt;/code&gt; route remains available for compatibility&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;302 Location&lt;/code&gt; returned by a stable URL is not cached&lt;/li&gt;
&lt;li&gt;When a page accesses the API cross-origin, its origin is included in &lt;code&gt;CORS_ORIGIN_WHITELIST&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;All cluster nodes and replicas are upgraded together so that &lt;code&gt;/files/&lt;/code&gt; requests cannot reach an older node&lt;/li&gt;
&lt;li&gt;When using an external NocoBase data source, the consuming instance and its related plugins are upgraded before the source instance&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Existing &lt;code&gt;/storage/uploads/...&lt;/code&gt;, CDN, and object storage URLs stored in historical Markdown, rich text, or business fields are not rewritten automatically. Once the new version is running, newly uploaded files and newly edited content may contain &lt;code&gt;/files/...&lt;/code&gt; URLs, which older versions do not recognize. Environments with strict rollback requirements should retain a database snapshot before reopening write access and verify the reverse proxy configuration in advance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Security boundaries
&lt;/h4&gt;

&lt;p&gt;Stable URLs provide a permission check before access, but NocoBase does not continuously proxy the file content. After permission checks succeed, the browser can still see the final storage URL. If that URL points to a public bucket, a public CDN, or an openly accessible local static directory, anyone who obtains it may still bypass NocoBase.&lt;/p&gt;

&lt;p&gt;For sensitive files such as contracts, identity documents, and internal materials, use storage-side controls such as private storage, short-lived signed URLs, or CDN authentication. For online Office previews, NocoBase issues a short-lived URL bound to the current file after the user's permissions are validated. This URL is valid for 10 minutes by default and must not be stored or distributed as a long-term sharing link.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/file-manager/stable-url" rel="noopener noreferrer"&gt;File manager: Stable URLs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/file-manager/storage/" rel="noopener noreferrer"&gt;File storage engines and access control&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/get-started/installation/env" rel="noopener noreferrer"&gt;Environment variables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/get-started/deployment/production" rel="noopener noreferrer"&gt;Production deployment&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/nocobase-cli/production/reverse-proxy/nginx" rel="noopener noreferrer"&gt;Nginx reverse proxy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/nocobase-cli/production/reverse-proxy/caddy" rel="noopener noreferrer"&gt;Caddy reverse proxy&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New mobile experience (&lt;code&gt;/v/&lt;/code&gt; only)
&lt;/h3&gt;

&lt;p&gt;The new mobile experience provides a &lt;code&gt;/v/mobile&lt;/code&gt; entry with a dedicated mobile layout.&lt;/p&gt;

&lt;p&gt;Mobile and desktop layouts share the same data sources and business data, while their menus, routes, and page content can be configured independently. This makes it possible to reorganize pages around mobile usage patterns and use a bottom tab bar as the primary navigation, which is better suited to mobile devices.&lt;/p&gt;

&lt;p&gt;NocoBase 2.2 further improves interactions such as mobile tab bars, scrolling in half-screen panels, embedded pages, and permission controls, making data entry, queries, approvals, and task processing more reliable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp37otx1goxsmdss6qpvn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp37otx1goxsmdss6qpvn.png" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/ui-layout/mobile" rel="noopener noreferrer"&gt;Mobile layout&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  New comment block
&lt;/h3&gt;

&lt;p&gt;The new comment block is no longer limited to the comments collection in the main data source and no longer needs to be used as a relationship block. You can add it to a record detail page or popup for tasks, articles, tickets, customers, and other records, allowing users to view, reply to, and add comments in the context of the current record.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffwjvsub0xkeui1f59mnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffwjvsub0xkeui1f59mnc.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/interface-builder/blocks/data-blocks/comment" rel="noopener noreferrer"&gt;Comment block&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI knowledge base enhancements
&lt;/h3&gt;

&lt;p&gt;The AI knowledge base has been migrated to client-v2 and now offers improved knowledge base and vector storage configuration:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When a workflow creates a knowledge base document, it can overwrite an existing document with the same document key&lt;/li&gt;
&lt;li&gt;Vector databases can be configured and managed&lt;/li&gt;
&lt;li&gt;Configuration entries are available for external knowledge bases and external vector storage extensions, allowing developers to use plugins to integrate vector databases or third-party retrieval services that NocoBase does not yet support out of the box&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo0sgk4heru7my1pmw4fv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fo0sgk4heru7my1pmw4fv.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/knowledge-base/knowledge-base/" rel="noopener noreferrer"&gt;AI knowledge base&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/knowledge-base/vector-database" rel="noopener noreferrer"&gt;Vector database&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/ai-employees/knowledge-base/dev/external-knowledge-base" rel="noopener noreferrer"&gt;External knowledge base plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Workflow: Database transaction node
&lt;/h3&gt;

&lt;p&gt;The new database transaction node runs a group of database operations within the same transaction. It is designed for scenarios in which multiple data-processing steps must either all succeed or all roll back—for example, creating an order, reducing inventory, writing order line items, and updating the order status.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F615eecfv5tx90lsxe2ou.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F615eecfv5tx90lsxe2ou.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/workflow/nodes/transaction" rel="noopener noreferrer"&gt;Database transaction node&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  V2 compatibility and experience improvements
&lt;/h2&gt;

&lt;p&gt;In addition to the new features above, NocoBase 2.2 continues to migrate and improve the V2 interfaces and interactions of commonly used features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User, department, and permission settings&lt;/li&gt;
&lt;li&gt;User data synchronization&lt;/li&gt;
&lt;li&gt;DingTalk authentication, synchronization, and notification settings&lt;/li&gt;
&lt;li&gt;WeCom authentication, synchronization, and notification settings&lt;/li&gt;
&lt;li&gt;Email management&lt;/li&gt;
&lt;li&gt;Form drafts&lt;/li&gt;
&lt;li&gt;Public forms&lt;/li&gt;
&lt;li&gt;Backup management&lt;/li&gt;
&lt;li&gt;Data source management&lt;/li&gt;
&lt;li&gt;Translation testing tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This release also fixes a range of issues affecting mobile devices, embedded pages, sub-application SSO, printing, and exporting, further improving the stability and consistency of the V2 entry.&lt;/p&gt;

&lt;p&gt;Related documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/users-permissions/sync/" rel="noopener noreferrer"&gt;User data synchronization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/users-permissions/sync/sources/dingtalk" rel="noopener noreferrer"&gt;Synchronize user data from DingTalk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.nocobase.com/users-permissions/sync/sources/wecom" rel="noopener noreferrer"&gt;Synchronize user data from WeCom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Plugins that no longer support V2 (deprecated but not yet removed)
&lt;/h2&gt;

&lt;p&gt;Some plugins were deprecated in earlier releases. A number of them can still be used for now, but they will be removed entirely in NocoBase 3.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plugin&lt;/th&gt;
&lt;th&gt;Replacement&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-audit-logs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-audit-logger&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-backup-restore&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-backups&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-block-multi-step-form&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;JS Block&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-charts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-data-visualization&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-collection-fdw&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Database synchronization&lt;/td&gt;
&lt;td&gt;Deprecated since 2.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-comments&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-block-comment&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 2.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-custom-variables&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Event flow&lt;/td&gt;
&lt;td&gt;Deprecated since 2.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-data-visualization-echarts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-data-visualization&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-disable-pm-add&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Deprecated since 2.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-field-component-mask&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;RunJS&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-graph-collection-manager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Deprecated since 2.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-mobile-client&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-ui-layout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-mobile&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-ui-layout&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-mock-collections&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;AI-powered app building&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-multi-app-manager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-app-supervisor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-multi-app-share-collection&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Deprecated since 1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-notifications&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-notification-manager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deprecated since 1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@nocobase/plugin-snapshot-field&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Deprecated since 1.0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>news</category>
    </item>
    <item>
      <title>How to Build a Production-Ready IT Operations System with AI and NocoBase</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Tue, 18 Aug 2026 07:50:34 +0000</pubDate>
      <link>https://dev.to/nocobase/how-to-build-a-production-ready-it-operations-system-with-ai-and-nocobase-5734</link>
      <guid>https://dev.to/nocobase/how-to-build-a-production-ready-it-operations-system-with-ai-and-nocobase-5734</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/build-it-operations-system-with-ai-nocobase&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;A recent post in Reddit's &lt;a href="https://www.reddit.com/r/sysadmin/comments/1ros5qd/im_honestly_starting_to_forget_how_it_was_before/" rel="noopener noreferrer"&gt;r/sysadmin&lt;/a&gt; described how one user built an ITSM system with AI over a weekend, covering both ticketing and asset management. In actual use, they found it more convenient than many products they had used before.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fanwbmvkijbkdffp9bs73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fanwbmvkijbkdffp9bs73.png" alt="Reddit1-wme36d.png" width="641" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The comments also raised a different view: AI can quickly generate a Help Desk that looks mature, but that does not mean it already has the data structure, permissions, security, and extensibility required for production use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz41cmqsq9vpl2kff5g9l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz41cmqsq9vpl2kff5g9l.png" alt="Reddit2-zb0k6t.png" width="634" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In our previous article, &lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;Enterprise IT Asset Management System Guide: From Requirements to Implementation&lt;/a&gt;, we introduced a way to design an IT asset management system: let AI understand and break down business requirements, let NocoBase provide the data, permissions, and automation capabilities, and then have people review and adjust the system against real business rules. &lt;strong&gt;This combines AI's efficiency in understanding requirements and generating systems with the data, permissions, security, workflows, and other foundations that enterprise applications actually need.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This time, we will take that approach further and focus more on efficiency. In about two hours, we will use AI and NocoBase to build a more complete IT operations system from scratch. It will cover IT asset inventory, device assignment and return, service catalog and service requests, device approval and delivery, maintenance management, software license management, an AI IT assistant, an operations knowledge base, and dashboards. We will also improve permissions, workflows, and data synchronization so the system can be used in production and continue evolving with business needs.&lt;/p&gt;

&lt;p&gt;🚀 Try applications built with NocoBase + AI online and see what AI-assisted application building looks like in practice: &lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;https://demo.nocobase.com/new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All screenshots in this article come from the NocoBase online Demo. The entire system, from design to implementation, was completed by an AI Coding Agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Start by Designing Around the Core Business Process
&lt;/h2&gt;

&lt;p&gt;You are the IT administrator at a mid-sized company. The company has both office-based and remote employees and needs to manage laptops, monitors, phones, printers, servers, network devices, and other office peripherals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4gs0e6ss36hv4yh5pvr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4gs0e6ss36hv4yh5pvr3.png" alt="Reddit2-y79mbx.png" width="634" height="141"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Employees regularly request new laptops, monitors, software licenses, VPN or remote-access permissions, and they also report password, MFA, device, and other IT issues. These requirements can eventually involve asset management, service requests, approvals, maintenance, software licenses, a knowledge base, permissions, and dashboards.&lt;/p&gt;

&lt;p&gt;But there is no need to put every scenario into the first version. We will start with one of the most common workflows:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Employee requests a laptop → Manager approves → IT selects a device and completes delivery&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Let AI Understand the Requirements First
&lt;/h3&gt;

&lt;p&gt;Once the business scenario and first-stage scope are clear, give the requirements to AI so it can understand the company's IT work and design the first version around laptop requests and delivery.&lt;/p&gt;

&lt;p&gt;You can use the following prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Please help me build an internal IT operations system in NocoBase.

The company has both office-based and remote employees and needs to manage laptops,
monitors, phones, printers, servers, network equipment, and other office peripherals.

Common IT requests include new laptop requests, monitor or peripheral requests,
software license requests, VPN / remote access, password or MFA issues,
and meeting-room equipment support.

Devices may go through registration, inventory, available for assignment, assigned to an employee,
in use, under maintenance, returned, reassigned, or retired. Employee requests may require
manager approval before IT completes delivery.

For the first stage, only build:
- Employees;
- Asset inventory;
- Device assignment and return records;
- Service catalog;
- Service requests;
- Laptop request and delivery workflow.

Maintenance, software licenses, operations manuals, reminders, and operational reporting
will be added later. Keep room for them, but do not create them yet.

Regular employees can submit and view their own requests; managers handle requests
that require approval; IT administrators maintain assets and complete device delivery.

Please return first:
1. The core data needed in the first stage;
2. How the data should be related;
3. How a laptop request should move through delivery;
4. Which pages and workflows you plan to create;
5. Which business rules still need confirmation.

Do not create anything yet. Wait for my confirmation before building.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Check AI's Understanding of the Business Rules
&lt;/h3&gt;

&lt;p&gt;Before AI starts creating the system, confirm that it has correctly understood these five key rules:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;One employee can be associated with multiple devices;&lt;/li&gt;
&lt;li&gt;One device has a clear current user;&lt;/li&gt;
&lt;li&gt;The asset's current status and historical assignment records are stored separately;&lt;/li&gt;
&lt;li&gt;After a service request is approved, the actual device still needs to be delivered;&lt;/li&gt;
&lt;li&gt;When the device is delivered, the asset information and assignment record are updated together.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The rule most likely to be missed is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An approved service request does not mean the device has already been delivered.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For a new laptop request, approval only means the request has been accepted. IT still needs to select an actual device, assign it, update the asset status, and save the assignment record.&lt;/p&gt;

&lt;p&gt;If AI treats “request approved” as the end of the workflow, ask it to add the IT processing and device delivery steps before creating the system.&lt;/p&gt;

&lt;p&gt;For guidance on collaborating more effectively with an AI Agent, see: &lt;a href="https://docs.nocobase.com/ai-builder/ai-portal/agent-workflow" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-builder/ai-portal/agent-workflow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Build and Check the Core Workflow
&lt;/h2&gt;

&lt;p&gt;After confirming the business rules above, let AI create the first-stage system based on the agreed design. Once it is generated, start from the laptop request workflow and verify step by step that assets, assignment records, service requests, and device delivery work together correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check the Asset Inventory
&lt;/h3&gt;

&lt;p&gt;When an employee is preparing to request a laptop, IT first needs to know what devices exist and which ones are currently available. &lt;strong&gt;Start by checking the asset inventory.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The asset inventory should at minimum record &lt;strong&gt;asset ID, serial number, device category, device name, model, location, current user, warranty expiration date, and current status&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnqjazjnpir803ri8ku6e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnqjazjnpir803ri8ku6e.png" alt="Assets1-xhzxsv.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz1dnv5sgjlbcr4sjxt4q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz1dnv5sgjlbcr4sjxt4q.png" alt="Assets2-pbnp9u.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can verify asset status against the following flow:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In inventory → Available → Assigned → In use → Under maintenance / Retired&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here, “Assigned” means IT has selected and allocated the device, but the employee has not formally started using it yet. After delivery is completed, the status changes to “In use.”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0yzryz6nivlz2lbtux22.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0yzryz6nivlz2lbtux22.gif" alt="Asset3-5jxmu9.gif" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The asset inventory mainly answers three questions: &lt;strong&gt;what is this device, who is using it and where, and can it still be assigned?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check the following points carefully:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Asset IDs must be unique to prevent duplicate registration;&lt;/li&gt;
&lt;li&gt;Devices under maintenance or retired must not appear in the available-device list;&lt;/li&gt;
&lt;li&gt;Assigned or in-use devices must have a clear current user so the same device is not assigned twice.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Also verify the employee-device relationship. One employee may use multiple devices at the same time, such as a laptop, monitor, and phone, while one device should have only one current user at a given time. The employee detail page should directly show all devices assigned to that employee.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u5fdgza9q2h5a2xn3qf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u5fdgza9q2h5a2xn3qf.png" alt="Assets4-l8s8bg.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the first-stage system is generated, enter three test devices: one “Available,” one “In use,” and one “Under maintenance.” Then filter for “Available” devices. Only the first device should appear, confirming that the status and filtering rules work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Record Every Device Assignment and Return
&lt;/h3&gt;

&lt;p&gt;The asset inventory records who currently uses a device, but past assignments and returns need to be stored separately. Therefore, &lt;strong&gt;the system also needs a dedicated device assignment and return record linked to both the device and the employee&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Each record should at minimum include the device, assigned employee, assignment time, return time, return condition, operator, and notes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjcwzqws86iqzl7zjw8t.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjcwzqws86iqzl7zjw8t.gif" alt="returned1-qazyjm.gif" width="600" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These two data types serve different purposes: the asset inventory stores the current state of the device, while assignment and return records preserve the history of each device movement.&lt;/p&gt;

&lt;p&gt;Next, simulate a complete device lifecycle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Assign to Employee A → Employee A returns it → Reassign to Employee B&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdb0uujunos0pfxv5lefn.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdb0uujunos0pfxv5lefn.gif" alt="returned2-bwa0li.gif" width="760" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Afterward, check that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The current user on the asset detail page is Employee B;&lt;/li&gt;
&lt;li&gt;Employee A's original assignment and return history is still preserved;&lt;/li&gt;
&lt;li&gt;The device no longer appears in Employee A's current-device list, but does appear in Employee B's list.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl2lj95ss195qlky2b5z1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl2lj95ss195qlky2b5z1.png" alt="returned3-mbvdxp.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fun4rmoyzgzd3c9cb2gx8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fun4rmoyzgzd3c9cb2gx8.png" alt="returned4-nyxmt3.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Extend IT Operations Capabilities on Top of the Core Workflow
&lt;/h2&gt;

&lt;p&gt;Once the laptop request and delivery workflow works end to end, the system already has the basic data for assets, service requests, approvals, and device movement. Next, give the follow-up requirements—device maintenance, software licenses, AI assistance, and operations manuals—to AI and let it extend the existing system. Afterward, test each new capability against a real business scenario.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NocoBase AI Builder&lt;/strong&gt; lets AI design, build, and continue adjusting enterprise applications from natural-language requirements: &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-builder&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  A Device Breaks — Add Maintenance Management
&lt;/h3&gt;

&lt;p&gt;Devices can fail after delivery. Once maintenance management is added, IT can create a maintenance record for the original device and save the problem description, date sent for repair, service provider, repair cost, maintenance status, and result.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmlk5xb6bvvld4l5w46xf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmlk5xb6bvvld4l5w46xf.png" alt="Maintenance management1-ctwwsd.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a device enters maintenance, the asset status must change as well:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In use → Under maintenance → In use / Available / Retired&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If the repaired device goes back to the same employee, restore its status to “In use.” If it returns to inventory, set it to “Available.” If it can no longer be used, set it to “Retired.”&lt;/p&gt;

&lt;p&gt;After creating a test maintenance record, first verify that the linked asset automatically changes to “Under maintenance” and disappears from the available-device list so it cannot be assigned again while being repaired.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg9fp0ymysoo4lc2kxqph.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fg9fp0ymysoo4lc2kxqph.gif" alt="Maintenance management2-sbyqjh.gif" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When maintenance is complete, separately test the three outcomes—“return to original employee,” “return to inventory,” and “retire device”—and confirm that the asset status matches the maintenance result.&lt;/p&gt;

&lt;h3&gt;
  
  
  More Software Requests — Manage Software Licenses
&lt;/h3&gt;

&lt;p&gt;As the number and variety of software products grow, IT needs to know how many seats have been purchased, how many are already in use, when each license renews, and the annual cost. &lt;strong&gt;The system therefore also needs software license management.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6qpm4mox0gmiudyo2mfc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6qpm4mox0gmiudyo2mfc.gif" alt="Software licenses1-91l5of.gif" width="600" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each software record should store the vendor, total seats, used seats, renewal date, annual cost, and current status. When handling a software request, first check whether seats remain available, then update the used-seat count after activation is completed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7ainxu1rghkxca2vs8q4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F7ainxu1rghkxca2vs8q4.gif" alt="Software licenses2-zquzcd.gif" width="760" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;These rules can also be handed to AI and automated through NocoBase Workflow.&lt;/strong&gt; For example, notify the owner and create a renewal task when a license is about to expire; if used seats exceed total seats, trigger an overage alert and let AI assist in deciding whether to expand capacity or reclaim accounts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0t58zu1n6vo7ruxh6xz3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0t58zu1n6vo7ruxh6xz3.png" alt="Software licenses3-3ngkzc.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Employees Cannot Explain the Problem Clearly — Let AI Structure the Request
&lt;/h3&gt;

&lt;p&gt;Employees do not always know which service to choose, and they may not describe an issue in the format IT prefers. For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;After resetting my password, I cannot connect to VPN and need access before today's customer call.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fitfafba8zpixr3nqyd54.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fitfafba8zpixr3nqyd54.png" alt="AI1-hfhx6x.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Employees can describe the issue in natural language and let AI turn it into a request title, service type, priority, and problem description. The employee can review or edit the result before formally submitting the request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd449swd41450k37tc4f8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd449swd41450k37tc4f8.png" alt="AI2-y5vyfx.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the example above as a test and confirm that the service type, priority, and description produced by AI can still be edited and submitted normally. This way, employees can describe issues in their own words while IT still receives a structured request that can be categorized and processed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Repeated Problems — Build an Operations Knowledge Base
&lt;/h3&gt;

&lt;p&gt;Issues involving VPN, MFA, new-laptop setup, and printer failures occur repeatedly. Verified solutions can be organized into operations manuals that record purpose, prerequisites, procedures, validation steps, and exception handling.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5pge57ibbl8z71mi2ce.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh5pge57ibbl8z71mi2ce.gif" alt="Operation Manual-bcp9qo.gif" width="600" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As the knowledge base grows, AI can also help IT find the relevant procedure based on the content of a request.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Validate the System with a Complete Workflow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Check Whether Everything Stays in Sync
&lt;/h3&gt;

&lt;p&gt;By this point, the system contains asset, service request, assignment, maintenance, and software-license data. &lt;strong&gt;The operations dashboard can summarize&lt;/strong&gt; available devices, devices in use, pending requests, devices under maintenance, license utilization, licenses approaching renewal, and software costs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp5vh3n7d288wr5iae8p6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp5vh3n7d288wr5iae8p6.gif" alt="Data dashboard-y7igov.gif" width="600" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The dashboard data comes directly from the asset, service request, maintenance, and license records built earlier.&lt;/p&gt;

&lt;p&gt;Change a device status, complete a service request, or add a maintenance record, then confirm that the related dashboard metrics update accordingly. Clicking a metric should also allow users to view the matching details.&lt;/p&gt;

&lt;h3&gt;
  
  
  Validate the Full Process from Request to Return
&lt;/h3&gt;

&lt;p&gt;Finally, return to the employee used in the earlier tests and run through the whole process again:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Request laptop → AI-assisted form filling → Manager approval → IT selects device → Create assignment record → Employee starts using device → Maintenance / Return → Asset status updates → Operations dashboard updates&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8mpk9z0fy20l84wn407u.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8mpk9z0fy20l84wn407u.gif" alt="Data dashboard-5c3w3l.gif" width="600" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After completing the process, verify these points:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Are the current user and asset status accurate?&lt;/li&gt;
&lt;li&gt;Are assignment, return, and maintenance histories fully preserved?&lt;/li&gt;
&lt;li&gt;Can the service request be traced back to the actual delivered device?&lt;/li&gt;
&lt;li&gt;Do employee, manager, and IT viewing and operation permissions match the design?&lt;/li&gt;
&lt;li&gt;Do status updates, reminders, and other automations execute correctly?&lt;/li&gt;
&lt;li&gt;Can AI-structured requests be edited and submitted normally?&lt;/li&gt;
&lt;li&gt;Do the related dashboard metrics update with business-state changes?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once these data and workflow behaviors match the business rules defined earlier, the system can first be released to a small group of users and then adjusted based on real feedback.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you already have a clear business scenario, start with the workflow your team knows best. Describe the real requirements, team roles, and handling process directly to AI, then let NocoBase provide the data, permissions, and other enterprise application foundations. Build, check, and adjust as you go. Get the core business process working first, then expand the system gradually based on actual use.&lt;/p&gt;

&lt;p&gt;If this article was useful, feel free to share it with others who are exploring how to use AI to build internal enterprise systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-baserow" rel="noopener noreferrer"&gt;NocoBase vs Baserow: Flexible Databases vs Enterprise Systems&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready CRM with AI and NocoBase&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;How to Design an IT Asset Management System: Data Model, Lifecycle, and Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/best-smartsheet-alternatives" rel="noopener noreferrer"&gt;How to Choose a Smartsheet Alternative: 7 Tools Compared&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-complex-relational-models" rel="noopener noreferrer"&gt;5 Open-Source AI No-Code Tools for Complex Relational Data Models&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
    <item>
      <title>Weekly Updates: Added Default Space Settings with Automatic User Assignment</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 17 Aug 2026 09:27:16 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-added-default-space-settings-with-automatic-user-assignment-n9e</link>
      <guid>https://dev.to/nocobase/weekly-updates-added-default-space-settings-with-automatic-user-assignment-n9e</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.1.41
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-16&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[lock-manager]&lt;/strong&gt; Added renewable local lock leases and ensured try-acquired locks are released safely across reuse and errors (&lt;a href="https://github.com/nocobase/nocobase/pull/10368" rel="noopener noreferrer"&gt;#10368&lt;/a&gt;)  by jiannx&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Redis lock adapter]&lt;/strong&gt; Added renewable Redis lock leases and made reusable lock handles release safely during contention and errors  by jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[File manager]&lt;/strong&gt; Fix the extra submit step when selecting an existing file in a single-value field (&lt;a href="https://github.com/nocobase/nocobase/pull/10372" rel="noopener noreferrer"&gt;#10372&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Markdown(Vditor)]&lt;/strong&gt; Fix Markdown HTML previews in v2 details blocks under dark themes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10370" rel="noopener noreferrer"&gt;#10370&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Encryption]&lt;/strong&gt; Fixed bulk import failing with &lt;code&gt;model.changed is not a function&lt;/code&gt; when the collection contains an encryption field  by cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Webhook]&lt;/strong&gt; Fixed a 400 error when manually executing a webhook workflow without request headers  by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.40
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-14&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Tree filter blocks now support configurable default sorting. (&lt;a href="https://github.com/nocobase/nocobase/pull/10339" rel="noopener noreferrer"&gt;#10339&lt;/a&gt;)  by jiannx&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix filter forms refreshing automatically in UI edit mode (&lt;a href="https://github.com/nocobase/nocobase/pull/10356" rel="noopener noreferrer"&gt;#10356&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Use Cascader by default for tree-structured relation fields in v2 filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10357" rel="noopener noreferrer"&gt;#10357&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix mobile single-select relation fields not clearing when the selected record is tapped again (&lt;a href="https://github.com/nocobase/nocobase/pull/10346" rel="noopener noreferrer"&gt;#10346&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where China region fields cannot be added directly to filter forms (&lt;a href="https://github.com/nocobase/nocobase/pull/10333" rel="noopener noreferrer"&gt;#10333&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix JS items incorrectly appearing in form field linkage rule actions (&lt;a href="https://github.com/nocobase/nocobase/pull/10363" rel="noopener noreferrer"&gt;#10363&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JSON calculation]&lt;/strong&gt; Fixed JSON Query jobs losing structured parser errors and displaying &lt;code&gt;[object Object]&lt;/code&gt; (&lt;a href="https://github.com/nocobase/nocobase/pull/10344" rel="noopener noreferrer"&gt;#10344&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Action: Export records]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed a page crash when sorting an edited relation field in Export V2. (&lt;a href="https://github.com/nocobase/nocobase/pull/10335" rel="noopener noreferrer"&gt;#10335&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;Fix table export errors after filtering by multiple relation fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10342" rel="noopener noreferrer"&gt;#10342&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Kanban]&lt;/strong&gt; Fixed configured content disappearing after reopening a kanban card's detail drawer (&lt;a href="https://github.com/nocobase/nocobase/pull/10334" rel="noopener noreferrer"&gt;#10334&lt;/a&gt;)  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed video previews not updating when switching between files (&lt;a href="https://github.com/nocobase/nocobase/pull/10345" rel="noopener noreferrer"&gt;#10345&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Action: Import records Pro]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed asynchronously imported records not being associated with the current space  by jiannx&lt;/li&gt;
&lt;li&gt;Clarified import results by showing the number of newly created records separately from updated records  by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix inconsistent subtable column widths in approval details  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Add data scope filtering to Client V2 related approval blocks  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.39
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-11&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fixed an issue where ctx.form.submit could not correctly submit form data. (&lt;a href="https://github.com/nocobase/nocobase/pull/10063" rel="noopener noreferrer"&gt;#10063&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[database]&lt;/strong&gt; Fixed prefix indexes on camel-case fields when underscored database naming is enabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10329" rel="noopener noreferrer"&gt;#10329&lt;/a&gt;)  by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Duplicate record]&lt;/strong&gt; Improve direct duplication failure feedback in v2 without duplicate API error messages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10327" rel="noopener noreferrer"&gt;#10327&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Record history]&lt;/strong&gt; Improved record history write performance for collections with large snapshot tables  by 2013xile&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix the issue where removed one-to-many relation records cannot be selected again in approval forms  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.38
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Clarified the default JavaScript Worker concurrency behavior and when to configure a concurrency limit (&lt;a href="https://github.com/nocobase/nocobase/pull/10317" rel="noopener noreferrer"&gt;#10317&lt;/a&gt;)  by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/workflow/nodes/javascript" rel="noopener noreferrer"&gt;JavaScript node&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; JavaScript workflow nodes now queue asynchronous Worker execution and limit per-process Worker concurrency to reduce resource spikes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10280" rel="noopener noreferrer"&gt;#10280&lt;/a&gt;)  by mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed popup record variables and association blocks for custom non-Sequelize data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/10272" rel="noopener noreferrer"&gt;#10272&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;Fixed incorrect variable resolution for form field values (&lt;a href="https://github.com/nocobase/nocobase/pull/10319" rel="noopener noreferrer"&gt;#10319&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed file downloads failing after previewing cross-origin images when browser cache entries lack CORS response headers (&lt;a href="https://github.com/nocobase/nocobase/pull/10313" rel="noopener noreferrer"&gt;#10313&lt;/a&gt;)  by mytharcher&lt;br&gt;
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/fix/file-manager-download-cors-cache/docs/docs/en/file-manager/file-preview/index.md" rel="noopener noreferrer"&gt;File Preview&lt;/a&gt; / &lt;a href="https://github.com/nocobase/nocobase/blob/fix/file-manager-download-cors-cache/docs/docs/en/file-manager/storage/aliyun-oss.md" rel="noopener noreferrer"&gt;Aliyun OSS&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  next
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fit0xys8cxci7kol0jjde.png" alt="next.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.2.0-beta.17
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Add Date variables and optional formatted output to V2 field-value editors. (&lt;a href="https://github.com/nocobase/nocobase/pull/10289" rel="noopener noreferrer"&gt;#10289&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI employees can now be assigned skills from the employee settings page. Skills are built from plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/10237" rel="noopener noreferrer"&gt;#10237&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;li&gt;Added UI navigation for supported LLM service CLI commands, including provider preselection when creating a service. (&lt;a href="https://github.com/nocobase/nocobase/pull/10210" rel="noopener noreferrer"&gt;#10210&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Multi-space]&lt;/strong&gt; Added default-space configuration so newly created users automatically join the selected default space.  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Added UI navigation for creating and editing vector databases from CLI commands, with provider preselection for new databases.  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[undefined]&lt;/strong&gt; Clarified the default JavaScript Worker concurrency behavior and when to configure a concurrency limit (&lt;a href="https://github.com/nocobase/nocobase/pull/10317" rel="noopener noreferrer"&gt;#10317&lt;/a&gt;)  by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/workflow/nodes/javascript" rel="noopener noreferrer"&gt;JavaScript node&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; JavaScript workflow nodes now queue asynchronous Worker execution and limit per-process Worker concurrency to reduce resource spikes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10280" rel="noopener noreferrer"&gt;#10280&lt;/a&gt;)  by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Add field search to v2 import and export action settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/10261" rel="noopener noreferrer"&gt;#10261&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Batch update]&lt;/strong&gt; Support configurable after-success behavior for v2 Update record and Bulk update actions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10278" rel="noopener noreferrer"&gt;#10278&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Fix unstable test cases (&lt;a href="https://github.com/nocobase/nocobase/pull/10246" rel="noopener noreferrer"&gt;#10246&lt;/a&gt;)  by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow]&lt;/strong&gt; Workflow create and update nodes now support combining text with variables when assigning string and text fields (&lt;a href="https://github.com/nocobase/nocobase/pull/10238" rel="noopener noreferrer"&gt;#10238&lt;/a&gt;)  by mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Add field search to v2 Import Pro and Export Pro action settings.  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Aligned the vector database list styling with other settings tables  by cgyrock&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed Kanban column quick create records not inheriting the selected group value (&lt;a href="https://github.com/nocobase/nocobase/pull/10321" rel="noopener noreferrer"&gt;#10321&lt;/a&gt;)  by jiannx&lt;/li&gt;
&lt;li&gt;Fix missing and incorrectly resolved &lt;code&gt;Current popup&lt;/code&gt; parent record variables in v2 popup-subtable add-new and edit dialogs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10292" rel="noopener noreferrer"&gt;#10292&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed parent item variables resolving to the wrong level when assigning association field values in sub-tables. (&lt;a href="https://github.com/nocobase/nocobase/pull/10249" rel="noopener noreferrer"&gt;#10249&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;Fix the cancel button language in mobile selection lists (&lt;a href="https://github.com/nocobase/nocobase/pull/10297" rel="noopener noreferrer"&gt;#10297&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing Current record variables in v2 JS column event-flow conditions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10279" rel="noopener noreferrer"&gt;#10279&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed migration packages omitting many-to-many through-table data after an application restart (&lt;a href="https://github.com/nocobase/nocobase/pull/10306" rel="noopener noreferrer"&gt;#10306&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;li&gt;Fixed MSSQL queries failing when filtering to-many relations with pagination and sorting by a root collection field (&lt;a href="https://github.com/nocobase/nocobase/pull/10224" rel="noopener noreferrer"&gt;#10224&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed formula fields being converted to number fields after synchronizing fields from the database (&lt;a href="https://github.com/nocobase/nocobase/pull/10303" rel="noopener noreferrer"&gt;#10303&lt;/a&gt;)  by 2013xile&lt;/li&gt;
&lt;li&gt;Fixed external data source table synchronization leaving removed collections registered in the database manager (&lt;a href="https://github.com/nocobase/nocobase/pull/10209" rel="noopener noreferrer"&gt;#10209&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[auth]&lt;/strong&gt; Fixed occasional &lt;code&gt;Invalid CSRF token&lt;/code&gt; errors on API requests in cross-origin deployments (&lt;a href="https://github.com/nocobase/nocobase/pull/10245" rel="noopener noreferrer"&gt;#10245&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Fixed Tree block searches showing placeholder nodes when no business-field records matched (&lt;a href="https://github.com/nocobase/nocobase/pull/10323" rel="noopener noreferrer"&gt;#10323&lt;/a&gt;)  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Gantt]&lt;/strong&gt; Fixed custom record colors not being applied to short Gantt task bars (&lt;a href="https://github.com/nocobase/nocobase/pull/10322" rel="noopener noreferrer"&gt;#10322&lt;/a&gt;)  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed incorrect variable resolution for form field values (&lt;a href="https://github.com/nocobase/nocobase/pull/10319" rel="noopener noreferrer"&gt;#10319&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;Fixed popup record variables and association blocks for custom non-Sequelize data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/10272" rel="noopener noreferrer"&gt;#10272&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prevent repeated V2 backup restore submissions while a restore request is in progress. (&lt;a href="https://github.com/nocobase/nocobase/pull/10262" rel="noopener noreferrer"&gt;#10262&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;Fix duplicate backups from async exports (&lt;a href="https://github.com/nocobase/nocobase/pull/10300" rel="noopener noreferrer"&gt;#10300&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Prevented clearing a field interface directly from the Configure fields table. (&lt;a href="https://github.com/nocobase/nocobase/pull/10288" rel="noopener noreferrer"&gt;#10288&lt;/a&gt;)  by hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed file downloads failing after previewing cross-origin images when browser cache entries lack CORS response headers (&lt;a href="https://github.com/nocobase/nocobase/pull/10313" rel="noopener noreferrer"&gt;#10313&lt;/a&gt;)  by mytharcher
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/fix/file-manager-download-cors-cache/docs/docs/en/file-manager/file-preview/index.md" rel="noopener noreferrer"&gt;File Preview&lt;/a&gt; / &lt;a href="https://github.com/nocobase/nocobase/blob/fix/file-manager-download-cors-cache/docs/docs/en/file-manager/storage/aliyun-oss.md" rel="noopener noreferrer"&gt;Aliyun OSS&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fixed shared attachments such as the system logo not loading for authenticated member users (&lt;a href="https://github.com/nocobase/nocobase/pull/10268" rel="noopener noreferrer"&gt;#10268&lt;/a&gt;)  by mytharcher&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Collection field: Sequence]&lt;/strong&gt; Fixed duplicate automatic sequence values after migration when multiple records share the latest creation time (&lt;a href="https://github.com/nocobase/nocobase/pull/10239" rel="noopener noreferrer"&gt;#10239&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the untranslated Settings tab in the AI plugin's client-v2 settings pages (&lt;a href="https://github.com/nocobase/nocobase/pull/10234" rel="noopener noreferrer"&gt;#10234&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;li&gt;AI employee actions now support linkage rules for conditional visibility in v2 forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10298" rel="noopener noreferrer"&gt;#10298&lt;/a&gt;)  by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[UI templates]&lt;/strong&gt; Fix the issue where table blocks load data after returning to a page with empty filters (&lt;a href="https://github.com/nocobase/nocobase/pull/9890" rel="noopener noreferrer"&gt;#9890&lt;/a&gt;)  by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Localization]&lt;/strong&gt; Fixed a crash when opening Localization settings with the Lina AI assistant entry. (&lt;a href="https://github.com/nocobase/nocobase/pull/10293" rel="noopener noreferrer"&gt;#10293&lt;/a&gt;)  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Fixed an issue where manually executing a workflow with &lt;code&gt;autoRevision=0&lt;/code&gt; could still create a new revision. (&lt;a href="https://github.com/nocobase/nocobase/pull/10243" rel="noopener noreferrer"&gt;#10243&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow Workers not exiting after scripts returned or asynchronous workflows timed out (&lt;a href="https://github.com/nocobase/nocobase/pull/10241" rel="noopener noreferrer"&gt;#10241&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed external NocoBase files and attachment fields failing to load in AI workflows  by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External SQL Server]&lt;/strong&gt; N/A — regression test coverage only  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External MySQL]&lt;/strong&gt; Fixed previously selected external database tables disappearing after adding new tables.  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed PGVector knowledge base searches consuming unused PostgreSQL pool connections and creating duplicate pools for different vector tables.  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed many-to-many through-table migration data after application restarts and classified migration rules as system data  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Template print]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed unwanted spacing between Latin and East Asian text in PDF files generated from DOCX templates.  by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix missing external data source fields in approval views  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing field values in approval sub-tables  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix approval comment default values when using RunJS  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where removed one-to-many relation records cannot be selected again in approval forms  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Allow approval comments to use configurable default values  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Prevented app creation with database identifiers that do not start with an English letter or contain unsupported characters.  by hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Fixed DingTalk notification channels losing the selected authenticator when saved from the v2 channel form  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth: LDAP]&lt;/strong&gt; Fixed LDAP login when a user DN mixes UTF-8 escapes with escaped syntax characters such as commas.  by hongboji&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v3.0.0-alpha.9
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-11&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[cli]&lt;/strong&gt; &lt;code&gt;nb api resource create&lt;/code&gt; now accepts a JSON array for &lt;code&gt;--values&lt;/code&gt; to create multiple records in a single request. (&lt;a href="https://github.com/nocobase/nocobase/pull/10325" rel="noopener noreferrer"&gt;#10325&lt;/a&gt;)  by Molunerfinn
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/fix/cli-resource-create-array-values/docs/docs/en/api/cli/api/resource/create.md" rel="noopener noreferrer"&gt;nb api resource create&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix incorrect editing and display of large decimal values in V2 fields. (&lt;a href="https://github.com/nocobase/nocobase/pull/10330" rel="noopener noreferrer"&gt;#10330&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed an issue where ctx.form.submit could not correctly submit form data. (&lt;a href="https://github.com/nocobase/nocobase/pull/10063" rel="noopener noreferrer"&gt;#10063&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;Automatically redirect to an accessible Settings tab when the current tab is unavailable (&lt;a href="https://github.com/nocobase/nocobase/pull/10332" rel="noopener noreferrer"&gt;#10332&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed Kanban column quick create records not inheriting the selected group value (&lt;a href="https://github.com/nocobase/nocobase/pull/10321" rel="noopener noreferrer"&gt;#10321&lt;/a&gt;)  by jiannx&lt;/li&gt;
&lt;li&gt;Redirect users without Settings access to the first available page (&lt;a href="https://github.com/nocobase/nocobase/pull/10331" rel="noopener noreferrer"&gt;#10331&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed prefix indexes on camel-case fields when underscored database naming is enabled (&lt;a href="https://github.com/nocobase/nocobase/pull/10329" rel="noopener noreferrer"&gt;#10329&lt;/a&gt;)  by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Gantt]&lt;/strong&gt; Fixed custom record colors not being applied to short Gantt task bars (&lt;a href="https://github.com/nocobase/nocobase/pull/10322" rel="noopener noreferrer"&gt;#10322&lt;/a&gt;)  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Block: Tree]&lt;/strong&gt; Fixed Tree block searches showing placeholder nodes when no business-field records matched (&lt;a href="https://github.com/nocobase/nocobase/pull/10323" rel="noopener noreferrer"&gt;#10323&lt;/a&gt;)  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Duplicate record]&lt;/strong&gt; Improve direct duplication failure feedback in v2 without duplicate API error messages. (&lt;a href="https://github.com/nocobase/nocobase/pull/10327" rel="noopener noreferrer"&gt;#10327&lt;/a&gt;)  by katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Record history]&lt;/strong&gt; Improved record history write performance for collections with large snapshot tables  by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix missing return scope options in Client V2 approval forms  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the issue where removed one-to-many relation records cannot be selected again in approval forms  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[DingTalk]&lt;/strong&gt; Fixed DingTalk notification channels losing the selected authenticator when saved from the v2 channel form  by jiannx&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v3.0.0-alpha.8
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-10&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Add Date variables and optional formatted output to V2 field-value editors. (&lt;a href="https://github.com/nocobase/nocobase/pull/10289" rel="noopener noreferrer"&gt;#10289&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Portal manager]&lt;/strong&gt; Show an access denied message when users do not have permission to access a Portal (&lt;a href="https://github.com/nocobase/nocobase/pull/10275" rel="noopener noreferrer"&gt;#10275&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Connect coding agent]&lt;/strong&gt; Copy a ready-to-paste prompt from an AI Portal card to connect a coding agent to the instance  by Albert-mah&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clarified the default JavaScript Worker concurrency behavior and when to configure a concurrency limit (&lt;a href="https://github.com/nocobase/nocobase/pull/10317" rel="noopener noreferrer"&gt;#10317&lt;/a&gt;)  by mytharcher
Reference: &lt;a href="https://docs.nocobase.com/workflow/nodes/javascript" rel="noopener noreferrer"&gt;JavaScript node&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Add a model selection guide with evaluation dimensions and a color-coded model comparison table. (&lt;a href="https://github.com/nocobase/nocobase/pull/10295" rel="noopener noreferrer"&gt;#10295&lt;/a&gt;)  by Charls-Wu&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[cli]&lt;/strong&gt; fix: incorrect author identity in nb portal push commits (&lt;a href="https://github.com/nocobase/nocobase/pull/10315" rel="noopener noreferrer"&gt;#10315&lt;/a&gt;)  by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Portal manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve Portal access check efficiency (&lt;a href="https://github.com/nocobase/nocobase/pull/10302" rel="noopener noreferrer"&gt;#10302&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Show a concise placeholder when Portal access cannot be configured directly (&lt;a href="https://github.com/nocobase/nocobase/pull/10301" rel="noopener noreferrer"&gt;#10301&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; JavaScript workflow nodes now queue asynchronous Worker execution and limit per-process Worker concurrency to reduce resource spikes. (&lt;a href="https://github.com/nocobase/nocobase/pull/10280" rel="noopener noreferrer"&gt;#10280&lt;/a&gt;)  by mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Verification]&lt;/strong&gt; Add a refresh button to the Verification settings list (&lt;a href="https://github.com/nocobase/nocobase/pull/10299" rel="noopener noreferrer"&gt;#10299&lt;/a&gt;)  by zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Show loading feedback when enabling or disabling plugins (&lt;a href="https://github.com/nocobase/nocobase/pull/10310" rel="noopener noreferrer"&gt;#10310&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Hide the retry button while the app is running a command (&lt;a href="https://github.com/nocobase/nocobase/pull/10290" rel="noopener noreferrer"&gt;#10290&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix the cancel button language in mobile selection lists (&lt;a href="https://github.com/nocobase/nocobase/pull/10297" rel="noopener noreferrer"&gt;#10297&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fixed parent item variables resolving to the wrong level when assigning association field values in sub-tables. (&lt;a href="https://github.com/nocobase/nocobase/pull/10249" rel="noopener noreferrer"&gt;#10249&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;Fix missing and incorrectly resolved &lt;code&gt;Current popup&lt;/code&gt; parent record variables in v2 popup-subtable add-new and edit dialogs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10292" rel="noopener noreferrer"&gt;#10292&lt;/a&gt;)  by katherinehhh&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed migration packages omitting many-to-many through-table data after an application restart (&lt;a href="https://github.com/nocobase/nocobase/pull/10306" rel="noopener noreferrer"&gt;#10306&lt;/a&gt;)  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed formula fields being converted to number fields after synchronizing fields from the database (&lt;a href="https://github.com/nocobase/nocobase/pull/10303" rel="noopener noreferrer"&gt;#10303&lt;/a&gt;)  by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[undefined]&lt;/strong&gt; fix the issue unable to create portal from local (&lt;a href="https://github.com/nocobase/nocobase/pull/10304" rel="noopener noreferrer"&gt;#10304&lt;/a&gt;)  by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Flow engine]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed incorrect variable resolution for form field values (&lt;a href="https://github.com/nocobase/nocobase/pull/10319" rel="noopener noreferrer"&gt;#10319&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;li&gt;Fixed popup record variables and association blocks for custom non-Sequelize data sources (&lt;a href="https://github.com/nocobase/nocobase/pull/10272" rel="noopener noreferrer"&gt;#10272&lt;/a&gt;)  by gchust&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed the AI employee chat entry briefly appearing while a page is loading or redirecting. (&lt;a href="https://github.com/nocobase/nocobase/pull/10309" rel="noopener noreferrer"&gt;#10309&lt;/a&gt;)  by cgyrock&lt;/li&gt;
&lt;li&gt;AI employee actions now support linkage rules for conditional visibility in v2 forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10298" rel="noopener noreferrer"&gt;#10298&lt;/a&gt;)  by jiannx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed file downloads failing after previewing cross-origin images when browser cache entries lack CORS response headers (&lt;a href="https://github.com/nocobase/nocobase/pull/10313" rel="noopener noreferrer"&gt;#10313&lt;/a&gt;)  by mytharcher&lt;br&gt;
Reference: &lt;a href="https://github.com/nocobase/nocobase/blob/fix/file-manager-download-cors-cache/docs/docs/en/file-manager/file-preview/index.md" rel="noopener noreferrer"&gt;File Preview&lt;/a&gt; / &lt;a href="https://github.com/nocobase/nocobase/blob/fix/file-manager-download-cors-cache/docs/docs/en/file-manager/storage/aliyun-oss.md" rel="noopener noreferrer"&gt;Aliyun OSS&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Action: Batch edit]&lt;/strong&gt; Corrected built-in plugin documentation to show that these plugins are enabled by default (&lt;a href="https://github.com/nocobase/nocobase/pull/10314" rel="noopener noreferrer"&gt;#10314&lt;/a&gt;)  by hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Portal manager]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix compatibility issues when older AI Portals check access permissions (&lt;a href="https://github.com/nocobase/nocobase/pull/10307" rel="noopener noreferrer"&gt;#10307&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix incorrect Portal URLs when the name is x or v (&lt;a href="https://github.com/nocobase/nocobase/pull/10305" rel="noopener noreferrer"&gt;#10305&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Keep Portal titles unchanged in role permissions (&lt;a href="https://github.com/nocobase/nocobase/pull/10291" rel="noopener noreferrer"&gt;#10291&lt;/a&gt;)  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt; Fix duplicate backups from async exports (&lt;a href="https://github.com/nocobase/nocobase/pull/10300" rel="noopener noreferrer"&gt;#10300&lt;/a&gt;)  by gchust&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow]&lt;/strong&gt; Disable workflow execution mode selection until a trigger type is selected. (&lt;a href="https://github.com/nocobase/nocobase/pull/10296" rel="noopener noreferrer"&gt;#10296&lt;/a&gt;)  by Molunerfinn&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed external NocoBase files and attachment fields failing to load in AI workflows  by 2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed many-to-many through-table migration data after application restarts and classified migration rules as system data  by cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix approval application cards not showing submitted content immediately  by zhangzhonghe&lt;/li&gt;
&lt;li&gt;Align the V2 approval message template page with the V1 layout and actions  by zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>news</category>
      <category>opensource</category>
    </item>
    <item>
      <title>NocoBase vs Baserow: Flexible Databases vs Enterprise Systems</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Wed, 12 Aug 2026 11:47:35 +0000</pubDate>
      <link>https://dev.to/nocobase/nocobase-vs-baserow-flexible-databases-vs-enterprise-systems-448p</link>
      <guid>https://dev.to/nocobase/nocobase-vs-baserow-flexible-databases-vs-enterprise-systems-448p</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-baserow" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/nocobase-vs-baserow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;If you are looking for an open-source, self-hosted platform to manage data, build internal applications, or automate business processes, &lt;a href="https://www.nocobase.com/" rel="noopener noreferrer"&gt;NocoBase&lt;/a&gt; and &lt;a href="https://baserow.io/" rel="noopener noreferrer"&gt;Baserow&lt;/a&gt; are likely to appear on the same shortlist.&lt;/p&gt;

&lt;p&gt;Both products provide visual data management and application-building capabilities, and both let teams extend the platform around their own needs. But judging only by these shared labels can make them look more similar than they really are.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhwddxhtly9t7nstkvjg8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhwddxhtly9t7nstkvjg8.png" alt="Baserow1-yoesgu.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8w6k1dje7538g5ajnz6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8w6k1dje7538g5ajnz6b.png" alt="NocoBase1-x10z5y.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In practice, Baserow and NocoBase represent two different product directions.&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Baserow represents the spreadsheet-style no-code approach. Its first priority is helping teams organize, manage, and collaborate on structured data in a more flexible and intuitive way.&lt;/p&gt;

&lt;p&gt;NocoBase starts from business-system development. It combines data models, pages, role-based permissions, workflows, and automation to help teams build enterprise applications that can run for the long term and continue evolving.&lt;/p&gt;

&lt;p&gt;As AI Agents move into real business scenarios, these capabilities are also becoming infrastructure for AI to access enterprise data, invoke business processes, and perform tasks within defined permission boundaries.&lt;/p&gt;

&lt;p&gt;This article therefore looks at the products from the perspective of actual usage and answers a practical question: &lt;strong&gt;when is a spreadsheet-style no-code platform such as Baserow the better fit, and when should you choose NocoBase instead?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://www.nocobase.com/en/blog/nocobase-vs-airtable" rel="noopener noreferrer"&gt;NocoBase vs Airtable: A More Flexible Open-Source Alternative&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Baserow: A Spreadsheet-Style No-Code Platform
&lt;/h2&gt;

&lt;p&gt;Baserow was started by Bram Wiepjes as a personal project in 2019. Its first version was released in 2020, when the team also began to take shape. Today, &lt;a href="https://github.com/baserow/baserow" rel="noopener noreferrer"&gt;its GitHub repository has around 5.3k Stars&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Baserow first gained attention as an open-source Airtable alternative. Its most recognizable experience still starts from a familiar model: &lt;strong&gt;create and manage structured data as easily as working in a spreadsheet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Products in this category are often described as multidimensional spreadsheets, online databases, or spreadsheet-database tools. Besides Baserow, Airtable, NocoDB, Grist, SeaTable, and Feishu Bitable follow a similar approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiqv6t0gp4sxqf0b92l69.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiqv6t0gp4sxqf0b92l69.png" alt="Baserow2-gk0wm6.png" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  NocoBase: Business-System Infrastructure for the AI Era
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;NocoBase GitHub repository&lt;/a&gt; has now surpassed 23k Stars. NocoBase is an open-source AI + no-code platform for rapidly building business systems, but its role goes beyond visual application building. It provides infrastructure for people and AI Agents to build, run, and continuously extend business systems together.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;AI Builder Quick Start - NocoBase Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw68r91r4ti8ivf5m53zi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fw68r91r4ti8ivf5m53zi.png" alt="NocoBase2-oac2vq.png" width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In NocoBase, the data model is the foundation, but the final product is not simply a set of tables for users to maintain directly. It is a complete business system that can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business pages designed for different roles&lt;/li&gt;
&lt;li&gt;Data scopes and actions available to different users&lt;/li&gt;
&lt;li&gt;Forms, detail pages, and business operations&lt;/li&gt;
&lt;li&gt;Approvals, state transitions, and automated workflows&lt;/li&gt;
&lt;li&gt;Operation records and audit logs&lt;/li&gt;
&lt;li&gt;AI Employees that participate in business processing inside the system&lt;/li&gt;
&lt;li&gt;APIs, MCP, CLI, and Skills for external AI Agents&lt;/li&gt;
&lt;li&gt;Plugins and integrations that continue to grow with enterprise requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These capabilities support not only traditional business applications but also the context and execution boundaries AI needs in enterprise environments. AI Coding Agents can participate in data modeling, page configuration, permission setup, workflow orchestration, and plugin development. AI Employees inside the system and external Agents can query data, trigger workflows, and execute tasks within predefined permissions, while their operations remain subject to access control and auditing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0r16un0y562v97bgnnhy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0r16un0y562v97bgnnhy.png" alt="NocoBase3-vm1y45.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ordinary users typically work through configured pages, forms, and actions instead of interacting directly with underlying tables. System builders can continue changing data models, pages, permissions, and workflows, while AI Agents can participate in building and iteration on top of the same architecture.&lt;/p&gt;

&lt;p&gt;💡 Read more: &lt;a href="https://docs.nocobase.com/ai-builder/acl" rel="noopener noreferrer"&gt;Permission Configuration - NocoBase Documentation&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Difference 1: Creating a Database or Building a Business System
&lt;/h2&gt;

&lt;p&gt;Both Baserow and NocoBase are based on data models, and both let users visually create fields, relationships, and application pages.&lt;/p&gt;

&lt;p&gt;But they start from different places in actual use.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Baserow: &lt;strong&gt;start by creating a database and manage data collaboratively in a more flexible way.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;NocoBase: &lt;strong&gt;start by identifying business objects, roles, and processes, then combine them into a complete business system.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both products can create tables, relationships, and application pages, but their most natural end results are different.&lt;/p&gt;

&lt;p&gt;With Baserow, a team will typically end up with a table-centered collaborative workspace:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clear data structures&lt;/li&gt;
&lt;li&gt;Direct editing&lt;/li&gt;
&lt;li&gt;Flexible views&lt;/li&gt;
&lt;li&gt;Easy bulk maintenance&lt;/li&gt;
&lt;li&gt;Fast adaptation to changing needs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8e1lthtlhoxvmqbr37f8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8e1lthtlhoxvmqbr37f8.png" alt="Baserow3-ooq25p.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With NocoBase, a team will more naturally end up with an application system centered on business roles and processes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users work through dedicated business pages&lt;/li&gt;
&lt;li&gt;Different roles have different permissions&lt;/li&gt;
&lt;li&gt;Data changes are governed by operation rules&lt;/li&gt;
&lt;li&gt;State changes can trigger approvals and workflows&lt;/li&gt;
&lt;li&gt;New modules can be added as the business grows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fksad3o0xx3n2jjewz13o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fksad3o0xx3n2jjewz13o.png" alt="NocoBase4-xz7qqt.png" width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fleamx7d0lqtov0ku7v8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fleamx7d0lqtov0ku7v8x.png" alt="NocoBase5-azvvyh.png" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Baserow, the database itself is often the team's primary workspace.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In NocoBase, the database is more often the underlying foundation of a business system, while ordinary users interact with data through pages, forms, buttons, and workflows.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Difference 2: Editing Data or Completing Business Operations
&lt;/h2&gt;

&lt;p&gt;Baserow and NocoBase both support tables, forms, and application pages, but ordinary users interact with data differently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Baserow&lt;/strong&gt;: users typically enter a table view to view, filter, and bulk-edit records. Grid View remains its most representative data-management interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NocoBase&lt;/strong&gt;: users typically complete work through business pages, forms, and action buttons. Buttons can also trigger workflows that control subsequent data processing and business steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, consider updating a customer record.&lt;/p&gt;

&lt;p&gt;In Baserow, users can click a cell and change the value directly. This is efficient for quick maintenance and bulk editing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwh9frhc9c7oveqbnuh9r.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwh9frhc9c7oveqbnuh9r.gif" alt="Baserow4-mvdrpi.gif" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In NocoBase, once the data model is defined, the frontend can be organized much more freely. Teams can build pages around different roles and business scenarios, and AI can also help configure those pages.&lt;/p&gt;

&lt;p&gt;For the same customer-status change, a team could use an action button on the customer detail page, or organize customers in a Kanban board and move cards between statuses. Each record can still open into a detail page for full information and editing.&lt;/p&gt;

&lt;p&gt;This means the same underlying data and business rules can be presented through different pages and interactions depending on how the work is actually performed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsnldj4yq6h3zss032di7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsnldj4yq6h3zss032di7.gif" alt="NocoBase6-qmlcx4.gif" width="600" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhio4j1wdiuta56pqv22s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fhio4j1wdiuta56pqv22s.png" alt="NocoBase7-oacp42.png" width="799" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The two approaches fit different situations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spreadsheet-style tools emphasize directness, speed, and flexibility.&lt;/li&gt;
&lt;li&gt;Business systems emphasize explicit operation entry points, validation, and process control.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When users are changing a content plan or a task note, direct editing is often more efficient.&lt;/p&gt;

&lt;p&gt;But when they are changing an order amount, inventory quantity, contract status, or approval result, enterprises often need users to complete an explicit business operation rather than directly change underlying data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For collaborative data tools, saving one click can improve efficiency. For formal business systems, adding one confirmation step may reduce the cost of mistakes.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Difference 3: Small-Team Collaboration or Enterprise Multi-Role Use
&lt;/h2&gt;

&lt;p&gt;Baserow and NocoBase both support multi-user collaboration and permission management, but their typical collaboration models differ.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Baserow&lt;/strong&gt;: better suited to teams collaborating around the same set of data through different views, filters, and record editing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5d5f2b7d9vw964ghkfe5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5d5f2b7d9vw964ghkfe5.png" alt="Baserow5-81143m.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;NocoBase&lt;/strong&gt;: better suited to multiple departments and roles working in the same system, with different pages, data scopes, and operation permissions for each type of user.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu8f1whuw6lbmb3ybx66y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu8f1whuw6lbmb3ybx66y.png" alt="NocoBase8-657rmi.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, in a sales-management application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales representatives can only view and edit customers assigned to them.&lt;/li&gt;
&lt;li&gt;Sales managers can view the entire team's data and approve discounts.&lt;/li&gt;
&lt;li&gt;Finance users can only access contracts, invoicing, and payment information.&lt;/li&gt;
&lt;li&gt;Management can view aggregated data without directly editing business records.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In NocoBase, data permissions can also be controlled down to the row level for finer-grained access management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Same Business Scenario with Baserow and NocoBase
&lt;/h2&gt;

&lt;p&gt;Consider the same CRM scenario in both products.&lt;/p&gt;

&lt;p&gt;Assume the system needs to manage customers, contacts, sales opportunities, and follow-up records while supporting sales-stage management, owner assignment, and sales reporting.&lt;/p&gt;

&lt;p&gt;Both products can build this CRM, but the resulting usage model will differ.&lt;/p&gt;

&lt;p&gt;Baserow more naturally starts from data tables and views, then gradually adds application pages, automation, and permissions.&lt;/p&gt;

&lt;p&gt;NocoBase starts from the data model, then builds pages, permissions, workflows, and AI capabilities around the same underlying data, eventually forming a business system designed for different roles.&lt;/p&gt;

&lt;p&gt;AI makes the comparison even more interesting. Baserow has already integrated AI deeply into database and application building. Its AI assistant Kuma can create and modify databases, formulas, views, and application pages through natural language.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3l704saus8fbs34ptxm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3l704saus8fbs34ptxm3.png" alt="Baserow6-24tjdt.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NocoBase also supports AI-assisted system building, but AI reaches further across the complete business-system structure. AI Agents can participate in data modeling, page building, permission configuration, workflow orchestration, plugin management, and system deployment. After the system is built, AI Employees can work directly inside CRM pages using current customer data, sales opportunities, and user permissions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsllh1mmlezv4lq5kx239.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fsllh1mmlezv4lq5kx239.png" alt="NocoBase9-q6mx1s.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both products can therefore use AI to build applications and process data. The clearer difference is that NocoBase can directly connect Coding Agents and treat AI as a participant in the business system: AI not only helps users build the CRM, but can continue participating in daily business execution after the CRM is in use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Capability Comparison
&lt;/h2&gt;

&lt;p&gt;As applications spread across more teams, factors beyond data management and page building—permissions, security, deployment, and long-term operations—also become part of the selection process.&lt;/p&gt;

&lt;p&gt;Baserow has expanded from an open-source database product into application building, automation, and AI, while adding increasingly complete enterprise capabilities.&lt;/p&gt;

&lt;p&gt;NocoBase's enterprise capabilities are organized around complete business systems. Data models, pages, workflows, permissions, security, multi-environment management, cluster deployment, and AI Agents all operate within the same system architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: How to Choose Between Baserow and NocoBase
&lt;/h2&gt;

&lt;p&gt;Baserow and NocoBase are both open-source and self-hostable, and both now offer application building, automation, and AI capabilities. But the problems they are best suited to solve are still different.&lt;/p&gt;

&lt;p&gt;If your core requirement is to organize data quickly, replace spreadsheets, and let a team collaborate around that data, Baserow is simpler. It keeps a spreadsheet-like experience while allowing you to add views, applications, automation, and AI.&lt;/p&gt;

&lt;p&gt;If your requirements already involve multiple business objects, different roles, complex permissions, approvals, and workflows—or if you want AI Agents to operate inside an enterprise system under established permissions and business rules—NocoBase is better suited to building that kind of long-running business system.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Baserow is a good fit when you want to start from straightforward data management and collaboration.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NocoBase is a better fit when you want to start from a business system and provide AI Agents with an executable enterprise environment.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are also seeing more users who originally chose spreadsheets or multidimensional-table products for business management move to NocoBase as their needs grow. As business complexity increases, table-centered management often begins to run into limitations around role permissions, workflows, data relationships, and system extensibility. At that point, the requirement starts shifting from “a better spreadsheet” to a real business system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;How to Build a Production-Ready CRM with AI and NocoBase &lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;How to Design an IT Asset Management System: Data Model, Lifecycle, and Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/best-smartsheet-alternatives" rel="noopener noreferrer"&gt;How to Choose a Smartsheet Alternative: 7 Tools Compared&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-complex-relational-models" rel="noopener noreferrer"&gt;5 Open-Source AI No-Code Tools for Complex Relational Data Models&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;What Open-Source Tools Work Well with OpenCode? 5 Projects to Try&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>database</category>
      <category>opensource</category>
    </item>
    <item>
      <title>How to Build a Production-Ready CRM with AI and NocoBase</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Tue, 11 Aug 2026 12:29:28 +0000</pubDate>
      <link>https://dev.to/nocobase/how-to-build-a-production-ready-crm-with-ai-and-nocobase-53fg</link>
      <guid>https://dev.to/nocobase/how-to-build-a-production-ready-crm-with-ai-and-nocobase-53fg</guid>
      <description>&lt;p&gt;Originally published at &lt;a href="https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase" rel="noopener noreferrer"&gt;https://www.nocobase.com/en/blog/build-production-ready-crm-with-ai-and-nocobase&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;AI can build a CRM that is genuinely ready for production. With NocoBase providing the enterprise application foundations—data models, role-based permissions, security auditing, workflows, and more—AI can build a CRM from business requirements and then continue adding automation and AI Employees so the team can use it reliably in real operations over the long term.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;A recent &lt;a href="https://www.reddit.com/r/CRM/comments/1v6aj6g/vibecodinginhouse_crm/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt; discussion raised an interesting question: &lt;strong&gt;now that AI development tools are so capable, do teams still need to buy Salesforce or HubSpot, or can they simply Vibe Code an internal CRM?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7pwyuki514luxhax6yz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv7pwyuki514luxhax6yz.png" alt="reddit-t0fg0h.png" width="625" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One user who had actually built a CRM this way noted that AI can quickly create basic features such as customer management and dashboards. But once the system needs to support a real team over time, issues such as permissions, data isolation, security, and ongoing maintenance still have to be solved.&lt;/p&gt;

&lt;p&gt;He made the point that you can absolutely Vibe Code a CRM, &lt;strong&gt;but you cannot simply Vibe Code an enterprise CRM that remains reliable once it is exposed to real users, real data, and real business processes. Coding is the easy part; everything behind it is harder.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frbutip1ffpara79b9y4y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frbutip1ffpara79b9y4y.png" alt="reddit2-9uovy8.png" width="573" height="859"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;💬 Hey, you're reading the NocoBase blog. NocoBase is the most extensible AI-powered no-code/low-code development platform for building enterprise applications, internal tools, and all kinds of systems. It’s fully self-hosted, plugin-based, and developer-friendly. → &lt;a href="https://github.com/nocobase/nocobase" rel="noopener noreferrer"&gt;Explore NocoBase on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;AI can build the basic framework of a CRM very quickly, but there is still a gap between that and a system that is truly ready for enterprise use.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today, however, there is another approach. Instead of asking AI to recreate enterprise application fundamentals from scratch—permissions, security, auditing, data models, and so on—we can give it an application foundation that already provides those capabilities, then let AI focus on building and iterating the actual business system.&lt;/p&gt;

&lt;p&gt;In this guide, we will show how to combine AI with NocoBase's enterprise application capabilities to build a production-ready CRM from natural-language requirements in about an hour.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2fqv8a7cwggzqsqvon27.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2fqv8a7cwggzqsqvon27.png" alt="nocobase1-u2p9y7.png" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 You can also try applications built with NocoBase + AI online and see what AI-assisted application building looks like in practice: &lt;a href="https://demo.nocobase.com/new" rel="noopener noreferrer"&gt;https://demo.nocobase.com/new&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All screenshots in this article come from the NocoBase online demo. The entire system, from design to implementation, was completed by an AI Coding Agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Start with Real Business Requirements
&lt;/h2&gt;

&lt;p&gt;This article uses a small B2B office furniture company as the example.&lt;/p&gt;

&lt;p&gt;The company mainly supplies office furniture and commercial-space solutions to businesses, design firms, architecture studios, hotels, coworking spaces, and educational institutions. A small sales team handles customer acquisition, project follow-up, quotations, and deal closing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqq9trschn7calbqf5pv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbqq9trschn7calbqf5pv.png" alt="nocobase2-u9b244.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A typical project might begin when a design firm requests an office renovation. A salesperson needs to create the company account and contacts, open an opportunity, continuously record meetings and email communication, select products such as conference tables, office chairs, workstations, and acoustic partitions based on the project requirements, generate a quotation, and then move the deal through several rounds of communication and negotiation until it closes.&lt;/p&gt;

&lt;p&gt;The main sales process is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lead → Company account → Opportunity → Quotation → Ongoing follow-up → Closed deal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this sales team, the CRM needs to manage company accounts and contacts, leads, opportunities, products and quotations, communication records, and follow-up tasks in one place. It should also support sales dashboards, team permissions, business automation, and AI-assisted work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Describe the Business in Natural Language
&lt;/h3&gt;

&lt;p&gt;Describe the company's business, customer types, team roles, and sales process directly to AI. The key is to explain &lt;strong&gt;what the company sells, which customers it serves, how salespeople develop accounts and move projects forward, how a project progresses from initial contact to closing, and what data and daily work the CRM needs to manage.&lt;/strong&gt; You can also include team roles, sales rules that should run automatically, and the work you want AI Employees to handle so AI first understands the team and business the CRM is supposed to support.&lt;/p&gt;

&lt;p&gt;NocoBase can connect to different large language models for application building, including GPT, Opus, Qwen, and DeepSeek. Different models may vary in how they understand requirements, how quickly they generate results, and how the final application is presented, so you can choose based on actual results and your own preferences.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Which model should you choose? NocoBase model comparison&lt;/strong&gt;: &lt;a href="https://docs.nocobase.com/ai-builder/ai-portal/model-selection/" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-builder/ai-portal/model-selection/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can give the business requirements to AI like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I run a small B2B office furniture company. We mainly provide office furniture and commercial-space solutions to businesses, design firms, architecture studios, hotels, and coworking spaces.

Please use NocoBase to help me build a CRM that manages the full sales process from lead to closed deal, including company accounts and contacts, opportunities, products and quotations, customer communications, follow-up activities, and sales dashboards.

Our opportunities usually move through these stages:
Initial contact → Quotation → Business negotiation → Closed deal.

The team includes sales representatives, sales managers, and read-only users. We will also need corresponding data permissions, post-deal automation, reminders for opportunities that have not been followed up for a long time, and AI Employees that can organize customer emails and meeting notes.

First, summarize the CRM's main modules, data relationships, sales process, and user roles based on these requirements. After I confirm the design, begin building it in NocoBase.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permissions, automation, and AI Employees do not all need to be configured in one pass. First confirm that AI correctly understands the core business objects—accounts, contacts, opportunities, products, and quotations—then continue improving the existing CRM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Confirm AI's Understanding of the Business
&lt;/h3&gt;

&lt;p&gt;Before building, ask AI to produce a concise CRM structure based on the requirements. Confirm that it includes &lt;strong&gt;accounts and contacts, leads, opportunities, products and quotations, communications and follow-ups, sales dashboards, user roles, and business rules&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Also verify that the main data relationships and sales stages are correct. For example, one company account can have multiple contacts, opportunities, and communication records, while each quotation should be linked to the customer, the opportunity, and the specific products being quoted.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F80jzd92s3mlupah4v3f9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F80jzd92s3mlupah4v3f9.png" alt="nocobase3-q35ehq.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use the following sales stages consistently:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initial contact → Quotation → Business negotiation → Closed deal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once AI clearly understands the business, let it start building the CRM from this design.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Let AI Build the CRM, Then Check the Core Business Logic
&lt;/h2&gt;

&lt;p&gt;After the CRM is generated, first verify the basic business relationships instead of immediately adding permissions, automation, or more pages. Focus on whether accounts, contacts, opportunities, products, quotations, and communication records are correctly connected and whether the full process matches how sales actually works.&lt;/p&gt;

&lt;h3&gt;
  
  
  Check Accounts and Contacts
&lt;/h3&gt;

&lt;p&gt;Each company account should centrally connect &lt;strong&gt;company information, contacts, account owner, related opportunities, communication records, and follow-up items&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrxf2xe360yjuf6fd86g.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftrxf2xe360yjuf6fd86g.gif" alt="nocobase4-7r08ec.gif" width="600" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a salesperson opens an account detail page, they should be able to immediately see who the contacts are, which projects are currently active, what the latest communication was, and what needs to happen next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fioqwq73y52tvckx97geb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fioqwq73y52tvckx97geb.png" alt="nocobase5-n5g5y8.png" width="799" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also check that one customer can be linked to multiple contacts, opportunities, and communication records instead of having this information generated as unrelated standalone pages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx59c44lv715thtgiwq20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx59c44lv715thtgiwq20.png" alt="nocobase6-mhsqcg.png" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check Opportunity Progression
&lt;/h3&gt;

&lt;p&gt;All active projects should be managed through opportunities and progress through these stages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Initial contact → Quotation → Business negotiation → Closed deal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6s75mkfflfnemffmr01s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6s75mkfflfnemffmr01s.gif" alt="nocobase7-jqwuj9.gif" width="600" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each opportunity should record &lt;strong&gt;the associated customer, opportunity owner, expected value, expected close date, and current stage&lt;/strong&gt;, and users should be able to view and update opportunities from a pipeline board.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx7jteh05fv5cy0jhcxbs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx7jteh05fv5cy0jhcxbs.png" alt="nocobase8-8i0jrs.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Check Products and Quotations
&lt;/h3&gt;

&lt;p&gt;The product catalog should centrally maintain &lt;strong&gt;product code, product name, category, sales price, and availability status&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyeo1le2h98qrxslbpwig.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyeo1le2h98qrxslbpwig.gif" alt="nocobase9-cpvrs4.gif" width="760" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A quotation should be linked to &lt;strong&gt;the company account, the specific opportunity, quoted products, quotation amount, validity period, and current status&lt;/strong&gt;, so salespeople can open quotations from an opportunity and also view related quotations from the customer detail page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fplxuf4h42q35smjhhaq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fplxuf4h42q35smjhhaq4.png" alt="10-c23frk.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4aupk9hma9xd9k5y7e5u.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4aupk9hma9xd9k5y7e5u.gif" alt="nocobase11-vj57d3.gif" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the relationships between customers, opportunities, products, and quotations do not match the real business, describe the specific issue directly to AI and have it adjust the existing CRM. Once the core business is correct, continue adding the capabilities needed for team use.&lt;/p&gt;

&lt;p&gt;For guidance on collaborating more effectively with an AI Agent during application building, see: &lt;a href="https://docs.nocobase.com/ai-builder/ai-portal/agent-workflow" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-builder/ai-portal/agent-workflow&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Turn the Basic CRM into a System the Team Can Actually Use
&lt;/h2&gt;

&lt;p&gt;Once the core workflows around customers, opportunities, and quotations work correctly, continue giving AI the team's roles and sales rules. AI can then add permissions and automation to the existing CRM so it supports collaboration and daily operations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure Permissions Around Team Responsibilities
&lt;/h3&gt;

&lt;p&gt;First tell AI which roles exist and what each role is allowed to view and do:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sales representatives&lt;/strong&gt; can only view and manage the customers, opportunities, and follow-up items assigned to them; &lt;strong&gt;sales managers&lt;/strong&gt; can view the entire team's data, reassign owners, and review sales progress; &lt;strong&gt;read-only users&lt;/strong&gt; can view relevant information but cannot create, edit, or delete business data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4z9gvpnkikej1sqbc7hk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4z9gvpnkikej1sqbc7hk.png" alt="nocobase12-nlqv77.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI can create these roles directly in the existing CRM and configure data scopes and operation permissions. After configuration, enter the system as each role and confirm that the visible data and available actions match the actual division of responsibilities. If the permission scope is inaccurate, tell AI which role, data, or operation needs adjustment, or modify the permissions directly in the interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0tx1yu6dtuho5v8roqm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0tx1yu6dtuho5v8roqm3.png" alt="nocobase13-kbz9k5.png" width="800" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Turn Repetitive Sales Rules into Workflows
&lt;/h3&gt;

&lt;p&gt;Repeated business actions in the sales process can also be expressed as clear trigger conditions and expected outcomes, then handed to AI to configure as automation in the existing CRM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F963vv0gathoom2shba43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F963vv0gathoom2shba43.png" alt="nocobase14-ldai16.png" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, when an opportunity reaches the Closed stage, the system can automatically update the customer status, create follow-up tasks, and assign them to the appropriate owner. If an opportunity has no new communication record for seven consecutive days, the system can automatically remind the salesperson to follow up.&lt;/p&gt;

&lt;p&gt;After the rules are configured, test real scenarios by changing opportunity stages or simulating a long period without follow-up. Confirm that the automation triggers as expected and correctly updates data, creates tasks, or sends reminders.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure AI Employees for Sales Work
&lt;/h3&gt;

&lt;p&gt;You can also configure AI Employees for sales scenarios and let them participate directly in everyday work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fftx3h8sggr6x5h0j26ct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fftx3h8sggr6x5h0j26ct.png" alt="nocobase15-7a6j3v.png" width="799" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example, after a customer meeting, a salesperson can give the meeting notes or customer email to an AI Employee. The AI Employee can &lt;strong&gt;organize the communication, extract key points and next actions, generate a customer activity record, and provide follow-up suggestions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fluh7ipgrc8jq35g8pdpy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fluh7ipgrc8jq35g8pdpy.png" alt="nocobase16-42loyk.png" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The same approach can be used to organize customer background information, summarize historical communications, and prepare follow-up content, allowing AI Employees to continuously take over repetitive information-processing work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep Adjusting the CRM Based on Real Use
&lt;/h3&gt;

&lt;p&gt;Once the CRM is in actual use, a sales manager may want the dashboard to add &lt;strong&gt;current pipeline value, expected near-term closing value, closed revenue, customers requiring follow-up, and sales target completion&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sales representatives may also want the opportunity board to add &lt;strong&gt;customer filters, owner filters, expected close dates, and more complete opportunity information&lt;/strong&gt; so they can quickly identify the projects that need attention first.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl9btih0ca8np54hxygrr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fl9btih0ca8np54hxygrr.png" alt="nocobase17-l67vrb.png" width="799" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Continue giving this feedback to AI so it can adjust page layouts, information density, status presentation, card content, key data placement, and the overall visual style. All changes can be made directly on the existing CRM without rebuilding the system.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;NocoBase AI Builder&lt;/strong&gt; lets AI design, build, and continue adjusting enterprise applications from natural-language requirements: &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;https://docs.nocobase.com/ai-builder&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  4. Run Through a Complete Real Sales Process
&lt;/h2&gt;

&lt;p&gt;Once the system is basically complete, run through the full process in the same order a salesperson would use it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create company account → Add contact → Create opportunity → Move opportunity through stages → Record customer meeting → Create follow-up task → Select products and generate quotation → Enter business negotiation → Close opportunity → Automatically run post-deal workflows → Update sales dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzokhxt5nallltmw94ern.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzokhxt5nallltmw94ern.png" alt="nocobase18-h7uo94.png" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check four areas throughout the process:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is the business data connected correctly?&lt;/strong&gt; Are customers, contacts, opportunities, quotations, communication records, and follow-up tasks linked correctly?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are team permissions correct?&lt;/strong&gt; Do sales representatives, sales managers, and read-only users see the right data and have the right actions?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does automation run correctly?&lt;/strong&gt; Do closed opportunities, long periods without follow-up, and other configured scenarios trigger correctly and update data or create tasks as expected?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Are AI Employees genuinely useful?&lt;/strong&gt; Can meeting notes and customer emails be organized correctly, and can key information, next actions, and follow-up suggestions become part of the real sales workflow?&lt;/p&gt;

&lt;p&gt;After completing this end-to-end sales process, you can confirm that the CRM is capable of supporting a small B2B sales team across customer management, opportunity progression, product quotations, ongoing follow-up, team collaboration, and daily sales operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Vibe Coding has significantly lowered the barrier to taking an application from zero to one. A new division of responsibilities is emerging between AI and enterprise application platforms: &lt;strong&gt;AI understands the business, generates the application, and keeps iterating as requirements change; enterprise application platforms such as NocoBase provide the data management, permissions, workflows, auditing, and other foundations required for a system to run reliably over the long term.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you already have a clear business requirement, start by describing it. Tell AI about your business, team, and processes, then combine it with NocoBase to build the CRM you actually need step by step. &lt;strong&gt;Going from requirements to a usable business system may now be simpler than you expect.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ready to get started? Build your enterprise AI CRM with &lt;a href="https://docs.nocobase.com/ai-builder" rel="noopener noreferrer"&gt;AI + NocoBase&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Related reading&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/enterprise-it-asset-management-system-guide" rel="noopener noreferrer"&gt;How to Design an IT Asset Management System: Data Model, Lifecycle, and Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/best-smartsheet-alternatives" rel="noopener noreferrer"&gt;How to Choose a Smartsheet Alternative: 7 Tools Compared&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-complex-relational-models" rel="noopener noreferrer"&gt;5 Open-Source AI No-Code Tools for Complex Relational Data Models&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/what-is-ai-no-code" rel="noopener noreferrer"&gt;What Is AI No-Code? A Practical Guide to No-Code Platforms in the AI Era&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-ai-no-code-tools-github-9" rel="noopener noreferrer"&gt;9 Open-Source AI No-Code Tools on GitHub Worth Watching&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/github-open-source-ai-agent-tools-16" rel="noopener noreferrer"&gt;14 Open Source AI Agent Tools with the Most GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/top-open-source-ai-assistant-tools-github-stars" rel="noopener noreferrer"&gt;Top 8 Open Source AI Assistant Tools by GitHub Stars&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/workbuddy-open-source-tools" rel="noopener noreferrer"&gt;6 Open Source Tools to Use with WorkBuddy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/6-github-top-open-source-ai-tools-for-ai-agents" rel="noopener noreferrer"&gt;Top 6 Open Source AI Tools by GitHub Stars for Stronger AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/open-source-internal-tools-self-hosted-ai-agent-hermes" rel="noopener noreferrer"&gt;5 Open-Source Internal Tools to Use with Hermes Agent&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/openclaw-open-source-enterprise-tools" rel="noopener noreferrer"&gt;OpenClaw and 5 Open-Source Tools for Monitoring Business Workflows&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/opencode-open-source-tools-ai-agents" rel="noopener noreferrer"&gt;What Open-Source Tools Work Well with OpenCode? 5 Projects to Try&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.nocobase.com/en/blog/building-internal-tools-with-codex" rel="noopener noreferrer"&gt;Building Internal Tools with Codex: 6 Open-Source Projects for Developers&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>nocode</category>
      <category>opensource</category>
      <category>crm</category>
    </item>
    <item>
      <title>Weekly Updates: Assign Plugin Skills to AI Employees</title>
      <dc:creator>NocoBase</dc:creator>
      <pubDate>Mon, 10 Aug 2026 07:22:18 +0000</pubDate>
      <link>https://dev.to/nocobase/weekly-updates-assign-plugin-skills-to-ai-employees-2c0n</link>
      <guid>https://dev.to/nocobase/weekly-updates-assign-plugin-skills-to-ai-employees-2c0n</guid>
      <description>&lt;p&gt;Summarize the weekly product update logs, and the latest releases can be checked on &lt;a href="https://www.nocobase.com/en/blog/timeline" rel="noopener noreferrer"&gt;our blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NocoBase is currently updated across three branches: &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;next&lt;/code&gt;, and &lt;code&gt;develop&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66qf0fuohv233at2nnzv.png" alt="version.png" width="800" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: The most stable version to date, recommended for installation.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;next&lt;/code&gt;: Beta version, contains upcoming new features and has been preliminarily tested. There might be some known or unknown issues. It is mainly used to collect feedback from test users and further optimize features. Ideal for test users who want to experience new features early and provide feedback.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;develop&lt;/code&gt;: Alpha version, contains the latest feature code, may be incomplete or unstable, and is mainly used for internal development and rapid iteration. Suited for technical users interested in cutting-edge product capabilities, but not recommended for production use.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  main
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgjmnc6cb7az5ofw9t1ip.png" alt="main.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v2.1.37
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-08&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Add Date variables and optional formatted output to V2 field-value editors. (&lt;a href="https://github.com/nocobase/nocobase/pull/10289" rel="noopener noreferrer"&gt;#10289&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix missing and incorrectly resolved &lt;code&gt;Current popup&lt;/code&gt; parent record variables in v2 popup-subtable add-new and edit dialogs. (&lt;a href="https://github.com/nocobase/nocobase/pull/10292" rel="noopener noreferrer"&gt;#10292&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Fixed parent item variables resolving to the wrong level when assigning association field values in sub-tables. (&lt;a href="https://github.com/nocobase/nocobase/pull/10249" rel="noopener noreferrer"&gt;#10249&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fix the cancel button language in mobile selection lists (&lt;a href="https://github.com/nocobase/nocobase/pull/10297" rel="noopener noreferrer"&gt;#10297&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed formula fields being converted to number fields after synchronizing fields from the database (&lt;a href="https://github.com/nocobase/nocobase/pull/10303" rel="noopener noreferrer"&gt;#10303&lt;/a&gt;) by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed migration packages omitting many-to-many through-table data after an application restart (&lt;a href="https://github.com/nocobase/nocobase/pull/10306" rel="noopener noreferrer"&gt;#10306&lt;/a&gt;) by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt; Fix duplicate backups from async exports (&lt;a href="https://github.com/nocobase/nocobase/pull/10300" rel="noopener noreferrer"&gt;#10300&lt;/a&gt;) by &lt;a class="mentioned-user" href="https://dev.to/gchust"&gt;@gchust&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; AI employee actions now support linkage rules for conditional visibility in v2 forms. (&lt;a href="https://github.com/nocobase/nocobase/pull/10298" rel="noopener noreferrer"&gt;#10298&lt;/a&gt;) by @jiannx&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External NocoBase]&lt;/strong&gt; Fixed external NocoBase files and attachment fields failing to load in AI workflows by @2013xile&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Migration manager]&lt;/strong&gt; Fixed many-to-many through-table migration data after application restarts and classified migration rules as system data by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt; Fix approval comment default values when using RunJS by @zhangzhonghe&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Prevented app creation with database identifiers that do not start with an English letter or contain unsupported characters. by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.36
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-05&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Data source manager]&lt;/strong&gt; Prevented clearing a field interface directly from the Configure fields table. (&lt;a href="https://github.com/nocobase/nocobase/pull/10288" rel="noopener noreferrer"&gt;#10288&lt;/a&gt;) by @hongboji&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Auth: LDAP]&lt;/strong&gt; Fixed LDAP login when a user DN mixes UTF-8 escapes with escaped syntax characters such as commas. by @hongboji&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v2.1.35
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-05&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Fix unstable test cases (&lt;a href="https://github.com/nocobase/nocobase/pull/10246" rel="noopener noreferrer"&gt;#10246&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Batch update]&lt;/strong&gt; Support configurable after-success behavior for v2 Update record and Bulk update actions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10278" rel="noopener noreferrer"&gt;#10278&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Add field search to v2 import and export action settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/10261" rel="noopener noreferrer"&gt;#10261&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Add field search to v2 Import Pro and Export Pro action settings. by @katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Fix missing Current record variables in v2 JS column event-flow conditions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10279" rel="noopener noreferrer"&gt;#10279&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[database]&lt;/strong&gt; Fixed MSSQL queries failing when filtering to-many relations with pagination and sorting by a root collection field (&lt;a href="https://github.com/nocobase/nocobase/pull/10224" rel="noopener noreferrer"&gt;#10224&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed external data source table synchronization leaving removed collections registered in the database manager (&lt;a href="https://github.com/nocobase/nocobase/pull/10209" rel="noopener noreferrer"&gt;#10209&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow Workers not exiting after scripts returned or asynchronous workflows timed out (&lt;a href="https://github.com/nocobase/nocobase/pull/10241" rel="noopener noreferrer"&gt;#10241&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Sequence]&lt;/strong&gt; Fixed duplicate automatic sequence values after migration when multiple records share the latest creation time (&lt;a href="https://github.com/nocobase/nocobase/pull/10239" rel="noopener noreferrer"&gt;#10239&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source: External SQL Server]&lt;/strong&gt; N/A — regression test coverage only by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed PGVector knowledge base searches consuming unused PostgreSQL pool connections and creating duplicate pools for different vector tables. by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Data source: External MySQL]&lt;/strong&gt; Fixed previously selected external database tables disappearing after adding new tables. by @cgyrock&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix missing field values in approval sub-tables by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Allow approval comments to use configurable default values by @zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  develop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fow9jd2rkp6w0rmrzuzwl.png" alt="develop.png" width="800" height="163"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  v3.0.0-alpha.7
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-06&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🎉 New Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[client-v2]&lt;/strong&gt; Support using the standalone Settings application as the default app entry. (&lt;a href="https://github.com/nocobase/nocobase/pull/10267" rel="noopener noreferrer"&gt;#10267&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI employees can now be assigned skills from the employee settings page. Skills are built from plugins. (&lt;a href="https://github.com/nocobase/nocobase/pull/10237" rel="noopener noreferrer"&gt;#10237&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;li&gt;Added Portal-scoped AI conversations and unread counts. (&lt;a href="https://github.com/nocobase/nocobase/pull/10266" rel="noopener noreferrer"&gt;#10266&lt;/a&gt;) by @cgyrock&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Portal manager]&lt;/strong&gt; Updated init defaults so non-latest installs use the modern client entry and seed the default AI, admin, and mobile portals; the CLI can now save and update the client entry mode. (&lt;a href="https://github.com/nocobase/nocobase/pull/10281" rel="noopener noreferrer"&gt;#10281&lt;/a&gt;) by @chenos&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Batch update]&lt;/strong&gt; Support configurable after-success behavior for v2 Update record and Bulk update actions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10278" rel="noopener noreferrer"&gt;#10278&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records]&lt;/strong&gt; Add field search to v2 import and export action settings. (&lt;a href="https://github.com/nocobase/nocobase/pull/10261" rel="noopener noreferrer"&gt;#10261&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Action: Export records Pro]&lt;/strong&gt; Add field search to v2 Import Pro and Export Pro action settings. by @katherinehhh&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[client-v2]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix missing spacing in workflow approval configuration dialogs (&lt;a href="https://github.com/nocobase/nocobase/pull/10276" rel="noopener noreferrer"&gt;#10276&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix missing Current record variables in v2 JS column event-flow conditions. (&lt;a href="https://github.com/nocobase/nocobase/pull/10279" rel="noopener noreferrer"&gt;#10279&lt;/a&gt;) by @katherinehhh&lt;/li&gt;
&lt;li&gt;Hide the maintenance dialog and retry button while the application is upgrading (&lt;a href="https://github.com/nocobase/nocobase/pull/10250" rel="noopener noreferrer"&gt;#10250&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Prevent long table content from widening columns and wrap it automatically (&lt;a href="https://github.com/nocobase/nocobase/pull/10259" rel="noopener noreferrer"&gt;#10259&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[database]&lt;/strong&gt; Fixed MSSQL queries failing when filtering to-many relations with pagination and sorting by a root collection field (&lt;a href="https://github.com/nocobase/nocobase/pull/10224" rel="noopener noreferrer"&gt;#10224&lt;/a&gt;) by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[data-source-manager]&lt;/strong&gt; Fixed external data source table synchronization leaving removed collections registered in the database manager (&lt;a href="https://github.com/nocobase/nocobase/pull/10209" rel="noopener noreferrer"&gt;#10209&lt;/a&gt;) by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Localization]&lt;/strong&gt; Fixed a crash when opening Localization settings with the Lina AI assistant entry. (&lt;a href="https://github.com/nocobase/nocobase/pull/10293" rel="noopener noreferrer"&gt;#10293&lt;/a&gt;) by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source manager]&lt;/strong&gt; Prevented clearing a field interface directly from the Configure fields table. (&lt;a href="https://github.com/nocobase/nocobase/pull/10288" rel="noopener noreferrer"&gt;#10288&lt;/a&gt;) by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Backup manager]&lt;/strong&gt; Prevent repeated V2 backup restore submissions while a restore request is in progress. (&lt;a href="https://github.com/nocobase/nocobase/pull/10262" rel="noopener noreferrer"&gt;#10262&lt;/a&gt;) by @katherinehhh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[File manager]&lt;/strong&gt; Fixed shared attachments such as the system logo not loading for authenticated member users (&lt;a href="https://github.com/nocobase/nocobase/pull/10268" rel="noopener noreferrer"&gt;#10268&lt;/a&gt;) by @mytharcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI employees]&lt;/strong&gt; Fixed the AI employee entry not appearing in non-default portals. (&lt;a href="https://github.com/nocobase/nocobase/pull/10260" rel="noopener noreferrer"&gt;#10260&lt;/a&gt;) by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External MySQL]&lt;/strong&gt; Fixed previously selected external database tables disappearing after adding new tables. by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[AI: Knowledge base]&lt;/strong&gt; Fixed PGVector knowledge base searches consuming unused PostgreSQL pool connections and creating duplicate pools for different vector tables. by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Data source: External SQL Server]&lt;/strong&gt; N/A — regression test coverage only by @cgyrock&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;[Workflow: Approval]&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix missing field values in approval sub-tables by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Fix approval comment default values when using RunJS by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;Allow approval comments to use configurable default values by @zhangzhonghe&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[App supervisor]&lt;/strong&gt; Prevented app creation with database identifiers that do not start with an English letter or contain unsupported characters. by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;[Auth: LDAP]&lt;/strong&gt; Fixed LDAP login when a user DN mixes UTF-8 escapes with escaped syntax characters such as commas. by @hongboji&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  v3.0.0-alpha.6
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Release date: 2026-08-03&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Improvements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: HTTP request node]&lt;/strong&gt; Fix unstable test cases (&lt;a href="https://github.com/nocobase/nocobase/pull/10246" rel="noopener noreferrer"&gt;#10246&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🐛 Bug Fixes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;[auth]&lt;/strong&gt; Fixed occasional &lt;code&gt;Invalid CSRF token&lt;/code&gt; errors on API requests in cross-origin deployments (&lt;a href="https://github.com/nocobase/nocobase/pull/10245" rel="noopener noreferrer"&gt;#10245&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Portal manager]&lt;/strong&gt; Fix device icon and long title display on Portal cards (&lt;a href="https://github.com/nocobase/nocobase/pull/10248" rel="noopener noreferrer"&gt;#10248&lt;/a&gt;) by @zhangzhonghe&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Collection field: Sequence]&lt;/strong&gt; Fixed duplicate automatic sequence values after migration when multiple records share the latest creation time (&lt;a href="https://github.com/nocobase/nocobase/pull/10239" rel="noopener noreferrer"&gt;#10239&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;[Workflow: JavaScript]&lt;/strong&gt; Fixed JavaScript workflow Workers not exiting after scripts returned or asynchronous workflows timed out (&lt;a href="https://github.com/nocobase/nocobase/pull/10241" rel="noopener noreferrer"&gt;#10241&lt;/a&gt;) by @mytharcher&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>nocode</category>
      <category>news</category>
    </item>
  </channel>
</rss>
