<?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: Athulya R</title>
    <description>The latest articles on DEV Community by Athulya R (@athulya_r).</description>
    <link>https://dev.to/athulya_r</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%2F3626462%2F2c59f927-606d-4f2d-be54-c6620aa83ed7.jpg</url>
      <title>DEV Community: Athulya R</title>
      <link>https://dev.to/athulya_r</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/athulya_r"/>
    <language>en</language>
    <item>
      <title>Build a Data Review Console With ToolJet MCP</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Tue, 03 Nov 2026 13:43:30 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-data-review-console-with-tooljet-mcp-35o</link>
      <guid>https://dev.to/tooljet/build-a-data-review-console-with-tooljet-mcp-35o</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Data Review &amp;amp; Correction Console?
&lt;/h2&gt;

&lt;p&gt;Teams that fix bad customer records in a shared spreadsheet only one person knows how to work cannot say who changed a credit limit, why, or whether anyone approved it. To build a data review console with ToolJet MCP, you describe the process once and an agent creates the app. The result is a structured ToolJet application, with data, queries and interface together, that the team keeps running. You will see the five pages, the approval rule and the data behind them.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-6.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-6.png" title="Data Review &amp;amp; Correction Console built with ToolJet MCP: The Review Board: KPI tiles, a source-by-issue heatmap, the opened-versus-closed backlog chart, filters and the four-lane kanban of cases." alt="The Review Board (build a data review console with ToolJet MCP)" width="800" height="898"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Review Board: KPI tiles, a source-by-issue heatmap, the opened-versus-closed backlog chart, filters and the four-lane kanban of cases.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-2-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-2-3.png" title="Data Review &amp;amp; Correction Console built with ToolJet MCP: The Case File for a case awaiting approval: source value next to the proposed fix, live checks, the approval card that blocks the proposer, and the history timeline." alt="The Case File for a case awaiting approval (build a data review console with ToolJet MCP)" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Case File for a case awaiting approval: source value next to the proposed fix, live checks, the approval card that blocks the proposer, and the history timeline.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-3-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-3-3.png" title="Data Review &amp;amp; Correction Console built with ToolJet MCP: Team Performance: on-time rate against an 85 percent target, bad records by source and issue type, and who is holding what." alt="Team Performance (build a data review console with ToolJet MCP)" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Team Performance: on-time rate against an 85 percent target, bad records by source and issue type, and who is holding what.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-4-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-board-4-3.png" title="Data Review &amp;amp; Correction Console built with ToolJet MCP: The Change Ledger: a decisions-by-person chart, a severity and outcome sunburst and the table of every applied or rejected change with CSV export." alt="The Change Ledger (build a data review console with ToolJet MCP)" width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Change Ledger: a decisions-by-person chart, a severity and outcome sunburst and the table of every applied or rejected change with CSV export.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Fix Customer Data Errors With Approval
&lt;/h2&gt;

&lt;p&gt;Fix customer data errors by routing each flagged record through review, approval and a permanent change ledger instead of editing spreadsheets. &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; lets a coding agent build this as a working app that a data team can run on real records and adjust over time.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Flag each bad record with the field, the issue and its severity&lt;/li&gt;
&lt;li&gt;Assign a reviewer who checks the source value and proposes a fix&lt;/li&gt;
&lt;li&gt;Send fixes above low severity to an approver who did not propose them&lt;/li&gt;
&lt;li&gt;Apply the approved fix and write the original and final values to a ledger&lt;/li&gt;
&lt;li&gt;Review overdue cases and workload to see whether the team is keeping up&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How the Review Board and Case File Work
&lt;/h2&gt;

&lt;p&gt;The Review Board shows every open case as a card in four lanes: needs review, in review, awaiting approval and ready to apply. Reviewers filter by reviewer, severity and source, then open a card to reach the Case File. There the source value sits next to the proposed fix, and live checks run as you type. A reason is required, low severity fixes apply directly, and everything else needs an approver. Nobody can approve a fix they proposed. Applying a fix writes a row to the Change Ledger with the original value, the final value, who decided and why. Extract Intake checks the latest customer sample against six rules and lets anyone flag a bad row.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Four lane board with reviewer, severity and source filters&lt;/li&gt;
&lt;li&gt;Case file with live format checks and a required reason&lt;/li&gt;
&lt;li&gt;Approval rule that blocks approving your own fix&lt;/li&gt;
&lt;li&gt;Change ledger with original and final values and CSV export&lt;/li&gt;
&lt;li&gt;Extract intake that checks the customer sample against six rules&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Data Review Console With ToolJet MCP in One Prompt
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Consolidated Build Prompt
&lt;/h2&gt;

&lt;p&gt;The real build took several passes. The requirements are consolidated into one prompt that could have been used from the start, so you can reproduce the app in a single shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a data review and correction console in ToolJet for the customer data team of an industrial supplies distributor with business customers in ten countries.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Review Board shows KPI tiles, two charts, filters for reviewer, severity and source, and a kanban with four lanes: needs review, in review, awaiting approval and ready to apply. Case File shows the source value next to the proposed fix, live checks as you type, a reason, a next step, an approval card and the full history with notes. Team Performance shows the on time rate against a target, bad records by source and issue, and who is holding what. Change Ledger lists every applied or rejected change with original and final values, who decided and why, with search, filter and CSV export. Extract Intake checks the latest customer extract against six rules and lets anyone flag a bad row.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use ToolJet Database for everything the app records, with a sample of 44 customers standing in for the warehouse. Seed about 35 flagged records in every state, with fixes, notes and four weeks of history.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Low severity fixes apply directly. Everything else needs an approver, and nobody can approve their own fix.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How ToolJet MCP Builds the Console
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application rather than the screen: the data model, the queries, the component tree and the wiring between them all land as one structured ToolJet application, as described in the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt;. Enterprise app building does not end at the interface, since data connectivity, workflows, permissions, deployment and ongoing change are the rest of the job, and the generated app sits on a runtime that carries those where supported instead of handing the team a codebase to operate. The path stays open too: AI generation first, then visual editing, then code where a case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Broke During the Build and How Was It Fixed?
&lt;/h2&gt;

&lt;p&gt;After the first approval, the Case File showed a generated sample registration form instead of its own inputs. The cause was the form's generate-from setting, which had been set to JSON schema mode and rendered the sample schema. Switching it to raw JSON mode brought back the real fields, and the same fix was applied to the flag form.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Build Produced and Checked
&lt;/h2&gt;

&lt;p&gt;The table summarizes what was created and how the build was checked.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-components-inspector-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdata-review-correction-console-app-components-inspector-2.png" title="Data Review &amp;amp; Correction Console built with ToolJet MCP: components" alt="Data Review &amp;amp; Correction Console component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Industries Can Use This App?
&lt;/h2&gt;

&lt;p&gt;Distribution, wholesale, manufacturing and any business that pulls customer records from several systems such as a CRM, an ERP and a helpdesk and needs to show who changed a credit limit, why and whether it was approved. The same pattern fits supplier master data, product data and employee records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Review and Approve Fixes
&lt;/h2&gt;

&lt;p&gt;The app has no workspace groups or query permissions. The review rules are built into the app: the acting-as picker decides who can approve, only three named approvers can approve, and nobody can approve a fix they proposed. Anyone who can open the app can flag a row on the intake page. For production, the acting-as picker should be replaced with the signed-in user and the write queries restricted by workspace group.&lt;/p&gt;

&lt;h2&gt;
  
  
  Role-Based Access Control in ToolJet
&lt;/h2&gt;

&lt;p&gt;A Data Review &amp;amp; Correction Console app is only ready for a real team when every person can see and change exactly what their job needs, and nothing more. ToolJet handles this with role-based access control (RBAC) at two levels: platform-level permissions decide who can reach a workspace resource at all, and app-level permissions decide what each user can open, run and see inside one app. Both are enforced by the ToolJet server, not by hiding controls in the browser.&lt;/p&gt;

&lt;p&gt;Reviewers, approvers and read-only auditors need different access inside the console, and ToolJet lets each group see and do only what its job requires.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Ftooljet-rbac-permission-layers-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Ftooljet-rbac-permission-layers-3.png" title="Role-based access control in ToolJet" alt="Role-based access control in ToolJet: platform-level roles, custom groups and access rules, and app-level page, query and component permissions" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ToolJet role-based access control: platform-level and app-level permission layers&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  App-Level Permissions: Pages, Queries and Components
&lt;/h3&gt;

&lt;p&gt;Inside the app builder, ToolJet &lt;a href="https://docs.tooljet.com/docs/app-builder/dynamic-access-rule/overview/" rel="noopener noreferrer"&gt;dynamic access rules&lt;/a&gt; restrict individual parts of an app to chosen users or groups, so one app can serve several roles without a copy per team.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/app-builder/dynamic-access-rule/page-level/" rel="noopener noreferrer"&gt;Page permissions&lt;/a&gt;:&lt;/strong&gt; decide who can open a page, such as an approvals queue or an admin screen, while everyone else keeps the pages they need.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/app-builder/dynamic-access-rule/query-level/" rel="noopener noreferrer"&gt;Query permissions&lt;/a&gt;:&lt;/strong&gt; decide who can run a query. This is the layer that protects the data: a read-only user cannot trigger a write query even if they find the button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/app-builder/dynamic-access-rule/component-level/" rel="noopener noreferrer"&gt;Component permissions&lt;/a&gt;:&lt;/strong&gt; decide who sees and uses a component such as a button, form or modal, so a viewer gets a clean screen instead of controls they cannot use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/app-builder/dynamic-access-rule/row-level-security/" rel="noopener noreferrer"&gt;Row-level security&lt;/a&gt;:&lt;/strong&gt; filters which records each user gets back from a query, so a manager sees their own region and not the whole table.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Platform-Level Permissions: Roles, Custom Groups and Access Rules
&lt;/h3&gt;

&lt;p&gt;At the workspace level, ToolJet decides who can reach an app, a data source or a workflow before any app-level rule applies.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/user-roles/" rel="noopener noreferrer"&gt;User roles&lt;/a&gt;:&lt;/strong&gt; every member has a base role, Admin, Builder or End user, which sets what they can do in the workspace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/custom-groups/" rel="noopener noreferrer"&gt;Custom groups&lt;/a&gt;:&lt;/strong&gt; group people by team, such as finance or regional managers, and grant permissions once to the group instead of person by person.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;Granular access rules&lt;/a&gt;:&lt;/strong&gt; for each group, choose which apps it can edit or only view, whether an app is hidden from the dashboard and which environments it can open, which data sources it can configure or build with, and which workflows, modules and folders it can reach.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workspace permissions:&lt;/strong&gt; group-level switches for creating and deleting apps, managing workspace constants, working with ToolJet Database and organising folders.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, the two layers let one Data Review &amp;amp; Correction Console app go live for the whole team: platform permissions decide who gets in, and app permissions decide what each role can do once inside. ToolJet MCP can apply these rules while it builds, so access control ships with the first version of the app instead of arriving as a retrofit. Dynamic access rules are part of the &lt;a href="https://docs.tooljet.com/docs/app-builder/dynamic-access-rule/overview/" rel="noopener noreferrer"&gt;ToolJet Enterprise plan&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Customer Data Review App
&lt;/h2&gt;

&lt;p&gt;A data review app handles credit limits, tax IDs and approval decisions. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a fix is sent for approval, post to the approver in Slack, email the reviewer through Gmail, and write the decision back to &lt;code&gt;dr_history&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;A customer data team that used to fix records in spreadsheets now has a console where every change is proposed, reviewed, approved and recorded. The approval rule keeps a proposer from approving their own fix, and the ledger answers who changed a value, why and when. Because the output is a real, editable ToolJet application, the team can adjust the rules, the fields or the layout without starting over. The build shows how one prompt can produce a working data review console with a board, a case file, performance views and an intake check for live records.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own data review console with ToolJet MCP, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=data-review-correction-console-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt; to map it onto your customer records. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP is a server that lets a coding agent build ToolJet applications from a written description. The agent creates the data model, pages, queries and components inside ToolJet, so the result is an editable application rather than a codebase.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does the data review console stop people approving their own fixes?
&lt;/h3&gt;

&lt;p&gt;Each case records who proposed the fix, and the approve and reject buttons stay disabled for that person. Only the three named approvers can decide a case, so a second person always signs off.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I reproduce the data review console from the prompt?
&lt;/h3&gt;

&lt;p&gt;Yes, the prompt in this article describes all five pages, the four tables and the rules, so pasting it into an agent connected to ToolJet MCP rebuilds the app. You then edit the seed data and rules to match your own records.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to write code to use ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;No, the agent writes the queries and bindings from your description. You can still open the app in the ToolJet editor, adjust it visually, and add code where a case needs it.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the app after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The app is a structured ToolJet application that you can edit visually and extend with code. It runs on a runtime that carries data connections, access control and lifecycle management where supported, and ToolJet is open source, so it can run on infrastructure you control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I connect my own data source instead of the sample data?
&lt;/h3&gt;

&lt;p&gt;Yes, the sample uses ToolJet Database, and ToolJet connects to many databases and warehouses. Once your source is connected, the same queries can point at it, and the sample rows simply stand in until then.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the same ToolJet app at once?
&lt;/h3&gt;

&lt;p&gt;ToolJet supports multiple builders and many viewers on one app where your plan allows it. In this console, each reviewer or approver picks who they are acting as on the case file, and the approval rule applies to that person.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a Deployment Health Dashboard With ToolJet MCP</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Mon, 02 Nov 2026 13:02:22 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-deployment-health-dashboard-with-tooljet-mcp-5gl9</link>
      <guid>https://dev.to/tooljet/build-a-deployment-health-dashboard-with-tooljet-mcp-5gl9</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Deployment &amp;amp; Health Dashboard?
&lt;/h2&gt;

&lt;p&gt;Engineering teams that run many services lose time when an alert fires, because on-call checks the metrics tool, the deployment pipeline and the incident tracker separately before knowing where to look. Here you build a deployment health dashboard with ToolJet MCP so one screen shows whether a problem began when something shipped. An agent generated the result as a structured ToolJet application, with data, queries and interface together, and the team keeps it running. You will see the timeline, the incident flow and the rollout page, and you can reproduce all of it from one prompt.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdeployment-health-dashboard-app-timeline-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdeployment-health-dashboard-app-timeline-1.png" title="Deployment &amp;amp; Health Dashboard built with ToolJet MCP: Page one: error rate and p95 per service on one 24-hour axis, with deploys as dotted lines and markers and incidents shaded across it, next to the open-incident list." alt="Page one (build a deployment health dashboard with ToolJet MCP)" width="799" height="630"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Page one: error rate and p95 per service on one 24-hour axis, with deploys as dotted lines and markers and incidents shaded across it, next to the open-incident list.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdeployment-health-dashboard-app-timeline-2-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdeployment-health-dashboard-app-timeline-2-1.png" title="Deployment &amp;amp; Health Dashboard built with ToolJet MCP: Page two: current rollouts with strategy, status, progress, health and any rollback note." alt="Page two (build a deployment health dashboard with ToolJet MCP)" width="799" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Page two: current rollouts with strategy, status, progress, health and any rollback note.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Find Which Deployment Caused an Outage
&lt;/h2&gt;

&lt;p&gt;Find the deployment behind an incident by plotting error rate, response time, deploys and open incidents on one shared time axis so the order of events is visible at a glance. &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; lets a coding agent build this as a working app with the data, queries and interface in place.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collect error rate and response time for every service on one shared time axis&lt;/li&gt;
&lt;li&gt;Mark every deployment on the timeline with what shipped, who shipped it and the commit range&lt;/li&gt;
&lt;li&gt;Shade open incidents across the timeline so overlaps with deploys stand out&lt;/li&gt;
&lt;li&gt;Show unhealthy and recently deployed services first and collapse the healthy ones&lt;/li&gt;
&lt;li&gt;Acknowledge the incident and share a note with the affected services and recent deploys&lt;/li&gt;
&lt;li&gt;Record any rollback with a reason and the person who made the call&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How the Timeline, Deploy Markers and Incident Bands Work
&lt;/h2&gt;

&lt;p&gt;The first page stacks two charts on a shared 24 hour axis, error rate on top and response time underneath, with one line per service. With 30 services on one axis the chart is unreadable, so only unhealthy, recently deployed and pinned services are drawn, and the rest collapse into a healthy count you can expand. Every deployment appears as a dotted line and a marker. Hovering a marker shows what shipped, who shipped it and the commit range, and clicking it filters the whole page to the hour before and two hours after that deploy. Incidents appear as shaded bands, and on-call acknowledges them from the list beside the chart.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Error rate and response time per service on one shared 24 hour axis&lt;/li&gt;
&lt;li&gt;Deployment markers with hover details and a click that filters the page to that deploy&lt;/li&gt;
&lt;li&gt;Incident bands across the timeline and an acknowledge action that drafts an incident note&lt;/li&gt;
&lt;li&gt;Unhealthy and recently deployed services shown by default, with pinning for each engineer&lt;/li&gt;
&lt;li&gt;A rollouts page with a status filter and a rollback action reserved for release managers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Deployment Health Dashboard With ToolJet MCP From One Prompt
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Consolidated Build Prompt
&lt;/h2&gt;

&lt;p&gt;The real build took several passes, and the requirements are consolidated into one prompt that could have been used from the start. You can use it to reproduce the dashboard in a single shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a dense, dark service health app in ToolJet for the engineering team of a healthtech company running about 30 services, using ToolJet Database with sample data for services, metrics, deployments, incidents, pins and rollouts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep it to two pages. Service health shows one chart with error rate stacked over response time on a shared 24 hour axis in Toronto time, one line per service, with every deployment marked by a dotted line and a marker. Hovering a marker shows what shipped, who shipped it and the commit range. Clicking it filters the whole page to the window from one hour before to two hours after that deploy, with a Clear window button. Rollouts lists current rollouts with strategy, status, progress, health and any rollback note, with a status filter and search.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;By default show only unhealthy services, services deployed in the last 2, 4 or 8 hours, and each engineer's pinned services, up to three. Collapse the rest into a healthy count that expands to grey lines. Add an open incidents list and a services table under the chart, and a one line status bar instead of KPI tiles.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;On-call engineers can acknowledge an incident, which opens an editable note listing the affected services, when the error rate started climbing and the deploys in the preceding hour. Confirming saves the note and copies it to the clipboard. Only release managers can mark a rollout as rolled back, with a required reason. All engineers can view the app. Create groups for engineers, on-call and release managers.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How ToolJet MCP Builds the Whole Application
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application rather than the screen, so the data model, the queries, the components and the wiring between them all land as one structured ToolJet application, as described in the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt;. Enterprise app building also covers data connectivity, workflows, permissions and ongoing change, and the generated application sits on a runtime that carries those where supported instead of handing the team a codebase to operate. From there you can keep using AI, switch to visual editing, or drop into code where a case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Broke During the Build and How Was It Fixed?
&lt;/h2&gt;

