DEV Community

Cover image for Build a Bank vs ERP Reconciliation App with ToolJet MCP and Jev
Athulya R for ToolJet

Posted on Originally published at blog.tooljet.com

Build a Bank vs ERP Reconciliation App with ToolJet MCP and Jev

Introduction

The Reconciliation Workbench is a two-page ToolJet app for the finance operations team, built by a coding agent through ToolJet MCP. Bank lines and ERP entries sit in PostgreSQL, analyst decisions sit in ToolJet DB, and Jev, TypeSafe's model, triages each break at runtime through the typesafe datasource. The analyst accepts or overrides Jev's suggestion, so nothing clears automatically. By the end you will see the Break queue, the Close summary, the triage flow and the data model behind them.

Build a reconciliation app with ToolJet MCP, the finished application: The Break queue page lists unmatched bank versus ERP breaks, with Jev's triage result beside the selected break.

The Break queue page lists unmatched bank versus ERP breaks, with Jev's triage result beside the selected break.

Build a reconciliation app with ToolJet MCP, the finished application: The Close summary page shows unexplained value by break type, ageing and the Agreed or Overridden decision log.

The Close summary page shows unexplained value by break type, ageing and the Agreed or Overridden decision log.

How the Break Queue and Jev Triage Work

The home page centers a dense break queue with filters and a KPI strip. Opening a row shows the bank line beside the ERP entry. Triage with TypeSafe asks Jev, through the TypeSafe datasource, three typed questions: reason (a choice), severity (a Low, Medium or High score) and auto_clear (yes/no, meaning Jev suggests the break could clear without a journal). auto_clear is only a suggestion: the app does not clear or post any financial record automatically. The panel shows the cause with its confidence, plus the tokens used per call. Jev's output is a suggestion. The analyst leaves the cause blank to keep it, or picks another cause, which is saved as an override with a resolution and note. The Close summary then shows unexplained value by break type, an ageing chart, the agreement KPI and a decision log marking each decision Agreed or Overridden.

  • Break queue with filters, KPIs, and side-by-side break detail
  • Jev triage with cause, confidence, severity and auto-clear (live typesafe datasource call)
  • Accept or override the suggested cause and save the analyst note
  • Close summary with unexplained value, ageing, and decision log
  • PostgreSQL for bank and ERP data, ToolJet DB for decisions

Set Up ToolJet MCP and the TypeSafe Datasource

Want to build it yourself? Read the overview and use the ToolJet MCP repository for setup and supported agents. You also need a TypeSafe datasource in the workspace; the TypeSafe datasource guide covers its setup and API key options.

The Consolidated Build Prompt

The build took several passes before the shape settled. The requirements are consolidated here into one prompt that could have been used from the start, so you can reproduce the app in a single shot.

Build a 2-page bank-versus-ERP reconciliation app in ToolJet for the finance operations team at Fjell & Fura AB, covering three accounts. Use only ToolJet native components on a muted Nordic, hygge-inspired theme (functional beauty, restrained elegance, natural materials, soft neutrals, cozy minimalism). Keep it enterprise grade, information dense with little whitespace, and with slightly larger font sizes.

Data: use PostgreSQL (datasource postgresql_fleet) for both sides. The bank feed stands in for Snowflake, which is not connected, so label it 'Snowflake stand-in'. Create rw_meta, rw_ledger and rw_bank_txns plus a view rw_v_recon that full-outer-joins bank and ERP on invoice reference and account and shifts dates by the days since seeding. Seed synthetic data only. Use ToolJet DB table rw_decisions for the AI cause, severity and auto-clear result plus the analyst's cause, resolution and note.

Triage: use the existing typesafe datasource (TypeSafe AI, Jev model) with the evaluate operation. Send the break as state and ask three typed questions: reason (choice: timing, FX difference, bank fee, duplicate, missing entry, keying error), severity (score: Low, Medium, High) and auto_clear (yes/no). Show the returned confidence and the input and output tokens used.

Page 1, Break queue (home): a KPI strip, filters and the list of breaks. Selecting a break shows the bank line beside the ERP entry and a Triage with TypeSafe button. The analyst can accept the suggested cause (leave the cause dropdown blank to keep it) or pick a different one, which is saved as an override, with a resolution and note.

Page 2, Close summary: unexplained value by break type, an ageing chart, an agreement KPI and a decision log marking each decision Agreed or Overridden.

How ToolJet MCP Built the Workbench

ToolJet MCP connects the coding agent to the ToolJet workspace, so the pages, components, queries and the wiring between them land as one structured ToolJet application. It is a build-time tool: Jev did not build the app and only runs inside it, through the typesafe datasource. The path stays open, so you can move from generation to visual editing and then into code when a case needs it.

The Cause Override Issue We Fixed

After you chose an override, the cause dropdown jumped back to Jev's suggested value, so the analyst's pick did not stick. A reactive default was resetting the dropdown. Removing it fixed the problem. A blank dropdown now means "keep Jev's cause" and shows the placeholder Keep: [AI cause].

Tables and View Behind the Reconciliation Workbench

The app uses four tables and one view across two datasources. In PostgreSQL, rw_meta stores reconciliation metadata and account settings, rw_ledger holds ERP entries, rw_bank_txns holds bank transactions (the Snowflake stand-in), and the view rw_v_recon joins the two into the break list. In ToolJet DB, rw_decisions stores Jev's output and the analyst's decisions. All data is synthetic.