&lt;p&gt;Clicking a deploy marker at first did nothing. The chart reported the clicked time without seconds, while the lookup that finds the deploy used keys that included them, so no deploy matched. The lookup now compares the time to the minute and checks the series name, and the click filters the page as intended.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Finished Build Contains
&lt;/h2&gt;

&lt;p&gt;The table shows what the finished build contains.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;32&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;2 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdeployment-health-dashboard-app-components-inspector-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F11%2Fdeployment-health-dashboard-app-components-inspector-1.png" title="Deployment &amp;amp; Health Dashboard built with ToolJet MCP: components" alt="Deployment &amp;amp; Health Dashboard component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Industries Can Use This App?
&lt;/h2&gt;

&lt;p&gt;Any engineering team that runs many services and has to check a metrics tool, a deployment pipeline and an incident tracker separately when something breaks. Healthtech, fintech, e-commerce and SaaS platform teams with an on-call rotation fit the same pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can View, Acknowledge and Roll Back
&lt;/h2&gt;

&lt;p&gt;Three groups were created: engineers, on-call and release managers, each with view access to the app. In the app, the Acknowledge button is only enabled for on-call members and the Mark rolled back column is only shown to release managers. The groups have no members yet. Restricting the acknowledge and rollback queries on the server needs a ToolJet plan feature that was not available on this instance, so those two rules are enforced in the interface only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Deployment Monitoring Dashboard
&lt;/h2&gt;

&lt;p&gt;The dashboard holds incident notes, deploy history and the right to roll a release back. ToolJet covers that governance at the platform layer, so you configure it once, not per app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when an incident is acknowledged, post the generated note to the incident channel in Slack, email the release managers through Gmail, and write the outcome back to &lt;code&gt;sh_incidents&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;The dashboard answers the question on-call actually asks: did this problem start when something shipped. Putting deploys, error rate, response time and incidents on one time axis removes the tab switching, and the default view keeps 30 services readable by drawing only the ones that need attention. On-call acknowledges an incident with a note already written, and release managers record a rollback with a reason. Because the result is a real, editable ToolJet application, the team can change thresholds, pages or access as needs change. You can build it yourself on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own deployment health dashboard with ToolJet MCP, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=deployment-health-dashboard-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt; to map it onto your own services. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP is a server that lets a coding agent create ToolJet applications from a written description, including the data model, queries, pages and components. The agent builds the app inside ToolJet, so you open and edit it like any other ToolJet app.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does a deployment health dashboard show whether a problem started with a deploy?
&lt;/h3&gt;

&lt;p&gt;Every deployment is drawn as a dotted line and a marker on the same time axis as error rate and response time. Hover a marker to see what shipped, who shipped it and the commit range, or click it to filter to the surrounding window.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I reproduce the deployment health dashboard from a single prompt?
&lt;/h3&gt;

&lt;p&gt;Yes, the consolidated prompt describes both pages, the six tables, the timeline behavior and the access rules. Give it to an agent connected to ToolJet MCP and review the result in the ToolJet editor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to write code to build the dashboard with ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;No code is needed to describe or generate it. The timeline logic lives in a JavaScript query that you can edit, or you can leave it alone and adjust the pages visually.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I change the dashboard after ToolJet MCP generates it?
&lt;/h3&gt;

&lt;p&gt;Yes, the result is a normal ToolJet application, so you edit pages, queries and styling in the visual editor. Service limits live in a database table, so you change which services count as unhealthy by editing rows.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the dashboard read my real metrics, pipeline and incident tools?
&lt;/h3&gt;

&lt;p&gt;Yes, ToolJet connects to databases and APIs, so each feed can come from a connected data source instead of a table. You map each source's fields to the ones the queries expect.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the dashboard after the agent finishes building it?
&lt;/h3&gt;

&lt;p&gt;It stays a structured ToolJet application on a runtime that handles data connections, roles and releases where supported. When requirements change, you or the agent edit the same application instead of operating generated code.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a BigQuery Sales Analytics Dashboard with ToolJet MCP</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Fri, 30 Oct 2026 13:38:51 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-bigquery-sales-analytics-dashboard-with-tooljet-mcp-40kn</link>
      <guid>https://dev.to/tooljet/build-a-bigquery-sales-analytics-dashboard-with-tooljet-mcp-40kn</guid>
      <description>&lt;h2&gt;
  
  
  What Is a BigQuery Sales Analytics Dashboard?
&lt;/h2&gt;

&lt;p&gt;If you need to build a sales analytics dashboard with ToolJet MCP, this guide shows how to turn thelook_ecommerce into a live two-page view. ToolJet MCP creates the structured ToolJet application, with data, queries, and interface together. The dashboard gives analysts one place to compare revenue, orders, average order value, gross margin, return rate, conversion, and cohort retention without stitching charts together by hand. By the end, you can recreate the two-page layout, shared filters, and product drilldowns from BigQuery.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fbigquery-sales-analytics-dashboard-app-sales.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fbigquery-sales-analytics-dashboard-app-sales.png" title="BigQuery Sales Analytics Dashboard built with ToolJet MCP: Sales performance: filters, five KPI tiles with change against the prior period, daily revenue with a 7-day average, category donut and the top products table with the product side panel." alt="Sales performance (build a sales analytics dashboard with ToolJet MCP)" width="800" height="1042"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sales performance: filters, five KPI tiles with change against the prior period, daily revenue with a 7-day average, category donut and the top products table with the product side panel.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fbigquery-sales-analytics-dashboard-app-sales-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fbigquery-sales-analytics-dashboard-app-sales-2.png" title="BigQuery Sales Analytics Dashboard built with ToolJet MCP: Customers and channels: customer KPIs, the website funnel, revenue map by country, traffic sources, age and gender, and cohort retention." alt="Customers and channels (build a sales analytics dashboard with ToolJet MCP)" width="800" height="848"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Customers and channels: customer KPIs, the website funnel, revenue map by country, traffic sources, age and gender, and cohort retention.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Track Ecommerce Sales Performance?
&lt;/h2&gt;

&lt;p&gt;Track ecommerce sales performance by pulling live order, customer and product data into a dashboard with shared filters, trend views and drilldowns that answer revenue and conversion questions. The &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; path lets a coding agent build that as a working app, so the same requirements become a live dashboard.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect the public sales tables&lt;/li&gt;
&lt;li&gt;Shape order and customer queries&lt;/li&gt;
&lt;li&gt;Build shared filters for date country and category&lt;/li&gt;
&lt;li&gt;Render KPIs charts heatmaps and tables&lt;/li&gt;
&lt;li&gt;Wire category drilldowns and product side panels&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What Does The Dashboard Include?
&lt;/h2&gt;

&lt;p&gt;The first page opens with a compact filter bar, then the sales KPIs, daily revenue trend, category split, department bars, brand ranking, order heatmap and top products table. The second page keeps the same controls in place and swaps in customer and channel analysis, so the same date, country and category choices keep working across the whole dashboard. A category slice tightens the view everywhere on page one, and a product row opens a side panel with that product's revenue trend and country mix for the selected range. The layout stays dense, with cards, pills and chart blocks that read cleanly on a screen without wasting space.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live sales KPIs with prior-period change&lt;/li&gt;
&lt;li&gt;Daily revenue trend with a seven-day moving average&lt;/li&gt;
&lt;li&gt;Shared date, country and category filters across both pages&lt;/li&gt;
&lt;li&gt;Category and product drilldowns with a side panel&lt;/li&gt;
&lt;li&gt;Customer and channel views for funnel, map and cohort analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Sales Analytics Dashboard with ToolJet MCP, BigQuery
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Rebuild It From One Prompt?
&lt;/h2&gt;

&lt;p&gt;The real build took a few passes, and the requirements are consolidated here into one prompt that could have been used from the start. Use it to reproduce the same dashboard in a single run without having to reconstruct the iterations.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a ToolJet app with 2 pages, using only native components, a dense layout and slightly larger fonts, on the BigQuery public dataset bigquery-public-data.thelook_ecommerce. Use a teal, gold, coral and cream look with rounded cards, pill buttons and soft coloured shadows, and a teal title band at the top of each page. Page 1, Sales performance: a filter bar with date range (30, 90 or 365 days), country and product category, plus a Reset button; five KPI tiles (revenue, orders, average order value, gross margin, return rate) each showing the change against the prior period; a daily revenue area chart with a 7-day moving average; a revenue by category donut; a monthly revenue by department stacked bar; a top 10 brands chart with margin; a weekday by hour orders heatmap; and a top 15 products table with a share-of-revenue bar. Drilldowns: clicking a donut slice sets the Product category filter so the whole page drills into it; clicking a product row opens a side panel with that product's daily revenue for the selected range and its top 5 countries by revenue, and the panel opens on the top product by default. Page 2, Customers and channels: four KPI tiles (new customers, repeat purchase rate, revenue per customer, conversion rate), a website funnel from home to purchase with drop-off between steps, a choropleth map of revenue by customer country, revenue by traffic source, customers by age band and gender, and a monthly cohort retention heatmap. The filters are shared across both pages. Charts are the native Chart component in Plotly JSON mode, all in the same teal, gold and coral palette.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does ToolJet MCP Assemble It?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, not just the screen: the data model, queries, component tree and wiring land together as one structured ToolJet application, and the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; shows the path. Enterprise app building does not end at the interface, so the generated app sits on a runtime that carries data connectivity, workflows, permissions, deployment and ongoing change where supported instead of handing the team a codebase to operate themselves. The path stays open, so you can move from AI generation to visual editing to code where a case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Did The Funnel Need Repair?
&lt;/h2&gt;

&lt;p&gt;The funnel first rendered as flat bars, which made every step look identical. The cause was a strict ordered funnel that returned the same count at each step, and the query was adjusted so the drop-off now appears correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did ToolJet MCP Generate?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;0 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fbigquery-sales-analytics-dashboard-app-components-inspector.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fbigquery-sales-analytics-dashboard-app-components-inspector.png" title="BigQuery Sales Analytics Dashboard built with ToolJet MCP: components" alt="BigQuery Sales Analytics Dashboard component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Teams Use Ecommerce Analytics?
&lt;/h2&gt;

&lt;p&gt;Retail and e-commerce teams, especially fashion and apparel, plus any business that keeps order, product and web event data in BigQuery and wants a shared sales and customer view without a separate BI tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Use And Edit It?
&lt;/h2&gt;

&lt;p&gt;The app reads only public, read-only BigQuery data and has no write paths, so no roles or permission groups were set up. Anyone given access to the app in the workspace sees the same dashboard and can change the filters; filters are per visit and are not saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automating Processes with ToolJet Workflows and Sub-Workflows
&lt;/h2&gt;

&lt;p&gt;A BigQuery Sales Analytics Dashboard app often needs work to happen behind the scenes, and ToolJet Workflows automate it with a visual, node-based editor that apps, webhooks and schedules can trigger. Notifications, multi-system updates and approvals run on the server instead of in someone's browser.&lt;/p&gt;

&lt;p&gt;If the sales dashboard needs a scheduled report or an alert when revenue drops, ToolJet Workflows can handle that in the background. The same app can publish updates to the team without changing the dashboard itself.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-workflows-flow-4.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-workflows-flow-4.png" title="Automating Processes with ToolJet Workflows and Sub-Workflows" alt="Three cards: trigger a workflow from an app, webhook or schedule, run nodes, and add server-side code" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Automating Processes with ToolJet Workflows and Sub-Workflows&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Workflow Triggers: Apps, Webhooks and Schedules
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/triggers/app/" rel="noopener noreferrer"&gt;Triggering workflows from an app&lt;/a&gt;:&lt;/strong&gt; add a Run Workflow query in the query panel, pass parameters and attach it to an event handler such as a button click or form submit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/triggers/webhook/" rel="noopener noreferrer"&gt;Webhook triggers&lt;/a&gt;:&lt;/strong&gt; start a workflow when an external system sends an HTTP request, with a separate endpoint URL for each environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/triggers/scheduler/" rel="noopener noreferrer"&gt;Scheduled workflows&lt;/a&gt;:&lt;/strong&gt; run on intervals or cron expressions in a chosen timezone, available from the Team plan.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Sub-Workflows, Logic and Code Nodes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/nodes/wf/" rel="noopener noreferrer"&gt;Workflow node for sub-workflows&lt;/a&gt;:&lt;/strong&gt; call one workflow from another and pass parameters, so shared steps such as logging or notifications live in one reusable child workflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic nodes:&lt;/strong&gt; branch with If-Else and iterate with Loop nodes, as outlined in the &lt;a href="https://docs.tooljet.com/docs/workflows/overview/" rel="noopener noreferrer"&gt;ToolJet Workflows overview&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/nodes/ds/" rel="noopener noreferrer"&gt;Data source nodes&lt;/a&gt;:&lt;/strong&gt; read and write databases, REST or GraphQL APIs and SaaS tools inside the flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/nodes/logic/js/" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt; and &lt;a href="https://docs.tooljet.com/docs/workflows/nodes/logic/py/" rel="noopener noreferrer"&gt;Python&lt;/a&gt; nodes:&lt;/strong&gt; transform data and apply business logic in server-side code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/workflows/versions-env/environments/" rel="noopener noreferrer"&gt;Workflow environments&lt;/a&gt;:&lt;/strong&gt; build and test in Development and Staging before running in Production, on the Enterprise plan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Workflows let the BigQuery Sales Analytics Dashboard app hand off slow or multi-step work, such as alerts or updates to other systems, to a reusable automation that any app in the workspace can call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Sales Analytics Dashboard
&lt;/h2&gt;

&lt;p&gt;This dashboard can hold revenue, customer profiles, and country, age, and gender data. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a daily sales report is published, post a Slack message to the manager, email the analyst through Gmail, and write the result back to &lt;code&gt;events&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This build shows a sales analytics dashboard assembled from live BigQuery data, with shared filters, drilldowns, KPI tiles, chart views and a product side panel that supports day-to-day analysis. The team gets one place to compare revenue, orders, margin, conversion and customer behaviour without stitching together spreadsheets or custom scripts. Building a sales analytics dashboard with ToolJet MCP leaves the result inside ToolJet, so the same application can keep evolving as questions change and the data model shifts. That matters when the dashboard becomes part of the team’s daily operating rhythm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build a sales analytics dashboard with ToolJet MCP on your own data, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=bigquery-sales-analytics-dashboard-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt; to adapt the pattern. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does ToolJet MCP do for a sales analytics dashboard?
&lt;/h3&gt;

&lt;p&gt;It turns the requirements into a structured ToolJet application with pages, queries, charts, and shared filters already wired together. The result stays editable inside ToolJet instead of becoming a one-off export that the team has to rebuild elsewhere.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does the BigQuery sales analytics dashboard show from TheLook data?
&lt;/h3&gt;

&lt;p&gt;It covers revenue, orders, margin, return rate, conversion, cohort retention, and product performance from thelook_ecommerce. It also includes customer and channel views, so analysts can move from sales totals to traffic and retention without changing systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you reproduce the BigQuery sales analytics dashboard from the prompt?
&lt;/h3&gt;

&lt;p&gt;Yes. Use the prompt as the build spec, connect the live BigQuery dataset, and let the agent create the pages, filters, and drilldowns in one pass. Then verify the category filter, the country filter, and the product side panel.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need to write code for the charts and filters in ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;You can keep most of the work visual, because the charts, KPI tiles, and filters are standard application components. Code is there for query shaping or custom behaviour when the query needs a specific result, not as the default path.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the BigQuery sales analytics dashboard after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The generated application stays inside ToolJet as a working runtime that carries data connectivity, workflows, permissions, deployment, and ongoing change where supported. That means the team keeps the same pages, filters, and queries in one place, and can edit visually or in code when a requirement changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you edit the BigQuery sales analytics dashboard after generation?
&lt;/h3&gt;

&lt;p&gt;Yes. You can adjust chart settings, layout, query logic, and drilldowns after generation, then rerun the same views against new date ranges or categories. That makes the dashboard part of day-to-day analysis rather than a frozen output.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the BigQuery sales analytics dashboard?
&lt;/h3&gt;

&lt;p&gt;Yes, if the team shares access to the application. Analysts can tune queries, product people can review the charts, and managers can inspect the same data without moving it between separate files.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a Process Documentation App With ToolJet MCP</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Thu, 29 Oct 2026 14:27:28 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-process-documentation-app-with-tooljet-mcp-3hed</link>
      <guid>https://dev.to/tooljet/build-a-process-documentation-app-with-tooljet-mcp-3hed</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Process Governance Studio?
&lt;/h2&gt;

&lt;p&gt;You still manage controlled process records in a shared spreadsheet only one person knows how to work, and that slows approval, versioning, and review. Build a process documentation app with ToolJet MCP when you need one place for step lists, version history, and controlled-document review. The result is a structured ToolJet application with data, queries, and interface together, so your team keeps running it. By the end, you have a two-page process documentation app that keeps approved history tied to the diagram and the register.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fprocess-governance-studio-app-record-5.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fprocess-governance-studio-app-record-5.png" title="Process Governance Studio built with ToolJet MCP: The Process Record page: approved banner, controlled-document header and the diagram drawn from the step list." alt="The Process Record page (build a process documentation app with ToolJet MCP)" width="800" height="1882"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Process Record page: approved banner, controlled-document header and the diagram drawn from the step list.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fprocess-governance-studio-app-record-2-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fprocess-governance-studio-app-record-2-3.png" title="Process Governance Studio built with ToolJet MCP: The Process Register with counters, the overdue-for-review list and every process." alt="The Process Register with counters, the overdue-for-review list and (build a process documentation app with ToolJet MCP)" width="800" height="658"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Process Register with counters, the overdue-for-review list and every process.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Manage Controlled Process Documents?
&lt;/h2&gt;

&lt;p&gt;Track controlled process documents by listing each step, owner, control, and decision point, then keep the approved record in an immutable ledger for review. &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; lets a coding agent build that as a working app inside the platform.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;List each step with owner, control, and decision points&lt;/li&gt;
&lt;li&gt;Draw the process flow from the ordered steps&lt;/li&gt;
&lt;li&gt;Register the process with version, status, and review cycle&lt;/li&gt;
&lt;li&gt;Approve the version or return it for revision&lt;/li&gt;
&lt;li&gt;Compare a past version and confirm the ledger entry&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Does the Process Record Page Work?
&lt;/h2&gt;

&lt;p&gt;On the Process Record page, you read one process at a time, edit the step list, and watch the diagram redraw from that list. Above it, the controlled-document header sits with the status banner, the version selector, the as-at-date control, and the approval state, so every view carries the same context. That same layout lets a reviewer compare a past state with the current one. The banner and stamp stay visible even in shared links, so a draft cannot pass for an approved record. When you change a step, the swimlanes stay grouped by owner and the diagram updates from the list. The register page gives a compact portfolio view with current version, status, review cycle, overdue items, and the owner responsible for each process.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step edits redraw the flow diagram automatically&lt;/li&gt;
&lt;li&gt;Swimlanes group the process by owner&lt;/li&gt;
&lt;li&gt;Status banners and stamps stay visible in shared links&lt;/li&gt;
&lt;li&gt;Approved versions can be compared side by side&lt;/li&gt;
&lt;li&gt;The register shows review timing and overdue items&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Process Documentation App With ToolJet MCP Walkthrough
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Prompt Drives the Build?
&lt;/h2&gt;

&lt;p&gt;The real build took several passes, and the requirements are now consolidated into one prompt that could have driven the whole app from the start. You can use that single prompt to reproduce the same pages, data split, diagram logic, and review rules in one shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a ToolJet app with 2 pages for the compliance team of an Irish medical device manufacturer. Page 1, Process Record: a process owner defines a process as a list of steps (what happens, owner, control applied, decision points with Yes and No branches) and the flow diagram is drawn automatically from that list, grouped in swimlanes by owner, so changing a step changes the picture. Show a clear status banner and stamp (APPROVED vN, DRAFT, IN REVIEW, SUPERSEDED) wherever a process is viewed, including shared links, and print the status inside the diagram so a draft can never be mistaken for an approved process. Process owners edit their own processes and submit them; the compliance manager approves each version (not their own processes) or returns it; everyone can view approved processes. Keep every approved version with its date, approver and change note in an immutable ledger; let someone view the diagram as it stood at any version or past date; show a side-by-side comparison of two versions highlighting steps added, removed, changed owner or edited. Page 2, Process Register: list all processes with owner, current version, status, last approved and next review due; add a review interval per process and show everything overdue for review with the owner responsible, plus counters. Use ToolJet Database for the process register and the working draft steps, and PostgreSQL for the approved-version ledger (versions and step snapshots, with triggers that block updates and deletes). Show a controlled-document header (revision, ISO 13485 clause, department, classification, retention, distribution). Use only ToolJet native components, enterprise grade, information dense with little white space and slightly larger fonts, in an Archival Ledger look: paper background, ink-green accent, serif type, square corners.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does ToolJet MCP Turn Requirements Into a Build?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, the data model, pages, components, queries, and the wiring between them, so the result lands as one structured ToolJet application inside the platform rather than a codebase you have to run separately. The generated app sits on a runtime that carries data connectivity, workflows, permissions, deployment, and ongoing change where supported, instead of handing you a codebase to operate yourself. Read the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; for the product path, then move from generation into visual editing and code where a case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What SQL Workaround Did We Use?
&lt;/h2&gt;

&lt;p&gt;One draft field stayed blank after the first pass because SQL execution was disabled in this workspace. The fix was to fill that column with a bulk update by primary key, and the record page rendered correctly after that, with the table syncing cleanly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did ToolJet MCP Generate?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB + PostgreSQL tables&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fprocess-governance-studio-app-components-inspector-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fprocess-governance-studio-app-components-inspector-3.png" title="Process Governance Studio built with ToolJet MCP: components" alt="Process Governance Studio component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Process Teams Use It?
&lt;/h2&gt;

&lt;p&gt;Medical device manufacturing and other regulated industries that keep controlled process documents, such as pharmaceuticals, diagnostics, aerospace and food production, where an auditor can ask what a process looked like on a past date.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Access Process Records?
&lt;/h2&gt;

&lt;p&gt;Everyone in the company can view approved processes. Process Owners can edit and submit their own processes. Compliance Managers can approve or return any process but cannot approve one they own. The approval and edit queries are permission-restricted to those groups and workspace admins, and the interface hides the controls from everyone else.&lt;/p&gt;

&lt;h2&gt;
  
  
  ToolJet Database: Built-In PostgreSQL Storage for Full-Stack Apps
&lt;/h2&gt;

&lt;p&gt;A Process Governance Studio app needs somewhere to keep its records, and ToolJet Database gives it a built-in, PostgreSQL-backed database with no separate server to provision or connect. Builders can create tables, relate them and query them from the same platform where the app is built.&lt;/p&gt;

&lt;p&gt;The compliance team keeps &lt;code&gt;pd_processes&lt;/code&gt; and &lt;code&gt;pd_steps&lt;/code&gt; in ToolJet Database, while &lt;code&gt;pd_versions&lt;/code&gt; and &lt;code&gt;pd_version_steps&lt;/code&gt; hold the approved ledger. That keeps working data and history close to the app without a separate database server in the middle.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-tjdb-4.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-tjdb-4.png" title="ToolJet Database: Built-In PostgreSQL Storage for Full-Stack Apps" alt="Flow: create ToolJet Database tables in the database editor, query them from the app in GUI or SQL mode with no connection setup, and run them on ToolJet Cloud or your own PostgreSQL" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ToolJet Database: Built-In PostgreSQL Storage for Full-Stack Apps&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tables, Data Types and Relationships
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/tooljet-database/" rel="noopener noreferrer"&gt;ToolJet Database overview&lt;/a&gt;:&lt;/strong&gt; keep tables in a secure database that is only accessible within your ToolJet organization, on both ToolJet Cloud and self-hosted deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/database-editor/" rel="noopener noreferrer"&gt;Database editor&lt;/a&gt;:&lt;/strong&gt; create tables and edit, search, filter and sort rows in a spreadsheet-like interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/data-types/" rel="noopener noreferrer"&gt;Supported data types&lt;/a&gt;:&lt;/strong&gt; serial, varchar, int, bigint, float, boolean, date with time and jsonb columns, with an automatic serial id primary key on every new table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/constraints/foreign-key/" rel="noopener noreferrer"&gt;Foreign keys&lt;/a&gt;:&lt;/strong&gt; link tables and choose what happens to a row when the referenced row is updated or deleted, keeping referential integrity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Querying ToolJet Database from Apps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/querying-tooljet-db/" rel="noopener noreferrer"&gt;GUI and SQL queries&lt;/a&gt;:&lt;/strong&gt; list, filter, sort, aggregate and group rows in GUI mode, or write SQL directly in the SQL editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works like any data source:&lt;/strong&gt; ToolJet Database queries bind to components and events the same way as other data sources, without connection setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/env-vars/" rel="noopener noreferrer"&gt;Self-hosted configuration&lt;/a&gt;:&lt;/strong&gt; on your own deployment, ToolJet Database runs on a PostgreSQL database you configure and is exposed to the app through PostgREST.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema export:&lt;/strong&gt; export table schemas to a JSON file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This lets the Process Governance Studio app go full stack in one platform, with data, logic and UI together, while external databases can still be connected later. Table limits vary by plan on the &lt;a href="https://www.tooljet.com/pricing" rel="noopener noreferrer"&gt;ToolJet pricing page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Process Documentation App
&lt;/h2&gt;

&lt;p&gt;A process app holds controlled documents, approval notes, and version history. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a version is approved, post to the process owner in Slack, email the compliance manager through Gmail, and write the decision back to &lt;code&gt;pd_versions&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This process documentation app for controlled documents turns a step list into a live diagram, a register, and an approval ledger that stay aligned. The compliance team gets one place to edit a process, review current status, and open a past approved version without hunting through spreadsheets or side files. Side-by-side comparison makes version changes visible, and the immutable ledger preserves approved history with date and approver. The result is an editable ToolJet application that keeps the record, the diagram, and the review process together as the process changes over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build a process documentation app with ToolJet MCP for your compliance team, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=process-governance-studio-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt;. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does ToolJet MCP do for process documentation apps?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP takes a written process spec and turns it into a working ToolJet application. The data model, pages, queries, and wiring land together inside the platform, so you start from a real app instead of a loose draft.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does Process Governance Studio show on each page?
&lt;/h3&gt;

&lt;p&gt;Process Governance Studio shows one process, its controlled header, its current state, the step diagram, the version ledger, and a comparison view on the Process Record page. The Process Register page shows the full portfolio with owners, current versions, review timing, and overdue items.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you reproduce Process Governance Studio from the prompt?
&lt;/h3&gt;

&lt;p&gt;You use the prompt as the single source of requirements and build the two pages around the table split it describes. That gives you the same register, approved history, and step-driven diagram without reconstructing the plan from notes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need to write code for Process Governance Studio?
&lt;/h3&gt;

&lt;p&gt;No code is required for the core layout and data flow. You can use the visual builder for the pages and add code only where the diagram logic or other custom behaviour needs it.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to Process Governance Studio after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The result is a structured ToolJet application with data, queries, pages, and wiring already in place. You keep editing it in the platform, and the runtime carries the workflow and access layers where supported.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Process Governance Studio use ToolJet Database and PostgreSQL together?
&lt;/h3&gt;

&lt;p&gt;Yes. This build keeps draft data in ToolJet Database and approved history in PostgreSQL, so working edits and immutable ledger records stay separate by purpose while the register reads them together in one app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the same process app?
&lt;/h3&gt;

&lt;p&gt;Yes, with roles and permissions. Process owners edit their own processes, and compliance managers approve versions, so different people can work in the same app at once without sharing the same write path.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build A Visual Quality Gate With ToolJet MCP for inspectors</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Wed, 28 Oct 2026 14:28:48 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-visual-quality-gate-with-tooljet-mcp-for-inspectors-35dm</link>
      <guid>https://dev.to/tooljet/build-a-visual-quality-gate-with-tooljet-mcp-for-inspectors-35dm</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Visual Quality Gate?
&lt;/h2&gt;

&lt;p&gt;You can build a visual quality gate with ToolJet MCP for bench inspection. It compares part photos with approved references and outlines only the regions that differ, so the check stays clear. Inspectors can pass, fail, or send a second opinion, while the quality engineer manages references and sensitivity settings. The same flow gives the plant manager a summary of which region keeps failing. On a bench tablet, the team can review parts without leaving the line or relying on a printed reference photo.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged.png" title="Visual Quality Gate built with ToolJet MCP: The Inspect page: the approved reference beside the part photo, with one of five regions flagged and outlined." alt="The Inspect page (build a visual quality gate with ToolJet MCP)" width="800" height="626"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Inspect page: the approved reference beside the part photo, with one of five regions flagged and outlined.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged-2.png" title="Visual Quality Gate built with ToolJet MCP: The second-opinion queue: the engineer sees the reference, the inspector's photo as flagged and the note before answering." alt="The second-opinion queue (build a visual quality gate with ToolJet MCP)" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The second-opinion queue: the engineer sees the reference, the inspector's photo as flagged and the note before answering.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged-3.png" title="Visual Quality Gate built with ToolJet MCP: References and regions: the engineer sets the reference photo, draws the regions that matter and sets the sensitivity per part." alt="References and regions (build a visual quality gate with ToolJet MCP)" width="799" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;References and regions: the engineer sets the reference photo, draws the regions that matter and sets the sensitivity per part.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged-4.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-flagged-4.png" title="Visual Quality Gate built with ToolJet MCP: The Summary page: KPI tiles, pass rate by part against a 90% target, a heat-coloured part-by-shift table and where parts failed." alt="The Summary page (build a visual quality gate with ToolJet MCP)" width="800" height="768"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Summary page: KPI tiles, pass rate by part against a 90% target, a heat-coloured part-by-shift table and where parts failed.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Review Part Defects?
&lt;/h2&gt;

&lt;p&gt;Track moulding defects by photographing each part beside the approved reference, outlining only the regions that differ, and recording pass, fail or second opinion with a short note. &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; lets a coding agent build that workflow as a working app with the data, screens and decision flow connected.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose the part number and pull its approved reference&lt;/li&gt;
&lt;li&gt;Capture or upload the inspection photo&lt;/li&gt;
&lt;li&gt;Mark the differing regions and step through them&lt;/li&gt;
&lt;li&gt;Record pass, fail or second opinion with a note&lt;/li&gt;
&lt;li&gt;Review the engineer reply and clear the queue&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Does the Inspect Page Work?
&lt;/h2&gt;

&lt;p&gt;The Inspect page keeps the capture, comparison and decision flow in one place for the inspector, with the part picker, camera upload, approved reference and photo preview arranged for a bench tablet. A single view shows only the regions that differ, and the inspector can step through the flagged boxes with Prev and Next instead of hunting across the image. The same page keeps the second-opinion queue close at hand, so the engineer sees both photos and the note, then writes back a Pass or Fail answer that the original inspector can mark as seen. References &amp;amp; regions lets the engineer maintain the approved photo, draw the boxes that matter, label them and set sensitivity per part, while Summary stays read only with day filters, KPI tiles, charts and the inspection log.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Side-by-side photo review with only the differing regions outlined&lt;/li&gt;
&lt;li&gt;Pass, fail and second opinion decisions with a short inspector note&lt;/li&gt;
&lt;li&gt;Engineer-controlled references, regions and sensitivity per part&lt;/li&gt;
&lt;li&gt;Second-opinion replies that flow back to the original inspector&lt;/li&gt;
&lt;li&gt;Manager summary with region failure patterns and shift-level performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Visual Quality Gate with ToolJet MCP From Prompt to App
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Was the Prompt Consolidated?
&lt;/h2&gt;

&lt;p&gt;The build took several passes to shape the screens, rules and data model into one flow. The requirements are consolidated here as a single prompt that could have been used from the start, so you can reproduce the same app in one shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Keep it to two pages. Inspect has three tabs: part capture and review, a second-opinion queue, and references plus regions. The inspector captures or uploads a part photo, compares it with the approved reference, sees only the differing regions outlined, steps through those regions with Prev and Next, and records pass, fail or second opinion with a short note. The engineer sees second opinions with both photos and the note, then sends back Pass or Fail. Summary is read only for the plant manager. It uses a production-day picker and shows KPI tiles, pass-rate views, a heat-coloured pass-rate table, fails by region, a cluster view for repeated failures and a full inspection log. Design it as a dense bench-tablet app with muted Nordic colours, soft neutrals, restrained blue accents, compact rows, large controls and high contrast for gloved hands. Use ToolJet Database for part metadata, inspection rows and roles, plus AWS S3 for photos. Make the quality engineer own the reference photo, region boxes and sensitivity. Make the inspector decide pass, fail or second opinion. Use email-based roles for Inspector, Quality engineer and Plant manager, with a preview switch for role testing. Seed four part numbers with reference photos, region boxes and sensitivities, plus a realistic multi-shift inspection history.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does ToolJet MCP Assemble It?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, data model, pages, components, queries and the wiring between them, and it creates the result as a structured ToolJet application inside ToolJet rather than handing you a codebase to run yourself. Enterprise app building does not end at the interface, because data connectivity, workflows, permissions, deployment and ongoing change are part of the job, and the generated app sits on a runtime that carries those where supported, as the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; describes. The path stays open, so you can move from AI generation to visual editing and then to code when a case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Fixed the Saved Regions View?
&lt;/h2&gt;

&lt;p&gt;The saved regions did not show up on the reference editor because the drawing component would not render defaults that were already stored. The fix was to show the saved region list alongside the photo, so the engineer could confirm the boxes before updating the reference.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did Validation Run Show?
&lt;/h2&gt;

&lt;p&gt;The results table gathers the validated day-level inspection views, the role preview and the summary output for the completed app.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;81&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;0 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-components-inspector.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvisual-quality-gate-app-components-inspector.png" title="Visual Quality Gate built with ToolJet MCP: components" alt="Visual Quality Gate component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Teams Use Visual Quality Gate?
&lt;/h2&gt;

&lt;p&gt;Injection-moulding and tier-1 automotive plants that check finished parts against a golden sample. The same pattern fits any shop floor that compares a photo with an approved reference, such as electronics enclosures, packaging or medical-device housings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Access Each View?
&lt;/h2&gt;

&lt;p&gt;Three roles are kept in a table by email. Inspectors record decisions and see the engineer's answers on their own inspections. The quality engineer sets reference photos, regions and sensitivity and answers the second-opinion queue. The plant manager gets the read-only Summary. What each role sees is controlled inside the app and a Preview as role switch lets you demo each one; no ToolJet page or query permissions were applied.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generating Apps from a Prompt with ToolJet AI
&lt;/h2&gt;

&lt;p&gt;A Visual Quality Gate app can also start from a single description: ToolJet AI, built into the product, generates a working app from a natural-language prompt, which the team then refines in the visual App Builder. It gives non-developers a fast way to create and change apps in the browser.&lt;/p&gt;

&lt;p&gt;A coding agent builds the first version of the visual quality gate, while a quality engineer can still refine the app later through ToolJet's in-browser AI chat. That keeps the inspection flow editable by the team that runs it.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-ai-builder-flow-6.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-ai-builder-flow-6.png" title="Generating Apps from a Prompt with ToolJet AI" alt="Three cards showing how to build with AI in ToolJet: describe the app in the AI chat, go deeper with queries, code and modules, and pick credits, your own key or an AI server" width="800" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Generating Apps from a Prompt with ToolJet AI&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  From Prompt to Working App
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/build-with-ai/generate-applications/" rel="noopener noreferrer"&gt;AI app generation&lt;/a&gt;:&lt;/strong&gt; describe the business app on the ToolJet home page and ToolJet builds it directly, opening the App Builder with UI components, queries and data bindings already configured.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit with a prompt:&lt;/strong&gt; update components and queries in any new or existing app, and @mention a specific component or query to target it exactly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate modules:&lt;/strong&gt; create reusable modules from a prompt inside the Module Builder.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Queries, Code and AI Model Options
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/build-with-ai/generate-queries/" rel="noopener noreferrer"&gt;AI query generation&lt;/a&gt;:&lt;/strong&gt; create fully configured queries, write JavaScript and Python snippets, and auto-sort a crowded query panel into folders.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/build-with-ai/ai-credits/" rel="noopener noreferrer"&gt;AI credits&lt;/a&gt;:&lt;/strong&gt; each AI operation consumes credits based on its complexity, and monthly credits are used before add-on credits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/tooljet-ai/bring-your-own-key/" rel="noopener noreferrer"&gt;Bring your own LLM key&lt;/a&gt;:&lt;/strong&gt; on the Enterprise plan, authenticate AI requests with your own provider key and pay the provider directly instead of using ToolJet AI credits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/tooljet-ai/tj-ai-enterprise/" rel="noopener noreferrer"&gt;ToolJet AI Enterprise&lt;/a&gt;:&lt;/strong&gt; self-hosted Enterprise customers run the AI server inside their own environment, so no AI data is sent to ToolJet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ToolJet AI is one of the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/overview/" rel="noopener noreferrer"&gt;two ways to build with AI in ToolJet&lt;/a&gt;: the in-product chat, or ToolJet MCP from coding agents such as Claude Code. Both can create and modify apps, so the Visual Quality Gate app can be refined later by prompt from the browser as well as from a developer's editor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Visual Quality Gate
&lt;/h2&gt;