Page Components What they cover
Break queue 15 KPI strip, filters, break list, bank and ERP detail, triage and decision controls
Close summary 9 KPIs, unexplained value and ageing charts, decision log

What the Build Produced

Metric Result
Pages 2
Tables 4
Views 1
Queries 10
Components 24
Repair cycles 1

Reconciliation Workbench component tree generated by ToolJet MCP
The components ToolJet MCP created, in the ToolJet inspector

Industries That Run This

Finance and accounting operations teams that reconcile bank statements against an ERP ledger, including shared service centres, treasury and month-end close teams in financial services, retail and logistics.

Who Gets Access To The Built App

The app is built for finance analysts. No group-based permission rules were configured in this build, so access follows the workspace's app access settings. Restricting who can save decisions is something to confirm before production use.

GitSync, Version Control and CI/CD Releases in ToolJet

A Reconciliation Workbench app keeps changing after launch, and ToolJet gives it a real software lifecycle: saved versions you can release and roll back, GitSync to a Git repository, and an API that drives releases from CI/CD pipelines.

When the finance team changes a rule in the reconciliation view, GitSync moves that edit from draft to release with a clear review path. If the change misbehaves, rollback returns the app to the last safe version before analysts lose trust in the queue.

Two cards: ToolJet GitSync connection, push and pull options, and the draft, saved version, release and rollback lifecycle

GitSync, Version Control and CI/CD Releases in ToolJet

Git Version Control with GitSync

  • GitSync overview: sync workspace apps with a Git repository for backups, a versioned history and moving apps between development, staging and production instances, using cloud or self-hosted Git providers and a custom branch.
  • Git connection methods: connect GitHub or GitLab over HTTPS, or any Git provider such as Gitea over SSH.
  • Pushing changes to Git: commit with a message from the GitSync button, with automatic commits on app rename, version updates and environment promotion.
  • Pulling changes from Git: import the latest commit to restore a backup or pick up another developer's work.

Releases, Rollback and CI/CD Automation

  • Version control: edit in a draft, then save a fixed version that can be promoted, released or used for rollback.
  • Release and rollback: release a saved version to end users from Production, and restore a previous stable version instantly while the app URL stays the same.
  • GitSync API for CI/CD: push versions, create apps from Git, promote to the next environment and set the live release from Jenkins, GitHub Actions or GitLab CI.

This lets the Reconciliation Workbench app ship changes through review and recover quickly from a bad release. Version control starts on the Pro plan and GitSync on the Team plan, while the GitSync API is a self-hosted feature of the ToolJet Enterprise plan.

Enterprise Features for Your Bank Reconciliation App

A reconciliation workbench handles bank transactions, ERP ledger entries, and analyst decisions. ToolJet covers that governance at the platform layer, so you configure it once instead of rebuilding it in every app.

  • SSO and SCIM: sign in with SAML, OIDC or LDAP, and provision users automatically
  • Role-based access control: scope permissions to the app, the data source, and each query
  • Audit logs: track every login, edit, and approval decision for compliance review
  • Air-gapped deployment: self-host on Docker or Kubernetes so your data stays in your network
  • Multiplayer editing: several builders work on the same app, with versioning and Git sync
  • ToolJet AI inside your own deployment: run the AI features in your tenancy rather than a shared service

You could add a notification layer with ToolJet Workflows. For example, a workflow could fire when a break is overridden, post to the manager in Slack, email the analyst through Gmail, and write the decision back to rw_decisions.

Final Takeaways

The Reconciliation Workbench shows how ToolJet MCP can turn a finance review process into a structured application with a clear decision trail. The break queue keeps the bank and ERP lines side by side, Jev's triage suggests a cause the analyst can accept or override, and the close summary turns saved decisions into a readable view. The bank feed is a PostgreSQL stand-in for Snowflake and the data is synthetic. Because the output is a real ToolJet application, the team can keep changing the workbench as reconciliation rules change.

Try ToolJet MCP

Build a reconciliation app with ToolJet MCP for your own finance data, then request a ToolJet demo.

FAQs

What does ToolJet MCP do for a reconciliation workbench?

ToolJet MCP connects a coding agent to the ToolJet workspace so it can create the break queue, detail pane, triage flow and summary page. Here the result is a working reconciliation workbench for Fjell & Fura AB, using synthetic data.

What does this app show for each break?

The bank line beside the ERP entry, plus Jev's suggested cause with confidence, a severity score and an auto-clear yes/no. The analyst accepts the suggestion or overrides it, and the decision is saved.

Is Jev connected live, and does it clear breaks automatically?

Jev runs live through the typesafe datasource during triage. Its output, including auto_clear, is a suggestion only. The analyst decides and saves, and the app does not clear or post any financial record automatically.

How do you reproduce this reconciliation app?

Use the prompt in this article with ToolJet MCP and a typesafe datasource in the workspace. It describes the pages, the rw_ tables and view, the rw_decisions table and the three triage questions.

Do you need to write code to build it?

The agent built the workbench through ToolJet MCP without hand-writing the app. You can still move into code or visual editing when a case needs it.

How is the agreement KPI calculated?

It is the share of saved decisions where the analyst kept Jev's cause. In testing it read 75%, which was 3 of 4 demo decisions.

Top comments (0)