&lt;p&gt;A visual quality gate holds part photos, inspection notes, and role mappings. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a second opinion is submitted, send a Slack message to the line lead, send a Gmail message to the quality engineer, and write the decision back to &lt;code&gt;vi_inspections&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This build shows a two-page visual quality gate for an automotive moulding bench, with side-by-side part review, outlined mismatch regions, a second-opinion loop and a manager summary that surfaces repeat failures. The app replaces a taped reference-photo workflow with a structured review flow that keeps the photo, the note, the engineer reply and the role logic together. With ToolJet MCP, you move from a prompt to a working ToolJet application that stays editable as part references and inspection rules change. That matters because the team keeps the same process, but the screen and the data now live in one place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own visual quality gate with ToolJet MCP on [ToolJet Cloud], then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=visual-quality-gate-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt; to map it to your parts and photos.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP is the path from a prompt to a structured ToolJet application. A coding agent uses the prompt to build the data model, screens, queries and wiring, so the result is editable software instead of a loose code dump.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Visual Quality Gate work?
&lt;/h3&gt;

&lt;p&gt;An inspector selects a part, captures or uploads a photo, and compares it with the approved reference beside it. Only the regions that differ are outlined, then the inspector records pass, fail or second opinion with a short note.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Visual Quality Gate be recreated from the consolidated prompt?
&lt;/h3&gt;

&lt;p&gt;Yes. The prompt here already consolidates the inspection flow, the summary page, the roles and the data model into one build request. You can use it as the starting point for the same app without rewriting the requirements by hand.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need to write code for the generated app?
&lt;/h3&gt;

&lt;p&gt;Not for the core flow. ToolJet MCP builds the inspection screens, data handling and decision paths, and you can still edit the result visually or add code where a specific case needs it after generation.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens after ToolJet MCP finishes?
&lt;/h3&gt;

&lt;p&gt;The app stays inside ToolJet as a real runtime application, so data connections, workflows, permissions and later changes live with the same build where supported. The team keeps editing the same system instead of throwing away the generated work as requirements change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can Visual Quality Gate use existing data sources?
&lt;/h3&gt;

&lt;p&gt;Yes. This build uses ToolJet Database for part records, inspection rows and roles, and AWS S3 for photos. A team can connect the same app to its own sources and keep the inspection history in one place.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people use Visual Quality Gate?
&lt;/h3&gt;

&lt;p&gt;Yes. Inspectors, the quality engineer and the plant manager can each use the same app through their own role, and the role switch shows each view without splitting the workflow. That keeps the inspection process shared across the team.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a Vendor Risk Register with ToolJet MCP and Jev</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Mon, 26 Oct 2026 12:10:38 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-vendor-risk-register-with-tooljet-mcp-and-jev-3m3i</link>
      <guid>https://dev.to/tooljet/build-a-vendor-risk-register-with-tooljet-mcp-and-jev-3m3i</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Vendor Risk Register?
&lt;/h2&gt;

&lt;p&gt;Build a vendor risk register with ToolJet MCP for procurement and compliance teams. The register uses &lt;a href="https://docs.tooljet.ai/docs/marketplace/plugins/marketplace-plugin-typesafe/" rel="noopener noreferrer"&gt;Jev&lt;/a&gt;, TypeSafe's decision model, to suggest a tier, score, needs-review percentage, and top risk while a person decides. Jev is TypeSafe's decision model. It turns the review flow into a structured ToolJet application with data, queries, and interface together. If your current process is a shared spreadsheet only one person knows how to work, this guide shows a better register to keep running.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-1.png" title="Vendor Risk Register built with ToolJet MCP: The Register page: KPI tiles, the vendor table with AI and confirmed tiers, and the right-hand panel with the profile, certificates and the live TypeSafe assessment for Antwerp Brokerage NV." alt="The Register page (build a vendor risk register with ToolJet MCP)" width="800" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Register page: KPI tiles, the vendor table with AI and confirmed tiers, and the right-hand panel with the profile, certificates and the live TypeSafe assessment for Antwerp Brokerage NV.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-2-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-2-1.png" title="Vendor Risk Register built with ToolJet MCP: The Audit view: tier mix by category, AI-vs-reviewer heatmap, overrides by top risk, Critical / High spend by country and the exportable review log." alt="The Audit view (build a vendor risk register with ToolJet MCP)" width="800" height="740"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Audit view: tier mix by category, AI-vs-reviewer heatmap, overrides by top risk, Critical / High spend by country and the exportable review log.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-3.png" title="Vendor Risk Register built with ToolJet MCP: The Register page in dark mode, with the same vendor selected and the TypeSafe assessment shown." alt="The Register page in dark mode, with the same vendor selected and the (build a vendor risk register with ToolJet MCP)" width="800" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Register page in dark mode, with the same vendor selected and the TypeSafe assessment shown.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-4.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-risk-register-app-register-4.png" title="Vendor Risk Register built with ToolJet MCP: The Audit view in dark mode: the charts and the review log switch with the app's theme." alt="The Audit view in dark mode (build a vendor risk register with ToolJet MCP)" width="800" height="740"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Audit view in dark mode: the charts and the review log switch with the app's theme.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Review Vendor Risk Consistently?
&lt;/h2&gt;

&lt;p&gt;Track vendor risk by keeping each supplier's profile, certificate status, incidents, performance, and review decision in one register, then use the same record for audit notes and follow-up dates. A coding agent can build that process as a working app with &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collect vendor profile details and certificate status&lt;/li&gt;
&lt;li&gt;Check incidents, performance, and financial rating&lt;/li&gt;
&lt;li&gt;Score the vendor and suggest a risk tier&lt;/li&gt;
&lt;li&gt;Review the suggestion, add a note, and confirm or override&lt;/li&gt;
&lt;li&gt;Record the decision and keep the audit trail current&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Jev Scores Vendors and Reviews?
&lt;/h2&gt;

&lt;p&gt;Jev returns a risk tier and top risk as choices with confidence and probability bars, plus a compliance score and a needs-review percentage. The Register page centers on a dense vendor table, KPI tiles, and a right-hand detail panel. Selecting a vendor opens its profile, certificate badges, recent incidents, the Jev assessment card, and the review form in one place, so the reviewer does not jump between screens. Filters narrow the list by category, tier, country, and review status. The Audit view adds stacked bars, a comparison heatmap, override trends, and a review log with CSV export, and the same layout works in light and dark mode.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Two page register and audit flow&lt;/li&gt;
&lt;li&gt;Dense vendor table with filters and detail panel&lt;/li&gt;
&lt;li&gt;Jev assessment card with confidence and review fields&lt;/li&gt;
&lt;li&gt;Required note when the confirmed tier changes&lt;/li&gt;
&lt;li&gt;CSV export for auditor review&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Set Up ToolJet MCP and the TypeSafe Datasource
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP connects your coding agent to your ToolJet workspace, so the agent can create the tables, queries and components for you. Set it up with the &lt;a href="https://docs.tooljet.ai/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP overview&lt;/a&gt; and the &lt;a href="https://github.com/ToolJet/tooljet-mcp" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt;. TypeSafe is a decision-model platform: its datasource lets a ToolJet app ask Jev typed questions and get structured answers, such as a choice, a score or a yes/no with a confidence. Add the &lt;a href="https://docs.tooljet.ai/docs/marketplace/plugins/marketplace-plugin-typesafe/" rel="noopener noreferrer"&gt;TypeSafe datasource&lt;/a&gt; to the workspace and name it typesafe, which is the name the build prompt refers to.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;At build time:&lt;/strong&gt; ToolJet MCP lets the agent create the app in your workspace.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;At run time:&lt;/strong&gt; the app calls Jev, TypeSafe's decision model, through the typesafe datasource and shows its typed answers next to the record.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Is the One Prompt for the Register?
&lt;/h2&gt;

&lt;p&gt;The build took several passes to settle the data model, page layout, and review rules. Those requirements are consolidated here into one prompt you can use from the start and reproduce in a single shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a polished internal app called Vendor Risk Register in ToolJet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Register page shows vendors with risk tier, certificate status, review status, filters, KPI tiles, and a detail panel for the selected vendor. Seed sixty vendors across the four categories, with some certificates expiring within thirty days.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Design it as a dense enterprise operations app with dark indigo and a matching light mode, one indigo accent, compact rows, strong hierarchy, and status colours used only where they help. Use ToolJet native components only, and size table columns so headers and values are never cut off.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use PostgreSQL for &lt;code&gt;vr_vendors&lt;/code&gt;, &lt;code&gt;vr_certificates&lt;/code&gt;, &lt;code&gt;vr_incidents&lt;/code&gt;, and &lt;code&gt;vr_performance&lt;/code&gt;, and ToolJet DB for &lt;code&gt;vr_reviews&lt;/code&gt;, &lt;code&gt;vr_ai_assess&lt;/code&gt;, and &lt;code&gt;vr_buyer_scope&lt;/code&gt;. The database split should keep the vendor master, certificates, incidents, performance, review decisions, cached Jev output, and buyer scope clear.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use only the existing TypeSafe datasource for the AI step. When a vendor is selected, and again after any profile edit, run the evaluation with the vendor profile and return a suggested risk tier, compliance score, needs-review percentage, and top risk. Show confidence and probability bars for the choices, and let the risk owner confirm or override the AI tier. A note is required when the final tier differs from the suggestion, and saving twice must not create a second review. The owner confirms or overrides the AI tier, and the review is logged for NIS2 and customer audits.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does ToolJet MCP Assemble the App?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, not just the screen, so the data model, pages, components, queries, and the wiring between them land together as one structured ToolJet application. The &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; shows the same path, and the TypeSafe datasource handles the evaluation flow while the generated app sits on a runtime that carries data connections, workflows, permissions, deployment, and ongoing change where supported instead of handing you a codebase to operate yourself. That matters here because a vendor review is not only a score, it is a record, a decision, and a trail that procurement and compliance both need to read. The path stays open, so you can move from AI generation to visual editing and then to code where the case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Did the Audit View Load Blank?
&lt;/h2&gt;

&lt;p&gt;The audit page opened with empty charts and a blank log when you landed on it directly from a link. The cause was that the data refresh chain only ran after an earlier page action, so the page never loaded its own data on entry. The fix makes the audit view load on open.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Verification Checks Did We Cover?
&lt;/h2&gt;

&lt;p&gt;The results table lists the verification checks that show the register loads, re-evaluates on edits, records review overrides, opens the audit view directly, and renders cleanly in both themes.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PostgreSQL tables&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Which Logistics Teams Use the Register?
&lt;/h2&gt;

&lt;p&gt;Third-party logistics, freight forwarding, warehousing and customs brokerage firms that must justify supplier risk under NIS2 and customer audits. The same pattern fits any procurement or compliance team that tiers vendors, tracks certificates and reviews, and wants an AI suggestion a named owner has to confirm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Use the Risk Register?
&lt;/h2&gt;

&lt;p&gt;Three groups were created: Risk Owners (procurement) can confirm tiers and log reviews, Compliance can view everything and export the audit log but not edit, and Category Buyers see only their own category's vendors. The two write queries are restricted to Risk Owners and admins on the server. The buyer category filter runs in the browser, and the groups have no members yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  ToolJet Database: Built-In PostgreSQL Storage for Full-Stack Apps
&lt;/h2&gt;

&lt;p&gt;A Vendor Risk Register app needs somewhere to keep its records, and ToolJet Database gives it a built-in, PostgreSQL-backed database with no separate server to provision or connect. Builders can create tables, relate them and query them from the same platform where the app is built.&lt;/p&gt;

&lt;p&gt;This register keeps &lt;code&gt;vr_reviews&lt;/code&gt;, &lt;code&gt;vr_ai_assess&lt;/code&gt;, and &lt;code&gt;vr_buyer_scope&lt;/code&gt; in ToolJet DB, so procurement and compliance keep the review data inside the app without a separate database server.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-tjdb-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-tjdb-2.png" title="ToolJet Database: Built-In PostgreSQL Storage for Full-Stack Apps" alt="Flow: create ToolJet Database tables in the database editor, query them from the app in GUI or SQL mode with no connection setup, and run them on ToolJet Cloud or your own PostgreSQL" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;ToolJet Database: Built-In PostgreSQL Storage for Full-Stack Apps&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tables, Data Types and Relationships
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/tooljet-database/" rel="noopener noreferrer"&gt;ToolJet Database overview&lt;/a&gt;:&lt;/strong&gt; keep tables in a secure database that is only accessible within your ToolJet organization, on both ToolJet Cloud and self-hosted deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/database-editor/" rel="noopener noreferrer"&gt;Database editor&lt;/a&gt;:&lt;/strong&gt; create tables and edit, search, filter and sort rows in a spreadsheet-like interface.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/data-types/" rel="noopener noreferrer"&gt;Supported data types&lt;/a&gt;:&lt;/strong&gt; serial, varchar, int, bigint, float, boolean, date with time and jsonb columns, with an automatic serial id primary key on every new table.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/constraints/foreign-key/" rel="noopener noreferrer"&gt;Foreign keys&lt;/a&gt;:&lt;/strong&gt; link tables and choose what happens to a row when the referenced row is updated or deleted, keeping referential integrity.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Querying ToolJet Database from Apps
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tooljet-db/querying-tooljet-db/" rel="noopener noreferrer"&gt;GUI and SQL queries&lt;/a&gt;:&lt;/strong&gt; list, filter, sort, aggregate and group rows in GUI mode, or write SQL directly in the SQL editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works like any data source:&lt;/strong&gt; ToolJet Database queries bind to components and events the same way as other data sources, without connection setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/env-vars/" rel="noopener noreferrer"&gt;Self-hosted configuration&lt;/a&gt;:&lt;/strong&gt; on your own deployment, ToolJet Database runs on a PostgreSQL database you configure and is exposed to the app through PostgREST.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema export:&lt;/strong&gt; export table schemas to a JSON file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This lets the Vendor Risk Register app go full stack in one platform, with data, logic and UI together, while external databases can still be connected later. Table limits vary by plan on the &lt;a href="https://www.tooljet.com/pricing" rel="noopener noreferrer"&gt;ToolJet pricing page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Vendor Risk Register
&lt;/h2&gt;

&lt;p&gt;A vendor risk register handles supplier profiles, certificate records, and review notes. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a review is submitted, post to the manager in Slack, email the employee through Gmail, and write the decision back to &lt;code&gt;vr_reviews&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This vendor risk register shows how procurement and compliance can keep vendor scoring, certificate checks, reviewer overrides, and audit history in one editable ToolJet app. The build moves the team away from a shared spreadsheet and into a register where Jev suggests a tier, the owner confirms or overrides it, and the review log stays tied to the vendor record. For a team that needs the process visible for NIS2 and customer audits, the result is a real application, not a static screen, and you can build your own vendor risk register with ToolJet MCP on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own vendor risk register with ToolJet MCP for procurement review, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=vendor-risk-register-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt;. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is ToolJet MCP for a vendor risk register?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP lets a coding agent turn vendor risk requirements into a structured ToolJet application for procurement and compliance teams. The register keeps the tables, pages, queries, and review actions together instead of leaving you with a separate codebase to assemble.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does Jev score each vendor?
&lt;/h3&gt;

&lt;p&gt;Jev returns a suggested risk tier, a compliance score, a needs-review percentage, and a top-risk label for each vendor. The risk owner sees those results on selection and can confirm or override the tier with a note.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to write code to reproduce the vendor risk register?
&lt;/h3&gt;

&lt;p&gt;No. You can reproduce the register from the prompt and then edit the layout, filters, fields, and review logic in ToolJet. The generated app stays practical for an engineer who wants to refine the result instead of starting from scratch.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does Jev decide vendor risk on its own?
&lt;/h3&gt;

&lt;p&gt;No. Jev runs the evaluation automatically when you select a vendor or edit the profile, then the risk owner confirms or overrides the suggested tier. The app never treats the suggestion as the final decision.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the vendor risk register use existing vendor data?
&lt;/h3&gt;

&lt;p&gt;Yes. The pattern fits existing vendor masters, certificate tables, incident history, performance data, review records, and buyer scope. The app in this build reads those records from connected PostgreSQL and ToolJet DB tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the same vendor risk register?
&lt;/h3&gt;

&lt;p&gt;Yes. Risk Owners can confirm tiers and log reviews, Compliance can view and export, and Category Buyers can see only their assigned category. That lets multiple people use one app while keeping actions separated by role.&lt;/p&gt;

&lt;h3&gt;
  
  
  How is the vendor risk register different from a code-only build?
&lt;/h3&gt;

&lt;p&gt;The generated app stays editable in ToolJet, and the runtime carries data connections, workflows, access control, auditing, and lifecycle management where supported. You can keep shaping the app visually or drop into code where the case needs it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a Vendor Register with Claude Code for purchasing teams</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Fri, 23 Oct 2026 12:02:00 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-vendor-register-with-claude-code-for-purchasing-teams-efj</link>
      <guid>https://dev.to/tooljet/build-a-vendor-register-with-claude-code-for-purchasing-teams-efj</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Vendor Register?
&lt;/h2&gt;

&lt;p&gt;Your purchasing team needs a vendor register with Claude Code when supplier status, review history, and renewal decisions are stuck in a shared spreadsheet only one person knows how to work. This Vendor Register turns that process into a ToolJet application for a small manufacturer, so the team can review contracts, capture fresh notes, and clear new suppliers through approval. An agent generated this and the result is a structured ToolJet application, with data, queries, and interface together, that the team keeps running. By the end, you can reproduce the same register and adapt it to your own supplier list.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-register-app-ending.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-register-app-ending.png" title="Vendor Register built with Claude Code: The register filtered to contracts ending in the next 60 days, with amber day-count chips, red Expired chips, last-review scores and one-click Renew, Renegotiate and Exit buttons." alt="The register filtered to contracts ending in the next 60 days (build a vendor register with Claude Code)" width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The register filtered to contracts ending in the next 60 days, with amber day-count chips, red Expired chips, last-review scores and one-click Renew, Renegotiate and Exit buttons.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-register-app-ending-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-register-app-ending-2.png" title="Vendor Register built with Claude Code: The review modal: vendor and last review at the top, delivery and quality ratings and a short note below." alt="The review modal (build a vendor register with Claude Code)" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The review modal: vendor and last review at the top, delivery and quality ratings and a short note below.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-register-app-ending-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fvendor-register-app-ending-3.png" title="Vendor Register built with Claude Code: The New Vendor page: intake form on the left, the purchasing head's approval queue on the right." alt="The New Vendor page (build a vendor register with Claude Code)" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The New Vendor page: intake form on the left, the purchasing head's approval queue on the right.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Track Supplier Reviews and Renewals?
&lt;/h2&gt;

&lt;p&gt;Track supplier decisions by keeping contract dates, review history, notes, and approval status in one register that buyers can update as suppliers change without rebuilding the process in spreadsheets by hand. &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; lets a coding agent turn that plan into a working app in ToolJet.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Gather supplier status, contract dates, and review history&lt;/li&gt;
&lt;li&gt;Separate active vendors from new vendor intake&lt;/li&gt;
&lt;li&gt;Flag contracts ending soon and reviews that are overdue&lt;/li&gt;
&lt;li&gt;Route new suppliers through approval before activation&lt;/li&gt;
&lt;li&gt;Record decisions and review notes in one register&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Do the Register and Intake Pages Work?
&lt;/h2&gt;

&lt;p&gt;The register page opens with the summary strip, then the buyer works from a dense table that sorts by soonest contract end and filters the list by category, contract window, and review status. Each row shows the vendor, contact, contract state, and the latest review so the buyer can see what needs attention without leaving the page. The row actions update the vendor directly, and the review button opens a modal for delivery and quality scores plus a short note. The second page keeps new supplier intake separate, with a submission form on one side and an approval queue on the other, so the purchasing head can clear pending vendors before they enter the register.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Summary strip shows active vendors, expiring contracts, expired contracts, overdue reviews, and pending approvals&lt;/li&gt;
&lt;li&gt;Filters narrow the register by search, category, contract window, and review status&lt;/li&gt;
&lt;li&gt;Row actions let buyers renew, renegotiate, or exit without leaving the list&lt;/li&gt;
&lt;li&gt;Review modal records delivery and quality scores plus a short note&lt;/li&gt;
&lt;li&gt;New-vendor form routes submissions into an approval queue before the register updates&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Vendor Register with Claude Code in ToolJet
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; and connect it to Claude Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Was the Requirements Prompt Consolidated?
&lt;/h2&gt;

&lt;p&gt;The build took several passes, and the requirements have been consolidated into one prompt that could have been used from the start. You can reproduce the same app in a single shot by giving the agent the prompt and letting it work from there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a two-page ToolJet app called Vendor Register for a purchasing team at a small manufacturer that manages about 80 suppliers. Use only native ToolJet components and give the app an auditor's register look: parchment neutrals, ink text, a deep ledger-green accent, serif mastheads, square-ish corners, dense layout, and slightly larger type. Page one, Vendor Register, shows a masthead with the ledger date, a summary strip for active vendors, contracts ending soon, expired contracts, overdue reviews, and awaiting approval, plus filters for search, category, contract window, and review status. The table shows active vendors only, sorted by soonest contract end, with an amber day-count chip or a red Expired chip, last review date with delivery and quality scores, and an Overdue chip when the review is older than 180 days or never reviewed. Include a Review button and Renew, Renegotiate, and Exit actions that appear only when the contract is ending soon or already expired. The Review modal shows the vendor and its last review, with delivery and quality dropdowns from one to five and a short review text area. The Save button stays disabled until all three fields are filled, then closes the modal and refreshes the list. Page two, New Vendor, contains a form for vendor details and notes for the purchasing head, plus an awaiting approval table with Approve and Reject actions. The Submit for approval button stays disabled until the required fields are filled, creates a Pending approval vendor, clears the form, and shows a confirmation. The queue records who decided and when, and approved vendors appear in the register. Use ToolJet Database with two tables, &lt;code&gt;pv_vendors&lt;/code&gt; and &lt;code&gt;pv_reviews&lt;/code&gt;. &lt;code&gt;pv_vendors&lt;/code&gt; holds supplier details, status, decision, notes, submitted by and at, and approved by and at. &lt;code&gt;pv_reviews&lt;/code&gt; holds delivery and quality ratings, a short note, reviewer, and review date. Load both pages through one RunJS loader that reads both tables, shapes rows and summary counts, and re-runs after every write.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does ToolJet MCP Build the App?
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; shows how the coding agent works through the data model, pages, components, queries, and wiring, then assembles the result as a structured ToolJet application inside the platform, not a loose handoff. That matters because enterprise app building does not stop at the interface, the runtime carries data connectivity, workflows, permissions, deployment, and ongoing change where supported, so the team keeps one application instead of a codebase to assemble and operate separately. The path stays open for AI generation, then visual editing, then code where a case needs it, so a buyer workflow can be shaped once and refined as the approval process changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Review Column Name Needed Fixing?
&lt;/h2&gt;

&lt;p&gt;The review table failed to create when the first schema used &lt;code&gt;comment&lt;/code&gt; as a column name, and the data layer rejected it. Renaming that field to &lt;code&gt;review_note&lt;/code&gt; fixed the issue, and the tables were created on the next pass successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did the Verification Checks Show?
&lt;/h2&gt;

&lt;p&gt;The results table shows the checks that confirmed the register page, the intake page, the filters, the row actions, the review modal, and the approval flow worked together.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;0 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Which Manufacturing Teams Use This Register?
&lt;/h2&gt;

&lt;p&gt;Small and mid-sized manufacturers, workshops and distributors whose purchasing team tracks suppliers and contract renewals in a spreadsheet. The same pattern fits facilities, construction and any team that has to decide renew, renegotiate or exit before a vendor contract lapses.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Use the Register and Approvals?
&lt;/h2&gt;

&lt;p&gt;As built, there is no role split: every user who can open the app sees both pages and can record reviews, mark contract decisions, submit vendors and press Approve or Reject. The intended model is that buyers use the register and the form while only the purchasing head approves, which would need a custom group with permissions on the approve and reject queries.&lt;/p&gt;

&lt;h2&gt;
  
  
  SOC 2 Type II and GDPR Compliance in ToolJet
&lt;/h2&gt;

&lt;p&gt;A Vendor Register app usually has to pass a security review before rollout, and ToolJet supports that review with regular SOC 2 Type II audits, GDPR compliance and documented data protection controls. Reviewers can check the platform against standards they already use instead of starting from scratch.&lt;/p&gt;

&lt;p&gt;Security, legal, and auditors care about the vendor contact details and approval history in this register, and that is where SOC 2 and GDPR reviews start.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-compliance-flow.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-compliance-flow.png" title="SOC 2 Type II and GDPR Compliance in ToolJet" alt="Flow: ToolJet audited standards (SOC 2 Type II, GDPR, trust center), data protection (TLS in transit, encryption at rest, server-side secrets), and evidence for review (audit logs, self-hosting, CJIS guide)" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;SOC 2 Type II and GDPR Compliance in ToolJet&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Audited Standards: SOC 2 Type II and GDPR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/compliance/" rel="noopener noreferrer"&gt;SOC 2 Type II audits&lt;/a&gt;:&lt;/strong&gt; ToolJet undergoes regular SOC 2 Type II audits to validate its security, availability and confidentiality standards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GDPR compliance:&lt;/strong&gt; ToolJet states that it fully complies with the General Data Protection Regulation and follows a GDPR-compliant data deletion policy, removing personal data on request or at the end of the retention period.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust center:&lt;/strong&gt; ToolJet points reviewers to trust.tooljet.com for the latest security documentation and compliance certifications.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Data Protection Controls Behind the Audits
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encryption in transit and at rest:&lt;/strong&gt; traffic between users and ToolJet servers uses TLS, and sensitive stored data is encrypted at rest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/constants/" rel="noopener noreferrer"&gt;Encrypted workspace secrets&lt;/a&gt;:&lt;/strong&gt; constants and secrets are encrypted before storage, and secrets resolve on the server so they never reach the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;Audit logs for reviews&lt;/a&gt;:&lt;/strong&gt; record user, app and data query activity with who, what, when and IP address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/compliance/cjis/" rel="noopener noreferrer"&gt;CJIS configuration guidance&lt;/a&gt;:&lt;/strong&gt; criminal justice agencies get a guide to configuring a self-hosted deployment for CJIS Security Policy controls. There is no CJIS certification for platforms, so compliance remains the agency's responsibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the Vendor Register app, this gives security and legal reviewers audited evidence plus concrete controls to check, and teams with stricter data rules can pair it with &lt;a href="https://docs.tooljet.com/docs/setup/" rel="noopener noreferrer"&gt;self-hosted deployment&lt;/a&gt; to keep data on their own infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Vendor Register
&lt;/h2&gt;

&lt;p&gt;A vendor register handles contact details, contract dates, and approval history. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding the same controls in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a vendor is approved, post a short summary to the purchasing head in Slack, email the submitter through Gmail, and write the approval back to &lt;code&gt;pv_vendors&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;The vendor register built with Claude Code gives the purchasing team a live place for supplier status, contract dates, review notes, and approval decisions. The app replaces a spreadsheet workflow where the same answers have to be checked in more than one place. Buyers can filter expiring contracts, record a review from the row, and send new vendors into approval without changing tools. Because the result is a real ToolJet application, the team keeps one editable system instead of a pile of disconnected notes and follow up steps that drift away from the work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP With Claude Code
&lt;/h2&gt;

&lt;p&gt;Build a vendor register with Claude Code on [ToolJet Cloud], then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=vendor-register-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is Claude Code in the Vendor Register build?
&lt;/h3&gt;

&lt;p&gt;Claude Code is the coding agent that turns a written spec into the Vendor Register inside ToolJet. It works from the app structure, so the tables, queries, row actions, and page wiring come out together.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does the Vendor Register track for purchasing teams?
&lt;/h3&gt;

&lt;p&gt;It tracks approved vendors, contact details, contract end dates, review scores, and approval status in one place. Buyers can see what is ending soon, what is overdue, and what still needs a decision without switching tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you reproduce the Vendor Register prompt?
&lt;/h3&gt;

&lt;p&gt;Use the prompt as one specification and let the agent build the pages, tables, and row actions from it. The same structure can be rebuilt later when your supplier list or review rules change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need to write code to edit the Vendor Register?
&lt;/h3&gt;

&lt;p&gt;No. You can keep using the visual editor after generation and add code only when a rule or data shape needs it. That keeps the register editable without throwing away the generated structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the Vendor Register after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;ToolJet keeps the generated app as a structured runtime app, so the data, queries, and interface stay together while the team keeps using it. Changes in contracts, reviews, or approvals update the same application instead of leaving you with a separate codebase to operate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the Vendor Register use existing supplier data?
&lt;/h3&gt;

&lt;p&gt;Yes. The register reads the supplier rows and review rows from ToolJet Database, then shapes that data for the table and summary strip. That lets the team work from live records instead of copying them into a new sheet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the same Vendor Register app?
&lt;/h3&gt;

&lt;p&gt;Yes, a team can keep building and updating the same app while roles and permissions decide who can change what. That matters when buyers, approvers, and reviewers all touch the same vendor records.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a PPE Compliance Desk with ToolJet MCP for safety officers</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Thu, 22 Oct 2026 12:02:00 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-ppe-compliance-desk-with-tooljet-mcp-for-safety-officers-ho2</link>
      <guid>https://dev.to/tooljet/build-a-ppe-compliance-desk-with-tooljet-mcp-for-safety-officers-ho2</guid>
      <description>&lt;h2&gt;
  
  
  What Is a PPE Compliance Desk?
&lt;/h2&gt;

&lt;p&gt;A shared spreadsheet only one person knows how to work does not hold up when site photos, hard hat calls, and hi-vis checks need fast review. You build a PPE compliance desk with ToolJet MCP that turns photo review into a queue, corrective actions, and weekly trends. By the end, you see how a safety officer confirms uncertain detections first. You also see how accepted findings become follow-up work, and how the structured ToolJet application keeps data, queries, and interface together. The app also shows repeat contractors so the same issue stands out across weeks, without forcing the officer to sort a messy inbox.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-review.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-review.png" title="PPE Compliance Desk built with ToolJet MCP: Review page as a Safety officer: the photo with a box per person, the model's reading, decision controls and the queue." alt="Review page as a Safety officer (build a PPE compliance desk with ToolJet MCP)" width="800" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Review page as a Safety officer: the photo with a box per person, the model's reading, decision controls and the queue.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-review-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-review-2.png" title="PPE Compliance Desk built with ToolJet MCP: Trends page: weekly findings, findings by contractor and issue, repeat findings and the contractor by week heat table." alt="Trends page (build a PPE compliance desk with ToolJet MCP)" width="800" height="728"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Trends page: weekly findings, findings by contractor and issue, repeat findings and the contractor by week heat table.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-review-3.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-review-3.png" title="PPE Compliance Desk built with ToolJet MCP: Actions page: findings awaiting an action, the assign form and every corrective action with status." alt="Actions page (build a PPE compliance desk with ToolJet MCP)" width="799" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Actions page: findings awaiting an action, the assign form and every corrective action with status.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How do you review PPE findings quickly?
&lt;/h2&gt;

&lt;p&gt;Triage hard hat and hi-vis findings by sorting uncertain detections first, confirming the call, and turning accepted issues into corrective actions with an owner and due date. A coding agent can build it through &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt;, then the result stays inside ToolJet for the team to keep using.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collect site photos and run the detector&lt;/li&gt;
&lt;li&gt;Sort uncertain findings to the top&lt;/li&gt;
&lt;li&gt;Confirm the reading or correct it&lt;/li&gt;
&lt;li&gt;Create corrective actions with an owner and due date&lt;/li&gt;
&lt;li&gt;Review weekly trends for repeat issues&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What does the Review queue show?
&lt;/h2&gt;

&lt;p&gt;The Review page centers on one photo and a queue of people detected in that image. You inspect each person, compare the model's reading with the hard hat and hi-vis fields, and decide whether the detection is correct or needs a correction. Uncertain rows rise first, fully compliant people can be accepted in bulk, and the View as control lets each demo role see the same app through the right access path. The Actions page turns confirmed findings into owned work with a due date, while the Trends page groups findings by week and contractor so patterns are easy to read. Once a photo has no pending people left, the app blurs the faces, discards the original image, and records that redaction.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queue detections with uncertain people first&lt;/li&gt;
&lt;li&gt;Review each person against the photo&lt;/li&gt;
&lt;li&gt;Bulk accept fully compliant people&lt;/li&gt;
&lt;li&gt;Turn confirmed findings into corrective actions&lt;/li&gt;
&lt;li&gt;See weekly trends and repeat contractors&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a PPE Compliance Desk with ToolJet MCP Flow
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does one prompt shape the build?
&lt;/h2&gt;

&lt;p&gt;The real build took several passes, and the requirements are now consolidated into one prompt. You can use that single prompt from the start and reproduce the same app in one shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a three-page ToolJet app called Site Safety Field App for a Queensland civil contractor. Use ToolJet Database tables sf_sites, sf_contractors, sf_users, sf_photos, sf_detections and sf_actions, seeded with demo data. Page 1, Review: three number tiles (to review, model unsure, all clear); a photo card showing the site photo with a box and label per person, the model's reading, Hard hat and Hi-vis vest dropdowns, an Agree with model button and a Save my call button; a queue table of pending detections sorted with uncertain ones first, each with a Review button; and a bulk-accept button for people the model was sure about and who are fully compliant. After a photo has no pending people, blur faces, discard the original and note the redaction. Page 2, Actions: tiles for open, overdue and due soon; a table of confirmed findings awaiting an action with an Assign button; an Assign form with owner, due date and what must change; and a table of all corrective actions with a Close button. Page 3, Trends: tiles for findings in 8 weeks, repeats and compliance; line chart of findings per week, bar chart by contractor, donut chart by issue type; a repeat-findings list (same issue, same contractor, consecutive weeks) tagged WATCH or PATTERN; and a contractor by week heat table. Roles come from sf_users: safety officer (reviews, assigns, closes), HSE director (sees everything, assigns, closes, cannot review) and contractor manager (sees only their own contractor). Add a View as dropdown on each page for demos. Use native components and queries only, a light linen theme with one deep green accent, readable on a phone with no sideways scrolling where possible.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How does ToolJet MCP assemble it?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, not just the screen, so the data model, queries, component tree, and wiring between them land as one structured ToolJet application. Enterprise app building does not end at the interface, data connectivity, workflows, permissions, deployment, and ongoing change are the rest of the job, and the generated app sits on a runtime that carries those where supported rather than handing the team a codebase to operate themselves. If you want the setup details, see &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt;, then keep moving from generation to visual editing to code where a case needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why did the Trends chart break?
&lt;/h2&gt;

&lt;p&gt;The Trends page showed blank charts because the chart data came back in the wrong shape. Once the line, bar, and donut inputs were reshaped to match what the charts expected, the weekly view rendered again and the repeat patterns became visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did ToolJet MCP Generate?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;60&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-components-inspector.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fppe-compliance-desk-app-components-inspector.png" title="PPE Compliance Desk built with ToolJet MCP: components" alt="PPE Compliance Desk component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which teams use this workflow?
&lt;/h2&gt;

&lt;p&gt;Construction and civil engineering, mining, utilities, oil and gas, manufacturing and any site-based business that audits PPE compliance across contractors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who can review and follow up?
&lt;/h2&gt;

&lt;p&gt;Access depends on the role stored for each user. A safety officer can review detections, assign actions and close them. The HSE director sees every site and contractor and can assign and close actions but cannot review detections. A contractor manager sees only their own contractor's findings and actions. These limits are applied in the app's query transformations; per-group query permissions are not set, so the app is a demo of the pattern rather than enforced security.&lt;/p&gt;

&lt;h2&gt;
  
  
  Audit Logs and OpenTelemetry Observability in ToolJet
&lt;/h2&gt;

&lt;p&gt;A PPE Compliance Desk app that changes real records needs a trail of who did what, and ToolJet provides audit logs for user activity plus OpenTelemetry metrics for platform health. Security teams get evidence for reviews, and platform teams watch performance in the monitoring tools they already run.&lt;/p&gt;

&lt;p&gt;The app records approvals and edits on the same safety records, so audit logs and metrics can show who changed them and how the queries behave.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-observability-flow-5.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-observability-flow-5.png" title="Audit Logs and OpenTelemetry Observability in ToolJet" alt="Three cards: record audit log events, review them with filters, and monitor query metrics with OpenTelemetry" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Audit Logs and OpenTelemetry Observability in ToolJet&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Audit Logs: Who Did What, When and Where
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;ToolJet audit logs&lt;/a&gt;:&lt;/strong&gt; record who performed each action, what it was, when and where it happened, including IP address, across user, app and data query events. Filter by user, app or resource over a date range of up to 30 days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retention control:&lt;/strong&gt; logs are kept for 90 days by default, and admins can change the period with the &lt;code&gt;AUDIT_LOGS_RETENTION_PERIOD&lt;/code&gt; environment variable or keep logs indefinitely.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/audit-logs/setup-rsyslog/" rel="noopener noreferrer"&gt;Audit log files with rsyslog&lt;/a&gt;:&lt;/strong&gt; write audit logs to daily rotated log files on the server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/audit-logs/stream-audit-to-datadog/" rel="noopener noreferrer"&gt;Streaming audit logs to Datadog&lt;/a&gt;:&lt;/strong&gt; ship those files through a Datadog Agent for centralised search, security monitoring and long-term retention.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  OpenTelemetry Metrics for Apps and the Platform
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/tj-setup/observability/observability-otel/" rel="noopener noreferrer"&gt;OpenTelemetry observability&lt;/a&gt;:&lt;/strong&gt; export app metrics such as query executions, duration, failures and success rates, labelled by app, query and environment, alongside HTTP, database and Node.js runtime metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Any OTEL-compatible tool:&lt;/strong&gt; send traces and metrics to &lt;a href="https://docs.tooljet.com/docs/tj-setup/observability/datadog/" rel="noopener noreferrer"&gt;Datadog through a Datadog Agent&lt;/a&gt;, New Relic, Grafana or another OpenTelemetry backend.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together, audit logs and metrics show both who changed the PPE Compliance Desk app's data and how its queries perform in production. Audit logs are included from the Team plan, and the &lt;a href="https://www.tooljet.com/pricing" rel="noopener noreferrer"&gt;ToolJet pricing page&lt;/a&gt; lists unlimited audit log retention on Enterprise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Site Safety App
&lt;/h2&gt;

&lt;p&gt;A site safety app handles site photos, contractor assignments, and corrective actions. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a corrective action is assigned, post to the manager in Slack, email the contractor manager through Gmail, and write the update back to &lt;code&gt;sf_actions&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This build shows a PPE compliance desk that moves from photo review to corrective action tracking without leaving the app. The Review page handles uncertain detections first, the Actions page turns confirmed findings into owned follow-up, and the Trends page shows weekly patterns and repeat contractors. The result is a real, editable ToolJet application, not a one-off screen, so the team keeps one place for review, action, and trend work across the same live workflow as site conditions change, with the same data visible to each role. If you want to build a PPE compliance desk with ToolJet MCP for your own sites and review roles, build it on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own PPE compliance desk from site photos and corrective actions, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=ppe-compliance-desk-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt;. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does ToolJet MCP produce for a safety review workflow?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP produces a structured ToolJet application for the review queue, corrective actions, and trends view. The agent works from the requirements and lands the data, page structure, and wiring in one place instead of handing you a loose mockup.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does the review page handle uncertain detections?
&lt;/h3&gt;

&lt;p&gt;Uncertain detections rise to the top of the queue, and the safety officer checks each person against the photo. The reviewer can confirm the model, correct the hard hat or hi-vis reading, or accept a fully compliant person in bulk, which keeps obvious cases moving.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can you reproduce the PPE Compliance Desk from the prompt?
&lt;/h3&gt;

&lt;p&gt;Yes. The prompt includes the page structure, table model, role logic, and visual direction. You can hand it to the agent and rebuild the same workflow in one pass without guessing the shape of the app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need to write code to use ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;No. You describe the workflow, let the agent assemble the app, and then adjust layout or logic in the visual editor when a case needs it. You can add code where needed, but the base app does not depend on a hand-written codebase.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the app after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The result is a structured ToolJet application that stays inside the platform, not a codebase you have to host elsewhere. The runtime carries data connections, workflows, permissions, deployment, and ongoing change where supported, so the same app keeps moving as requirements change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the PPE Compliance Desk use existing ToolJet Database tables?
&lt;/h3&gt;

&lt;p&gt;Yes. The PPE Compliance Desk uses ToolJet Database tables for sites, contractors, users, photos, detections, and actions, so the app sits on structured records instead of a flat spreadsheet. That keeps the review queue, action tracking, and trends page drawing from the same source.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the PPE Compliance Desk at once?
&lt;/h3&gt;

&lt;p&gt;Yes. Safety officers, directors, and contractor managers can each get a role-specific view while working from the same underlying app. The review queue, action tracking, and trends stay aligned to the same data, so people collaborate without copying spreadsheets.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build An Incident Command Center With ToolJet MCP for IT Teams</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Wed, 21 Oct 2026 12:02:00 +0000</pubDate>
      <link>https://dev.to/tooljet/build-an-incident-command-center-with-tooljet-mcp-for-it-teams-hmn</link>
      <guid>https://dev.to/tooljet/build-an-incident-command-center-with-tooljet-mcp-for-it-teams-hmn</guid>
      <description>&lt;h2&gt;
  
  
  What Is an Incident Command Center?
&lt;/h2&gt;

&lt;p&gt;Your service desk still runs on an inbox nobody can triage in time. Build an incident command center with ToolJet MCP and you turn that queue into a structured ToolJet application, where data, queries and interface stay together while agents keep working the live record. By the end, you see how the console tracks open, unassigned and critical incidents, handles assignment and work notes, watches SLA risk, and gives the team one place for problems, knowledge articles and trends.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fincident-command-center-app-journey.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fincident-command-center-app-journey.gif" title="Incident Command Center built with ToolJet MCP: One ticket from the dashboard to the reports: open the oldest incident, check who is carrying the load, watch the SLA clock and review the monthly trends." alt="One ticket from the dashboard to the reports (build an incident command center with ToolJet MCP)" width="560" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;One ticket from the dashboard to the reports: open the oldest incident, check who is carrying the load, watch the SLA clock and review the monthly trends.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Triage Incidents Fast?
&lt;/h2&gt;

&lt;p&gt;Triage incidents by routing each case through a queue, updating the record, and keeping notes, assignments, and follow-up work in one place. ToolJet MCP lets a coding agent build that workflow as a working app, and the &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; link in this article points to the build path.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the incident queue and filter by urgency&lt;/li&gt;
&lt;li&gt;Select the record that needs attention&lt;/li&gt;
&lt;li&gt;Review caller details, notes, and SLA timing&lt;/li&gt;
&lt;li&gt;Assign the incident, add work notes, or hold it&lt;/li&gt;
&lt;li&gt;Resolve the case or promote it to a problem&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Does The Console Work On Screen?
&lt;/h2&gt;

&lt;p&gt;The console starts with a dashboard that surfaces open, unassigned and critical incidents, then sends you into the right record from the longest-open table. The queue narrows the list with filters for state, priority, group, category and search, while the workspace keeps the incident header, notes timeline, assignment rail and action buttons in one place. The rest of the screens turn the same data into operator views for caller history, team workload, SLA ageing, problem tracking, knowledge lookup and trend review.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queue views sorted by priority and age with filters for state, group, category and search&lt;/li&gt;
&lt;li&gt;Workspace actions for notes, assignment, hold, resolve, reopen and problem promotion&lt;/li&gt;
&lt;li&gt;New incident entry with caller lookup and computed priority from impact and urgency&lt;/li&gt;
&lt;li&gt;Team workload and SLA views that expose balance, breaches and ageing&lt;/li&gt;
&lt;li&gt;Knowledge base and trends pages for search, reference and reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build An Incident Command Center With ToolJet MCP Pages
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is The Consolidated Prompt Behind The Build?
&lt;/h2&gt;

&lt;p&gt;The build took several passes to settle the model, page wiring and write paths. The prompt in this article condenses those requirements into one version you can use from the start and reproduce in a single shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a ten-page Incident Command Center in ToolJet for an IT service desk.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use only native ToolJet components and a slightly larger base font. Use ToolJet Database as the only datasource, with list rows for reads and RunJS for computed logic. Use a warm, clean, information-dense visual style with deep navy headings, green primary actions, a warm canvas, white cards with light borders, muted text, and status colours for red, amber, green and blue.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use eight ToolJet Database tables: ic_incidents, ic_users, ic_groups, ic_members, ic_problems, ic_kb, ic_hardware and ic_choices. Seed realistic incidents, callers, groups, hardware, problems and knowledge articles. Drive category, subcategory, impact, urgency and close code from ic_choices, never hardcoded. Never store priority as typed data, derive it from impact and urgency with the 3x3 matrix.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pages should cover the command dashboard, incident queue, hidden workspace, new incident form, hidden caller 360 view, team workload, SLA and aging watch, problems, knowledge base, and trends and reports. The dashboard shows the main KPIs, SLA snapshot, load breakdowns and a longest-open table. The queue supports filtering and row open. The workspace supports assignment, notes, hold, resolve, reopen, and promote to problem. New incident computes priority and shows the matrix. Team workload includes bulk assign. Problems, knowledge base and trends use linked records and history views.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Every page loads from one data model built in a single loader, and every successful write reloads the page the same way. Hidden pages redirect when they are opened without the right record. Keep destructive actions behind confirmation modals, keep the sidebar expanded, keep every table inside its pane, and do not let content scroll inside cards, forms or modals except the long work-notes timeline.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Did MCP Assemble The App?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the data model, pages, components, queries and wiring as one structured ToolJet application, so the service desk console lands inside ToolJet rather than as a codebase you still have to assemble. In this build, the incident queue, workspace, workload views and write actions all stay connected to the same live tables, and the runtime carries the data connectivity, workflows, permissions, deployment and ongoing change where supported. You can still move from AI generation to visual editing to code where a case needs it, and the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; shows the setup path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which SQL Reads Failed During The Build?
&lt;/h2&gt;

&lt;p&gt;The first pass left the pages empty because SQL reads were blocked in the workspace. The fix was to rebuild each read as a ToolJet Database list-row query, which let the dashboard, queue and workspaces load from the same seeded data.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did ToolJet MCP Generate?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;149&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fincident-command-center-app-components-inspector-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fincident-command-center-app-components-inspector-2.png" title="Incident Command Center built with ToolJet MCP: components" alt="Incident Command Center component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Teams Use Incident Operations?
&lt;/h2&gt;

&lt;p&gt;IT service desks, internal IT and helpdesk teams, managed service providers and any operations team that triages tickets against response targets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Access The Console?
&lt;/h2&gt;

&lt;p&gt;The app has no role or group permissions as built: anyone with access to the app can use every page and every action, including resolving, reopening and bulk assignment. Per-role access (for example read-only viewers or agent-only writes) was not configured and would be added with ToolJet workspace groups.&lt;/p&gt;

&lt;h2&gt;
  
  
  Single Sign-On and SCIM User Provisioning in ToolJet
&lt;/h2&gt;

&lt;p&gt;An Incident Command Center app should use the company login your team already has, and ToolJet supports single sign-on (SSO) through SAML, OpenID Connect (OIDC) and LDAP, plus SCIM 2.0 for automated user provisioning. People sign in with their identity provider account, and access follows your directory instead of a separate password list.&lt;/p&gt;

&lt;p&gt;When incident handlers join or leave the team, their access should follow the directory instead of being updated page by page. SSO and SCIM keep that alignment in one place for the people who run this console.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-sso-flow-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-sso-flow-2.png" title="Single Sign-On and SCIM User Provisioning in ToolJet" alt="Three cards: sign in with SAML, OIDC or LDAP, map directory groups, and provision users with SCIM" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Single Sign-On and SCIM User Provisioning in ToolJet&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  SSO Protocols: SAML, OIDC and LDAP
&lt;/h3&gt;

&lt;p&gt;Workspace admins turn each method on under Workspace settings &amp;gt; Workspace login, as described in the &lt;a href="https://docs.tooljet.com/docs/user-management/sso/overview/" rel="noopener noreferrer"&gt;ToolJet SSO overview&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML single sign-on&lt;/a&gt;:&lt;/strong&gt; connect providers such as Okta, Active Directory Federation Services, Auth0 or Azure AD by pasting your identity provider metadata, with optional group sync from a group attribute.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/user-management/sso/oidc/setup/" rel="noopener noreferrer"&gt;OpenID Connect&lt;/a&gt;:&lt;/strong&gt; use Azure AD, Google or Okta with the Authorization Code or Authorization Code with PKCE grant, configured per workspace or for the whole instance. On the Enterprise plan you can set up &lt;a href="https://docs.tooljet.com/docs/user-management/sso/oidc/setup/" rel="noopener noreferrer"&gt;multiple OIDC providers&lt;/a&gt; side by side, and users pick theirs on the sign-in page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/user-management/sso/ldap/" rel="noopener noreferrer"&gt;LDAP authentication&lt;/a&gt;:&lt;/strong&gt; sign users in against your directory server using Base DN search, CN or UPN usernames, optional SSL certificates and group sync on every login.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Automated Provisioning with SCIM 2.0
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/api/scim/" rel="noopener noreferrer"&gt;SCIM user and group provisioning&lt;/a&gt;:&lt;/strong&gt; connect Okta, Azure AD, OneLogin or another identity provider to create users when they join, update names, emails and role mappings in real time, and archive users as soon as access is revoked.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Server-side setup:&lt;/strong&gt; SCIM is switched on with environment variables on your ToolJet deployment and accepts Bearer token or Basic authentication.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With SSO and SCIM in place, onboarding and offboarding for the Incident Command Center app happen in your identity provider rather than by hand. SAML, OIDC and LDAP are available from the Team plan, and SCIM provisioning is part of the &lt;a href="https://www.tooljet.com/pricing" rel="noopener noreferrer"&gt;ToolJet Enterprise plan&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Incident Command Center
&lt;/h2&gt;

&lt;p&gt;An incident command center handles incident records, caller contact details, and work notes. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add it with ToolJet Workflows. For example, a workflow could fire when a critical incident is resolved, post a summary to the team in Slack, email the caller through Gmail, and write the outcome back to &lt;code&gt;ic_incidents&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This incident command center shows a live service-desk workflow built from one prompt and backed by ToolJet Database tables. You see the dashboard, queue, workspace, workload view, SLA watch, problems, knowledge articles and trend pages all reading from the same records, with priority derived from impact and urgency and write actions tied back to the incident. The main problem it solves is the split between inbox triage and structured incident handling. Building an incident command center with ToolJet MCP gives you a real ToolJet application the team can keep editing as the process changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own incident command center from live service-desk data, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=incident-command-center-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt;. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does ToolJet MCP do for an incident command center?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP gives a coding agent a way to turn a written service-desk spec into a working ToolJet app. The queue, workspace, dashboards, and write paths arrive as one connected application instead of separate parts.&lt;/p&gt;

&lt;h3&gt;
  
  
  What makes the Incident Command Center useful day to day?
&lt;/h3&gt;

&lt;p&gt;The app keeps open, unassigned, and critical incidents in one place, then gives agents the actions they need on the record itself. That includes assignment, hold, resolve, reopen, work notes, problem linkage, and knowledge lookup.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you reproduce the incident command center from the prompt?
&lt;/h3&gt;

&lt;p&gt;Start with the consolidated prompt and point ToolJet MCP at ToolJet Database. The agent builds the pages, the data model, and the wiring in one pass, so you can reproduce the same console from the same requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need to write code to use ToolJet MCP?
&lt;/h3&gt;

&lt;p&gt;No for the main build. The app relies on native ToolJet components, ToolJet Database reads, and RunJS only where derived logic or write handling needs it.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the incident command center after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The result is a structured ToolJet application, not a detached screen. The runtime keeps data connectivity, workflows, access control, auditing, and lifecycle management in the platform layer where supported, and you can keep editing the app visually or in code as requirements change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the incident command center use existing ToolJet Database tables?
&lt;/h3&gt;

&lt;p&gt;Yes. This build reads from existing ToolJet Database tables for incidents, users, groups, problems, hardware, knowledge articles, and choice lists, so the app works from real records instead of mock data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people work on the incident command center?
&lt;/h3&gt;

&lt;p&gt;Yes. More than one builder can work in the same ToolJet app, and the shared pages, queries, and actions stay inside one project while the incident workflow evolves. Roles and directory-driven access can keep editing and release duties separated.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build an Employee Onboarding App with ToolJet MCP</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Mon, 19 Oct 2026 12:02:00 +0000</pubDate>
      <link>https://dev.to/tooljet/build-an-employee-onboarding-app-with-tooljet-mcp-33ci</link>
      <guid>https://dev.to/tooljet/build-an-employee-onboarding-app-with-tooljet-mcp-33ci</guid>
      <description>&lt;h2&gt;
  
  
  What Is an Employee Onboarding Hub?
&lt;/h2&gt;

&lt;p&gt;You can build an employee onboarding app with ToolJet MCP to keep start dates, checklist tasks, and equipment requests in one place. An onboarding hub is a single workflow for tracking hires from offer accepted to completed. The draft shows a ToolJet application with data, queries, and interface built together. It gives a people-operations team one place to track starters, task ownership, and equipment handoffs. By the end, you see how the hub keeps hires moving while the team watches progress in one place.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-5.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-5.png" title="Employee Onboarding Hub built with ToolJet MCP: Home: this month's start dates, four metric cards with trends, hires by department beside the checklist completion trend, and the next six starters" alt="Home (build an employee onboarding app with ToolJet MCP)" width="799" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Home: this month's start dates, four metric cards with trends, hires by department beside the checklist completion trend, and the next six starters&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-2-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-2-2.png" title="Employee Onboarding Hub built with ToolJet MCP: Hires: five evenly spaced Kanban columns with roomier cards (name, role, department and start date), aligned under the department and start-month filters" alt="Hires (build an employee onboarding app with ToolJet MCP)" width="800" height="608"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hires: five evenly spaced Kanban columns with roomier cards (name, role, department and start date), aligned under the department and start-month filters&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-3-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-3-2.png" title="Employee Onboarding Hub built with ToolJet MCP: Tasks: overdue items pinned on top, then Monday to Friday groups with owner initials and status tags, beside the Assign a task form with comfortable field spacing" alt="Tasks (build an employee onboarding app with ToolJet MCP)" width="799" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tasks: overdue items pinned on top, then Monday to Friday groups with owner initials and status tags, beside the Assign a task form with comfortable field spacing&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-4-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-home-4-2.png" title="Employee Onboarding Hub built with ToolJet MCP: Equipment: request cards with category, item, requester, needed-by date, a status tag and a Review button shown in full" alt="Equipment (build an employee onboarding app with ToolJet MCP)" width="800" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Equipment: request cards with category, item, requester, needed-by date, a status tag and a Review button shown in full&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Manage Employee Onboarding?
&lt;/h2&gt;

&lt;p&gt;Track onboarding by centralising hires, checklist work, equipment requests, and weekly progress in one structured workspace that people operations can update during the week. A coding agent can build the working version with &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt;, turning the process into a real app instead of loose screens and notes.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;List new hires by department and stage&lt;/li&gt;
&lt;li&gt;Group checklist work by due day&lt;/li&gt;
&lt;li&gt;Pin overdue items first&lt;/li&gt;
&lt;li&gt;Assign a new task to a hire&lt;/li&gt;
&lt;li&gt;Review equipment requests and update status&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What Does The Onboarding Hub Do?
&lt;/h2&gt;

&lt;p&gt;Home gives the team a live snapshot, with this month's start dates, four metrics, a department bar chart, a weekly completion trend, and the next six starters in a compact grid. The cards show initials, names, roles, departments, start dates, and progress bars, so the people-ops lead can scan the pipeline without opening each record.&lt;/p&gt;

&lt;p&gt;The Hires page turns the same data into a five-stage Kanban board with department and start-month filters. Selecting a card opens that hire's checklist, while the Tasks page groups this week's work by due day and pins overdue items first. Equipment uses review cards with request details and actions for approval or shipping, so each page answers a different part of the same workflow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Home combines greeting, start-date chips, metric cards, and two trend views&lt;/li&gt;
&lt;li&gt;Hires uses a five-stage Kanban with department and start-month filters&lt;/li&gt;
&lt;li&gt;Tasks groups work by due day and pins overdue items first&lt;/li&gt;
&lt;li&gt;Equipment reviews requests in a card grid with approval and shipping actions&lt;/li&gt;
&lt;li&gt;Clicking a hire card opens that person's checklist and progress&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build An Employee Onboarding App With ToolJet MCP Across Four Pages
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Prompt Built The Hub?
&lt;/h2&gt;

&lt;p&gt;The build took several passes to settle the layout, data model, and card sizing. The requirements are now consolidated into one prompt you can use from the start, so you can reproduce the same onboarding hub in a single shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Use only native components and ToolJet Database. Keep the look warm, welcoming, and restrained, with emerald as the primary accent on a warm near-white canvas, white cards with soft borders, a dense layout with slightly larger fonts, charts in emerald shades, and status tags in grey, blue, amber, green, and red.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Create four tables: oh_hires, oh_tasks, oh_equipment, and oh_trend. Seed 30 fictional hires across Engineering, Sales, Marketing, Support, Finance, and Operations at stages Offer accepted, Pre-boarding, First week, First month, and Completed, with start dates around October 2026. Also seed checklist tasks, including overdue items and tasks due Monday to Friday of the current week, 18 equipment requests for laptop, access, and desk, and eight weeks of completion percentages.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Home opens with a greeting, this month's start dates as chips, four metric cards, a bar chart of hires by department beside a weekly checklist completion trend, and a grid of the next six starters with initials avatars and progress bars. Hires is a five-stage Kanban board with department and start-month filters, and clicking a card opens that hire's checklist. Tasks groups this week's checklist work by due day with overdue items pinned on top, owner initials, and status tags, beside a form that assigns a new task to a hire. Equipment is a grid of request cards with a status tag and a Review button that opens the details with Approve and Mark as shipped actions.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does ToolJet MCP Assemble It?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, not the screen: the data model, pages, components, queries, and the wiring between them land as one structured ToolJet application inside ToolJet, not a codebase you have to assemble yourself. That matters because onboarding does not stop at the interface, and the runtime carries data connectivity, workflows, permissions, deployment, and ongoing change where supported instead of handing the team separate parts to operate. You can still move from AI generation to visual editing and then to code when a case needs it, and the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; shows the setup path.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Broke In The Home Layout?
&lt;/h2&gt;

&lt;p&gt;The Home cards were rejected because the starter card had no surface, a fixed height, and a progress bar that collided with the layout. The card was rebuilt with a full-height root, padding around the avatar, and more space above the bar, and then it saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did The Validation Checks Confirm?
&lt;/h2&gt;

&lt;p&gt;The table below summarizes the validation checks run across the four pages and the interactions exercised in the finished app.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;43&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;0 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-components-inspector-2.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Femployee-onboarding-hub-app-components-inspector-2.png" title="Employee Onboarding Hub built with ToolJet MCP: components" alt="Employee Onboarding Hub component tree generated by ToolJet MCP" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Uses This Onboarding Hub?
&lt;/h2&gt;

&lt;p&gt;Any team that welcomes people on a schedule can use this pattern: people-operations and HR teams, IT teams issuing laptops and access, facilities teams assigning desks, and managers running a new-starter checklist. The same board, timeline and request-card layout also fits contractor onboarding, student or intern intake, and customer onboarding programmes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Access The Onboarding Hub?
&lt;/h2&gt;

&lt;p&gt;As built, the app has no groups or permission rules of its own. Anyone who can open the app in the workspace can see every page and use every action, including Approve request, Mark as shipped and Assign task. Before a team uses it, add ToolJet groups and restrict the equipment and task write queries to the people-operations team.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cost and Speed by Model
&lt;/h2&gt;

&lt;p&gt;Try the same build pattern with your own team, then see how quickly the app shape maps to your process.&lt;/p&gt;

&lt;p&gt;You can easily build a 4-page app with ToolJet MCP for as little as $0.17 with a lean model (Luna medium), or pay more for the latest flagship reasoning (Sol) if that's what you're after. The cost is your call, not a floor we set for you.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Credits&lt;/th&gt;
&lt;th&gt;Minutes&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;Astra&lt;/td&gt;
&lt;td&gt;290 to 550&lt;/td&gt;
&lt;td&gt;13 to 16&lt;/td&gt;
&lt;td&gt;The most polished pages, when cost matters less&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sol (Recommended)&lt;/td&gt;
&lt;td&gt;300 to 650&lt;/td&gt;
&lt;td&gt;14 to 22&lt;/td&gt;
&lt;td&gt;The best balance of quality and cost for most apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terra&lt;/td&gt;
&lt;td&gt;85 to 210&lt;/td&gt;
&lt;td&gt;5 to 12&lt;/td&gt;
&lt;td&gt;The fastest, and best kept to smaller apps&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Luna max&lt;/td&gt;
&lt;td&gt;35 to 55&lt;/td&gt;
&lt;td&gt;33 to 62&lt;/td&gt;
&lt;td&gt;The most complete Luna, and by far the slowest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Luna high&lt;/td&gt;
&lt;td&gt;25 to 50&lt;/td&gt;
&lt;td&gt;22 to 41&lt;/td&gt;
&lt;td&gt;Mid-effort Luna, between medium and max&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Luna medium&lt;/td&gt;
&lt;td&gt;10 to 30&lt;/td&gt;
&lt;td&gt;14 to 20&lt;/td&gt;
&lt;td&gt;A quick first draft or a small tool&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;Three to four builds per model across four-page apps. 1 credit = 1 cent. Credits and time are estimates only and will vary with the complexity of what you ask for. This measures cost and speed only, not how complete or polished the result is.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Even averaging across model tiers, ToolJet MCP can turn $10 into a dozen or more working 4-page apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Onboarding Hub
&lt;/h2&gt;

&lt;p&gt;An onboarding hub handles employee names, start dates, and equipment requests. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a hire moves to First week, post to the manager in Slack, email the onboarding owner through Gmail, and write the update back to &lt;code&gt;oh_tasks&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This build shows how an employee onboarding app with ToolJet MCP can turn a messy handoff process into one editable hub for people operations. The article covers the home dashboard, the Hires board, the task timeline, and the equipment review flow, all backed by four ToolJet Database tables. The result gives the team one place to watch start dates, checklist work, and request status instead of juggling separate trackers. That matters because the same app stays available for future changes as the team hires new people across departments, so onboarding keeps moving inside one ToolJet project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own employee onboarding app with ToolJet MCP on [ToolJet Cloud], then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=employee-onboarding-hub-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does ToolJet MCP do for an onboarding hub?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP turns a written spec into a working ToolJet application. For onboarding, the hires, tasks, equipment requests, and trend charts land as one editable hub instead of separate fragments that you have to stitch together later.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does the Hires board work in the Employee Onboarding Hub?
&lt;/h3&gt;

&lt;p&gt;The Hires page uses five stages, plus filters for department and start month. Clicking a hire card opens that person's checklist, and moving a card updates the stage shown on the board so the team can follow each starter from offer accepted to completed.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I reproduce the Employee Onboarding Hub from the prompt?
&lt;/h3&gt;

&lt;p&gt;Use the prompt as the full specification and build the four pages, tables, and seeded records in one pass without rewriting the requirements by hand. That gives you the same layout, interactions, and data model described in the prompt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to write code for the Employee Onboarding Hub?
&lt;/h3&gt;

&lt;p&gt;No, the core experience uses native components and ToolJet Database tables. Code only enters when you want custom logic, such as a transform or a workflow step for a specific edge case that the visual builder does not cover.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I point the Employee Onboarding Hub at my own HR data?
&lt;/h3&gt;

&lt;p&gt;Yes, the structure maps cleanly to your own hire, task, equipment, and trend records. You can load those records into ToolJet Database tables and keep the app pointed at them as your source of truth.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several teammates keep working on the Employee Onboarding Hub?
&lt;/h3&gt;

&lt;p&gt;Yes, the generated app stays editable in ToolJet, so several teammates can keep updating the same hub as onboarding changes. The shared project keeps the pages, data, and interactions together instead of scattering work across separate files.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the Employee Onboarding Hub after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The agent leaves you with a real ToolJet application, not a one-off screen, so the data, queries, and interface stay together. The runtime handles the rest of the app where supported, including workflows, permissions, deployment, and ongoing change.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build a Damage Triage Console With ToolJet MCP for Depot Teams</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Fri, 16 Oct 2026 12:02:00 +0000</pubDate>
      <link>https://dev.to/tooljet/build-a-damage-triage-console-with-tooljet-mcp-for-depot-teams-39m4</link>
      <guid>https://dev.to/tooljet/build-a-damage-triage-console-with-tooljet-mcp-for-depot-teams-39m4</guid>
      <description>&lt;h2&gt;
  
  
  What Is a Damage Triage Console?
&lt;/h2&gt;

&lt;p&gt;A shared spreadsheet only one person knows how to work leaves returned-car damage review stuck in inboxes, photos, and notes. Build a damage triage console with ToolJet MCP to turn that queue into a structured business app for a rental depot team, and an agent generated this, with data, queries, and interface together, so the team keeps running it. You learn how to review vehicle photos, accept or override a model outcome, and keep a record of the reason behind each correction. The same setup also feeds a retraining export and a performance view for override patterns by damage type, week, and reason, so the team can compare operator judgment with the model's predictions without leaving the app.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-queue-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-queue-1.png" title="Damage Triage Console built with ToolJet MCP: Triage Queue: pending vehicles by lowest confidence, the photo set with zoom, and the model's prediction with Accept and Override" alt="Triage Queue (build a damage triage console with ToolJet MCP)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Triage Queue: pending vehicles by lowest confidence, the photo set with zoom, and the model's prediction with Accept and Override&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-queue-2-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-queue-2-1.png" title="Damage Triage Console built with ToolJet MCP: Model Performance: override rate by week, overrides by reason, override rate by damage type and the overridden cases with photos" alt="Model Performance (build a damage triage console with ToolJet MCP)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Model Performance: override rate by week, overrides by reason, override rate by damage type and the overridden cases with photos&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-queue-3-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-queue-3-1.png" title="Damage Triage Console built with ToolJet MCP: Override dialog with the correct outcome, damage type and a required reason from a fixed list" alt="Override dialog with the correct outcome (build a damage triage console with ToolJet MCP)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Override dialog with the correct outcome, damage type and a required reason from a fixed list&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Triage Returned Vehicle Damage?
&lt;/h2&gt;

&lt;p&gt;Group returned vehicles by confidence, review each photo set, compare the predicted damage type, and capture the corrected outcome with a structured reason. ToolJet MCP lets a coding agent turn that workflow into a working app on live data, with &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; as the bridge from requirements to a real console.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Group returned vehicles by confidence&lt;/li&gt;
&lt;li&gt;Review each photo set for the vehicle&lt;/li&gt;
&lt;li&gt;Compare the prediction with the damage evidence&lt;/li&gt;
&lt;li&gt;Capture the corrected outcome and reason&lt;/li&gt;
&lt;li&gt;Export corrected cases for retraining&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Does The Damage Review Screen Work?
&lt;/h2&gt;

&lt;p&gt;The triage page keeps the decision in one view, not three separate screens. You work from the queue, open one vehicle, and use the photo strip to move through the image set while the main preview stays centered and zoomable. The decision panel stays pinned on the side with the prediction, confidence, damage type, and the two actions, so you can accept the result or open the override flow without losing the current case. Keyboard shortcuts keep the queue moving when you are stepping through a long stack of returns, and the override dialog captures the corrected outcome and a fixed reason list before the case leaves the active queue. The performance page turns those decisions into a second working surface, where you scan correction patterns and open the overridden cases.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queue vehicles by model confidence and keep the current case in view&lt;/li&gt;
&lt;li&gt;Review every photo for one vehicle as a single image set&lt;/li&gt;
&lt;li&gt;Accept the prediction or open a structured override dialog&lt;/li&gt;
&lt;li&gt;Track override patterns by week, reason, and damage type&lt;/li&gt;
&lt;li&gt;Export corrected cases with images and labels for retraining&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build a Damage Triage Console With ToolJet MCP Pages
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; for setup instructions, supported agents, and everything you need to follow along.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Is The Requirements Prompt Consolidated?
&lt;/h2&gt;

&lt;p&gt;The build took several passes, and the requirements are consolidated here into one prompt that could have driven the result from the start. Use the prompt below to reproduce the same console in one shot, with the page structure, data model, rules, and export behavior kept together.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a two-page ToolJet app called Damage Triage Console for a vehicle rental depot team in Arizona. Use native components, a warm linen theme with soft neutrals and a brown accent, a dense layout, and slightly larger fonts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Page 1, Triage Queue, shows a queue table of vehicles waiting for a decision, ordered by lowest model confidence first, with a Queue dropdown for Pending review, Claims and write-offs, and All cases. Add a photo viewer with the main photo, zoom buttons, a thumbnail strip showing every photo for the same vehicle as one set, Prev, Next, and Zoom buttons, plus a large zoom modal. A right-hand panel shows the model's predicted outcome, damage type, confidence value with a bar and low-confidence warning, the plate, vehicle, and depot, and two actions, Accept and Override. Override opens a modal with the correct outcome, the damage type, and a required reason from a fixed list: wrong damage type, wrong severity, pre-existing damage, image unusable. Make the screen keyboard friendly with J and K for vehicle navigation, A to accept, O to open override, Z to zoom, bracket keys to switch photos, Enter to confirm the override dialog, and Esc to close it.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Page 2, Model Performance, shows KPI tiles for override rate, overridden over decided, average confidence of accepted versus overridden, and top reason. Add a line chart of override rate by week, a bar chart of overrides by reason, a bar chart of override rate by damage type, a reason by damage type count table, and a table of overridden cases with a photo thumbnail, the model's label, the correct label, and the reason. Add a CSV export for overridden cases with image URLs and corrected labels, leaving out image-unusable cases.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Store data in ToolJet Database with dt_cases and dt_case_photos. Seed 30 cases, 12 pending, 18 decided, and 8 overridden, using real damaged-car photos matched to the damage type. Create three groups, Depot Operators, Claims, and Data Science, with page and query permissions.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does MCP Assemble The Full App?
&lt;/h2&gt;

&lt;p&gt;ToolJet MCP works through the whole application, not just the screen, so the queue logic, photo grouping, override flow, and performance view land together as one structured ToolJet application. That matters because enterprise app building does not end at the interface, data connectivity, workflows, permissions, deployment, and ongoing change are part of the job, and the generated app sits on a runtime that carries those where supported rather than handing you a codebase to operate yourself. You can still move from AI generation to visual editing to code when a case needs it, and the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt; shows the build path.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Does The Results Page Show?
&lt;/h2&gt;

&lt;p&gt;The results page shows how often operators override the model, where those overrides come from, which damage types trigger them, and which corrected cases are ready for export.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;61&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;4 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-components-inspector-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fdamage-triage-console-app-components-inspector-1.png" title="Damage Triage Console built with ToolJet MCP: components" alt="Damage Triage Console component tree generated by ToolJet MCP"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components ToolJet MCP created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Teams Use This Workflow?
&lt;/h2&gt;

&lt;p&gt;Any operation that photographs returned or inspected items and has a person confirm an automated judgement can use this pattern: car and van rental, vehicle fleets and leasing, equipment hire, insurance claims handling, logistics and damage claims, and used-vehicle auctions. The same layout fits other model review queues where a person accepts or overrides a prediction and the team needs to see how often the model is wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Access The Depot Console?
&lt;/h2&gt;

&lt;p&gt;The app uses three ToolJet groups. Triage - Depot Operators can open the Triage Queue page, accept and override predictions, and the two write queries are limited to them. Triage - Claims can open the Triage Queue page and use the Claims and write-offs filter, but the Accept and Override buttons are hidden from them. Triage - Data Science can open the Model Performance page and export the retraining set. These rules were set on the pages, queries and buttons but not tested from a member's own login.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development, Staging and Production Environments in ToolJet
&lt;/h2&gt;

&lt;p&gt;A Damage Triage Console app should never be tested against live data, and ToolJet separates each app into Development, Staging and Production environments with their own data source settings and constants. Builders change the app safely while end users keep working on the released version.&lt;/p&gt;

&lt;p&gt;When you test a label or permission change for the damage console, staging data lets you check the queue and overrides before depot operators see production, while each environment keeps its own server-side secrets.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-environments-8.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-environments-8.png" title="Development, Staging and Production Environments in ToolJet" alt="Flow: a ToolJet app is promoted from Development to Staging to Production, and each environment uses its own data source, constants and secrets; secrets are masked, encrypted at rest and managed by admins only"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Development, Staging and Production Environments in ToolJet&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Environment App Lifecycle and Version History
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/development-lifecycle/environment/self-hosted/multi-environment/" rel="noopener noreferrer"&gt;Multi-environment setup&lt;/a&gt;:&lt;/strong&gt; build in Development, promote to Staging where apps and queries cannot be edited, then promote to Production and release.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Per-environment data sources:&lt;/strong&gt; point each environment at a different database or API, and ToolJet uses the right one automatically for the target environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment access:&lt;/strong&gt; admins choose which environments each group or role can open, combined with the app's Edit or View permission.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/development-lifecycle/release/version-control/" rel="noopener noreferrer"&gt;Version history&lt;/a&gt;:&lt;/strong&gt; drafts hold work in progress, and saved versions are fixed checkpoints you can promote, release or &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/release/release-rollback/" rel="noopener noreferrer"&gt;roll back to&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Workspace Constants and Secret Management
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/security/constants/" rel="noopener noreferrer"&gt;Workspace constants&lt;/a&gt;:&lt;/strong&gt; store reusable values such as API URLs once per workspace, with a different value per environment. All constants and secrets are encrypted before they are stored.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secret constants:&lt;/strong&gt; keep API keys and database credentials masked in the interface and resolved on the server, so they never reach the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/app-builder/custom-code/constants-secrets/" rel="noopener noreferrer"&gt;Referencing constants and secrets in apps&lt;/a&gt;:&lt;/strong&gt; builders use them by name in queries and data sources, while only admins can create, edit or delete them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the Damage Triage Console app's test data, credentials and releases cleanly separated as the team grows. Multi-environment support is available from the Team plan on the &lt;a href="https://www.tooljet.com/pricing" rel="noopener noreferrer"&gt;ToolJet pricing page&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Damage Triage Console
&lt;/h2&gt;

&lt;p&gt;A damage triage console handles plate numbers, vehicle photos, and claim decisions. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when an override is saved, post a Slack message to claims, send a Gmail summary to data science, and write the corrected decision back to &lt;code&gt;dt_cases&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This damage triage console brings queue review, photo inspection, override capture, and model performance into one structured workflow for a rental depot team. The queue keeps low-confidence cases in front of operators, the case view keeps the photo set and decision together, and the performance page shows where overrides cluster by week, reason, and damage type. That gives the team one place to review corrected labels and prepare retraining exports without leaving the app. Depot Operators, Claims, and Data Science can stay in separate views, and you can build the same pattern on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP
&lt;/h2&gt;

&lt;p&gt;Build your own damage triage console with ToolJet MCP, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=damage-triage-console-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt; today. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does ToolJet MCP build for a damage triage console?
&lt;/h3&gt;

&lt;p&gt;ToolJet MCP builds a working queue page, a photo review area, an override flow, and a performance page for the depot team. The console keeps the model's prediction and the operator's correction in the same workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  What do operators see when reviewing a returned car?
&lt;/h3&gt;

&lt;p&gt;Operators see the vehicle queue, the full photo set for one car, the model's outcome, the damage type, the confidence bar, and the decision buttons. The override dialog captures the corrected outcome, the damage type, and a reason from a fixed list.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do you reproduce the damage triage console from the prompt?
&lt;/h3&gt;

&lt;p&gt;Use the prompt to build the two pages, the tables, and the permissions in one pass. The queue rules, photo layout, override form, and export behavior are already spelled out there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can the damage triage console use ToolJet DB for cases and photos?
&lt;/h3&gt;

&lt;p&gt;Yes. The build stores case records in &lt;code&gt;dt_cases&lt;/code&gt; and photo sets in &lt;code&gt;dt_case_photos&lt;/code&gt;, so the queue and detail view read from the same internal tables.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do you need custom code to use the override flow?
&lt;/h3&gt;

&lt;p&gt;No. Accept, override, the keyboard shortcuts, the zoom view, and the fixed reason list are all part of the app, so the basic process stays inside the console.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the damage triage console after ToolJet MCP finishes?
&lt;/h3&gt;

&lt;p&gt;The result is a structured ToolJet application. You can keep editing it visually and in code, and the runtime carries data connectivity, workflows, permissions, deployment, and ongoing change where supported.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several depot roles work in the same console?
&lt;/h3&gt;

&lt;p&gt;Yes. Depot operators, claims, and data science can each use the same app with different page access and actions, so the same records support triage, review, and analysis.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Build an Auto Care Back Office with Claude Code for repair shops</title>
      <dc:creator>Athulya R</dc:creator>
      <pubDate>Thu, 15 Oct 2026 12:02:00 +0000</pubDate>
      <link>https://dev.to/tooljet/build-an-auto-care-back-office-with-claude-code-for-repair-shops-35lj</link>
      <guid>https://dev.to/tooljet/build-an-auto-care-back-office-with-claude-code-for-repair-shops-35lj</guid>
      <description>&lt;h2&gt;
  
  
  What Is an Auto Care Back Office?
&lt;/h2&gt;

&lt;p&gt;An independent repair shop often runs daily work from a shared spreadsheet only one person knows how to use. You can build an auto care back office with Claude Code to replace that with one system for the front desk and mechanics. The back office keeps Today, Jobs, Customers, Invoices and Parts tied to live shop records. An agent generated this and the result is a structured ToolJet application, with data, queries and interface together. By the end, you can reproduce the back office from the prompt below and keep bookings, repair work, billing and stock in one flow.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-1.png" title="Auto Care Back Office built with Claude Code: Today page: four KPI cards with month-over-month trends, revenue by week, jobs by service and the next six bookings." alt="Today page (build an auto care back office with Claude Code)" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Today page: four KPI cards with month-over-month trends, revenue by week, jobs by service and the next six bookings.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-2-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-2-1.png" title="Auto Care Back Office built with Claude Code: Jobs page: a full-width Kanban board with five status columns and wrapping job cards." alt="Jobs page (build an auto care back office with Claude Code)" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Jobs page: a full-width Kanban board with five status columns and wrapping job cards.&lt;/em&gt;&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-3-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-3-1.gif" title="Auto Care Back Office built with Claude Code: A 28-second read-only walkthrough of all five pages, including the job modal." alt="A 28-second read-only walkthrough of all five pages (build an auto care back office with Claude Code)" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A 28-second read-only walkthrough of all five pages, including the job modal.&lt;/em&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-4-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-today-4-1.png" title="Auto Care Back Office built with Claude Code: Parts page: stock bars, low-stock tags and the receive-a-delivery panel." alt="Parts page (build an auto care back office with Claude Code)" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Parts page: stock bars, low-stock tags and the receive-a-delivery panel.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Do You Run Repair Shop Work?
&lt;/h2&gt;

&lt;p&gt;Track repair work by keeping jobs, parts and invoices in one shared system, then review each booking and update it as the day changes. &lt;a href="https://tooljet.com/mcp" rel="noopener noreferrer"&gt;ToolJet MCP&lt;/a&gt; lets a coding agent turn the brief into a working app with the same pages, data and actions the shop needs.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collect mechanics, customers, vehicles and bookings in one database&lt;/li&gt;
&lt;li&gt;Load jobs, line items, invoices and parts into the same store&lt;/li&gt;
&lt;li&gt;Open the dashboard to review KPIs and the next bookings&lt;/li&gt;
&lt;li&gt;Move work through the board and update status and mechanic&lt;/li&gt;
&lt;li&gt;Search customers, mark invoices paid and receive deliveries&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Do The Five Pages Work Together?
&lt;/h2&gt;

&lt;p&gt;The app opens on Today, where the desk sees the day's KPIs, revenue trend and upcoming bookings in one glance. Jobs is the main working surface, because a card opens a modal that lets the user change status, reassign the mechanic, and attach labour or parts without leaving the board. Customers uses a search-first grid with a side panel for cars and history, while Invoices stays action led with a single paid action. Parts shows stock bars and a delivery intake panel so the shop can keep inventory in the same flow as repair work. The layout stays dense so the screen fits a working day, not a presentation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Today dashboard with KPIs, revenue trend and upcoming bookings&lt;/li&gt;
&lt;li&gt;Jobs Kanban with status changes, mechanic assignment, labour and parts&lt;/li&gt;
&lt;li&gt;Searchable customer records with cars and service history&lt;/li&gt;
&lt;li&gt;Invoices with payment state and a Mark paid action&lt;/li&gt;
&lt;li&gt;Parts inventory with stock bars and a receive-delivery panel&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Build an Auto Care Back Office with Claude Code in ToolJet
&lt;/h2&gt;

&lt;p&gt;Want to build it yourself? Start with the &lt;a href="https://github.com/ToolJet/mcp-v2" rel="noopener noreferrer"&gt;ToolJet MCP repository&lt;/a&gt; and connect it to Claude Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Is The Prompt Condensed?
&lt;/h2&gt;

&lt;p&gt;The build took several passes across data, pages and interactions. The requirements are consolidated into the prompt below so you can reproduce the result in one shot.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Build a polished internal app called Auto Care Back Office in ToolJet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Keep it to five pages in this order: Today, Jobs, Customers, Invoices and Parts. Today shows the date, upcoming bookings, KPI cards, weekly revenue, service mix and the next bookings. Jobs is a Kanban board where a card opens a modal to change status and mechanic and add labour and parts. Customers is a searchable grid with a service-history panel. Parts shows stock levels and a receive-delivery panel.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Design it as a dense shop operations app with steel-slate and safety-orange styling, white cards, soft borders and slightly larger text. Use US dollars for every amount.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Use eight ToolJet DB tables: nac_mechanics, nac_customers, nac_vehicles, nac_jobs, nac_job_lines, nac_invoices, nac_parts and nac_bookings. Seed realistic shop records around today, including mechanics, customers, vehicles, jobs, invoices, parts and bookings.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Compare dates in local time. Keep all data in ToolJet DB. Keep the app dense and practical, with only native ToolJet components.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Does MCP Assemble The App?
&lt;/h2&gt;

&lt;p&gt;The agent reads the requirements and shapes the data model, pages, components, queries and wiring into one structured ToolJet application. The result stays inside the platform as an app the team can keep working on, with data connectivity, workflows, access control, auditing and lifecycle management where supported, and the path stays open from AI generation to visual editing to code. For setup details, see the &lt;a href="https://docs.tooljet.com/docs/build-with-ai/mcp/overview/" rel="noopener noreferrer"&gt;ToolJet MCP documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Broke The Invoice Trend Baseline?
&lt;/h2&gt;

&lt;p&gt;The first invoice seed put every record in the same recent window, so the month comparison on Today read flat. Reseeding the invoices with older dates fixed the baseline and made the revenue trend line up with the rest of the shop data.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Did The Build Checks Show?
&lt;/h2&gt;

&lt;p&gt;The results table summarises the live checks that confirmed the data, pages and write paths in the finished back office.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Pages&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ToolJet DB tables&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Components&lt;/td&gt;
&lt;td&gt;98&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code files to maintain&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repair cycles&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Final validation&lt;/td&gt;
&lt;td&gt;0 errors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-components-inspector-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Fauto-care-back-office-app-components-inspector-1.png" title="Auto Care Back Office built with Claude Code: components" alt="Auto Care Back Office component tree generated by Claude Code" width="800" height="500"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The components Claude Code created, in the ToolJet inspector&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Which Shops Use This Back Office?
&lt;/h2&gt;

&lt;p&gt;Independent garages, tyre and brake shops and small fleet maintenance teams that want one app for the day's bookings, the job board, customer history, invoices and parts stock. The same pattern suits bike shops, appliance repair and any small service business with jobs, invoices and inventory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Can Use The Back Office?
&lt;/h2&gt;

&lt;p&gt;No groups or per-page permissions were built. Anyone with access to the app sees all five pages: the owner and front desk use Today, Customers and Invoices, mechanics use Jobs and Parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-Hosting ToolJet: Open Source, On-Premise and Air-Gapped Deployment
&lt;/h2&gt;

&lt;p&gt;An Auto Care Back Office app often works with data that cannot leave your network, and ToolJet lets you run the whole platform on infrastructure you control instead of a vendor cloud. Both the community edition and the enterprise edition can be deployed on-premise, and air-gapped deployment is available for environments with no internet access.&lt;/p&gt;

&lt;p&gt;Auto Care Back Office holds customer details, vehicle records, repair history and invoices. Keeping that data on company infrastructure gives the shop's IT review a clean control point for local deployment.&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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-self-hosting-flow-1.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%2Fblog.tooljet.com%2Fwp-content%2Fuploads%2F2026%2F10%2Ftooljet-usp-self-hosting-flow-1.png" title="Self-Hosting ToolJet: Open Source, On-Premise and Air-Gapped Deployment" alt="Three cards: pick a self-hosting target, keep data inside your own PostgreSQL, and run air-gapped" width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Self-Hosting ToolJet: Open Source, On-Premise and Air-Gapped Deployment&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment Options: Docker, Kubernetes and Major Clouds
&lt;/h3&gt;

&lt;p&gt;ToolJet's &lt;a href="https://docs.tooljet.com/docs/setup/" rel="noopener noreferrer"&gt;self-hosting setup guides&lt;/a&gt; cover the common ways to run it in your own environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker Compose deployment&lt;/a&gt;:&lt;/strong&gt; run ToolJet on a single server, with optional Terraform scripts to provision a VM on AWS, Azure or GCP first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/kubernetes/" rel="noopener noreferrer"&gt;Kubernetes deployment&lt;/a&gt;:&lt;/strong&gt; run ToolJet on your own cluster, with dedicated guides for EKS, GKE, AKS, Helm and OpenShift.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your own PostgreSQL:&lt;/strong&gt; ToolJet stores app definitions, encrypted data source credentials and user authentication data in a PostgreSQL database that you manage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Open Source Core and Air-Gapped Enterprise Deployments
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://github.com/ToolJet/ToolJet" rel="noopener noreferrer"&gt;Open source community edition on GitHub&lt;/a&gt;:&lt;/strong&gt; the ToolJet repository is released under the GNU Affero General Public License v3.0 (AGPL), so your team can inspect the code and self-host the community edition.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://tooljet.com/feature/built-in-security" rel="noopener noreferrer"&gt;Air-gapped deployment&lt;/a&gt;:&lt;/strong&gt; run ToolJet in fully isolated environments without external network access, listed on the &lt;a href="https://www.tooljet.com/pricing" rel="noopener noreferrer"&gt;ToolJet Enterprise plan&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://docs.tooljet.com/docs/setup/tooljet-ai/tj-ai-enterprise/" rel="noopener noreferrer"&gt;ToolJet AI Enterprise&lt;/a&gt;:&lt;/strong&gt; deploy the AI server image inside your own environment so AI requests are processed on your servers, which suits private-cloud and air-gapped setups.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Self-hosting keeps the Auto Care Back Office app, its data and its credentials inside the network and security boundary your team already governs, and a self-hosted community edition can be upgraded to the enterprise edition when you need enterprise features.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enterprise Features for Your Auto Repair Back Office
&lt;/h2&gt;

&lt;p&gt;An auto care back office handles customer details, vehicle records and invoice history. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SSO and SCIM:&lt;/strong&gt; sign in with &lt;a href="https://docs.tooljet.com/docs/user-management/sso/saml/setup/" rel="noopener noreferrer"&gt;SAML&lt;/a&gt;, OIDC or LDAP, and provision users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role-based access control:&lt;/strong&gt; scope &lt;a href="https://docs.tooljet.com/docs/user-management/role-based-access/access-control/" rel="noopener noreferrer"&gt;permissions&lt;/a&gt; to the app, the data source, and each query&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit logs:&lt;/strong&gt; track every login, edit, and approval decision for &lt;a href="https://docs.tooljet.com/docs/security/audit-logs/" rel="noopener noreferrer"&gt;compliance&lt;/a&gt; review&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Air-gapped deployment:&lt;/strong&gt; self-host on &lt;a href="https://docs.tooljet.com/docs/setup/docker/" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; or Kubernetes so your data stays in your network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiplayer editing:&lt;/strong&gt; several builders work on the same app, with versioning and &lt;a href="https://docs.tooljet.com/docs/development-lifecycle/gitsync/overview/" rel="noopener noreferrer"&gt;Git sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ToolJet AI inside your own deployment:&lt;/strong&gt; run the AI features in your tenancy rather than a shared service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a job moves to Ready for pickup, post a Slack message to the front desk, email the customer through Gmail, and write the follow-up back to &lt;code&gt;nac_jobs&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Takeaways
&lt;/h2&gt;

&lt;p&gt;This article shows how a repair shop back office comes together as a structured ToolJet application from one prompt, not as a static screen. Today, Jobs, Customers, Invoices and Parts cover the shop's daily flow, from bookings and job status to customer history, payment handling and stock checks. That matters because the front desk and mechanics keep working in the same place as the day changes. You can build an auto care back office with Claude Code, then keep shaping the result in ToolJet as the shop's process changes and the records stay connected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try ToolJet MCP With Claude Code
&lt;/h2&gt;

&lt;p&gt;Build your own auto care back office with Claude Code, then request a &lt;a href="https://tooljet.com/schedule-demo?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=mcp-tutorials&amp;amp;utm_content=auto-care-back-office-app" rel="noopener noreferrer"&gt;ToolJet demo&lt;/a&gt; to map it onto your shop data. Start free on [ToolJet Cloud].&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is Claude Code in the Auto Care Back Office workflow?
&lt;/h3&gt;

&lt;p&gt;Claude Code is the coding agent that reads the prompt and assembles the ToolJet application structure. It handles the pages, queries and interactions as one build task, so you get a working back office rather than a loose code fragment or a screen mockup.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does the Auto Care Back Office include?
&lt;/h3&gt;

&lt;p&gt;The app includes a Today dashboard, a Jobs Kanban, a Customers grid, Invoices and Parts. Those pages cover bookings, job status, customer history, billing and stock for an independent repair shop that needs one place for daily operations and follow-up work.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I reproduce the Auto Care Back Office?
&lt;/h3&gt;

&lt;p&gt;Start with the prompt in the page and generate the app in ToolJet. Then connect the same ToolJet DB tables, seed shop records and confirm the Today, Jobs, Customers, Invoices and Parts pages match the intended interactions and refresh behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need to write code for the Auto Care Back Office?
&lt;/h3&gt;

&lt;p&gt;You do not need to write the whole app by hand. Visual editing covers the layout and most interactions, and code is available when a specific interaction needs a custom step or a small adjustment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I start the Auto Care Back Office with my own shop data?
&lt;/h3&gt;

&lt;p&gt;Yes, you can map the pattern to your own repair records as long as the tables match the pages you want. The build here uses ToolJet DB for mechanics, customers, vehicles, jobs, line items, invoices, parts and bookings, and the same page flow still applies.&lt;/p&gt;

&lt;h3&gt;
  
  
  What happens to the Auto Care Back Office after the agent finishes?
&lt;/h3&gt;

&lt;p&gt;The output is a structured ToolJet application, not a throwaway screen. The runtime keeps the data, queries and interface together, and you can continue adjusting the app visually or with code where needed without rebuilding the whole back office.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can several people edit the Auto Care Back Office in ToolJet?
&lt;/h3&gt;

&lt;p&gt;Yes, several people can work in the same project as the shop process changes. One person can review the data and write actions while another refines the screens and keeps the back office aligned with daily work.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
