Next.js · n8n · TallyPrimeRetail & Operations

Bridging Legacy ERPs with Modern Web Dashboards — Unified Business Intelligence & Automated Ledger Reports

Product FrameworkBizDash
Services DeliveredBimodal Sync, ERP Connector & Automation
Delivered ByArcnetic Private Limited
Caching Latency< 10 Seconds Sync

"We took the friction out of corporate accounting. By decoupling local database inventory grids from isolated Tally XML services, businesses can track daily ledger health, spot anomalies, and broadcast automated briefings in real-time."

bizdash.darkmode.app
BizDash Dark Mode Overview
bizdash.lightmode.app
BizDash Light Mode Overview

The Product: BizDash

BizDash is an enterprise-grade business management utility designed to aggregate financial spreadsheets, active stock parameters, and corporate ledger statements into a single, high-contrast visual interface.

It solves data isolation issues for small and medium enterprises by establishing structured PostgreSQL pooling alongside a local SOAP/XML connector targeting **TallyPrime** systems. Operating under bimodal sync strategies, it caters to internal sales tracking as well as official accounting balances.

To simplify deployment, the entire ecosystem is containerized for seamless cloud or staging environments.

Key Capabilities

  • Bimodal Operations — Switch between local transactional records and official ERP reports.
  • Tally SOAP Connector — Live queries parsing financial accounts and Gross/Nett totals.
  • Stock Alerts — Low-stock threshold triggers auto-flagging endangered SKU numbers.
  • n8n Workflows — Automated digests scheduled daily and dispatched to team channels.

The Challenge: Fragmented Data and Manual Compilations

When analyzing typical retail and operations pipelines, a critical gap emerges: operational data (such as item sales, inventory checkouts, and stock alerts) exists in isolation from the ledger records kept inside the company's accounting software. Bookkeepers spend hours manually extracting P&L logs, creating massive delays in business analysis:

ERP System Isolation

TallyPrime runs in a local environment with a custom XML/SOAP interface, isolating ledger data from external web applications.

Operational Gaps

Operations teams cannot track real-time sales and low-stock inventory directly alongside official corporate financial ledger statements.

Manual Reporting Friction

Management spends hours compiling daily P&L sheets and manually mailing business digests to stakeholders.

Complex Setup & Configuration

Deploying a database sync engine, ERP mapping endpoints, and reporting rules usually requires complex manual script configuration.

Legacy Performance Bottlenecks

Hitting local Tally APIs directly on page loads causes significant latency and rate limit blocks.

bizdash.custom.reports
BizDash Custom Reporting Page Screenshot

The Engineering Solution: Decoupled Architecture & Automation

We developed a unified portal leveraging Next.js 15, Node.js/Express, PostgreSQL, Redis, and n8n, enabling instant data alignment and automated reports.

1Next.js 15 Dashboard — High Contrast & High Performance

The visual dashboard uses the Next.js App Router to separate route structures. The UI is built with Montserrat typography and a dark, modern aesthetic to maintain accessibility. It features collapsible panel grids, real-time sync status lights, and responsive modal screens for PDF report previews.

  • Collapsible dashboard grids for modular layout customization
  • Real-time backend API connectivity monitor
  • Interactive modal previews of PDF digests before broadcast
  • Fast-loading data tables with instant CSV/PDF triggers
bizdash.setup.wizard
Setup Wizard Settings Page Screenshot

2Bimodal Sync Engine — Bridging Local Database & ERP Accounts

The dashboard can run in two distinct modes depending on settings. In **Internal Mode**, it pulls sales and stock parameters directly from PostgreSQL databases. In **External Mode**, it initiates XML SOAP queries directly to local Tally ERP ports, extracting Ledger totals for today, the current fiscal year (CFY), and lifetime reports.

  • XML SOAP envelope builder — dynamically creates requests containing date filters (YYYYMMDD)
  • Direct HTTP/XML endpoint sync — fetches Profit and Loss nodes directly on port 9000
  • Dual-Source normalizer — maps both Postgres and XML ledgers into unified client objects
  • Automatic ledger routing — separates Direct Expenses, Sales Accounts, and Costs

3n8n Scheduled Workflows — Automated Reporting Digests

To streamline administrative overhead, we integrated **n8n** as an orchestration engine. Every morning, the n8n container invokes backend endpoints to capture consolidated P&L metrics, checks for low-stock inventory items, compiles a beautiful responsive HTML report, and sends it directly via SMTP and Slack webhook channels.

  • Scheduled cron timers — triggers digests automatically based on timezone parameters
  • Responsive HTML compiler — compiles sales metrics, P&L totals, and stock warnings into table rows
  • Multi-channel broadcast — pushes identical metrics to Slack webhooks and SMTP mailboxes simultaneously

4Setup Wizard — Visual Environment Onboarding

Non-technical administrators struggle with editing environment variables. We built an onboarding wizard that guides users through configuring database pool strings, Tally XML base URLs, and SMTP details. The wizard tests connection health (testing local Tally availability by exporting a List of Companies) before storing settings in PostgreSQL.

  • Dynamic pool re-initialization — backend dynamically restarts PostgreSQL connections upon URL change
  • Tally connection verification — tests HTTP reachability before committing settings
  • User onboarding routing — redirects users to wizard if settings table keys are missing

The Impact: Before vs. After

Decoupling calculations and automating digests eliminated spreadsheet overhead completely.

Process
Legacy Setup
Arcnetic System
Ledger Sync
Manual export & spreadsheet calculations
Automated XML request sync (<10s latency)
Report Dispatch
Hours of manual compilation
Automated n8n SMTP digests
Data Visibility
Isolated accounting vs. operational data
Unified single-pane dashboard UI
System Configuration
Manual SQL scripts and environment setup
Interactive step-by-step Setup Wizard
Database Load
Heavy legacy calls on every dashboard load
Optimized Redis caching & Postgres pools

Implementation Highlights

Interactive Setup Wizard for database, Tally host, and reporting configs
Direct Tally XML SOAP integration to extract live P&L ledger details
Automated HTML email and Slack report workflows via integrated n8n scheduling
Bimodal dashboard switching between local database sales and Tally accounting records
Low-stock SKU tracking with automated alert triggers
Fully dockerized stack for consistent local or cloud staging deployments
Docker Orchestration & System Topology

Decoupled Container Topology

The application uses a multi-tier Docker architecture. The Next.js frontend connects to an Express.js/TypeScript backend API. Local sales data and settings are stored in PostgreSQL, with Redis acting as a caching and state management layer. The backend integrates with local TallyPrime instances by posting XML SOAP requests to query ledgers. An n8n server coordinates scheduled workflows to fetch consolidated P&L and inventory reports, compile rich responsive HTML templates, and dispatch them to SMTP servers and Slack webhook endpoints.

Deployed Stack

Next.js 15
Node.js
Express
PostgreSQL
Redis 7
n8n
Docker
TypeScript
Partner with Arcnetic

Ready to automate your operations and ERP reports?

Let's build a custom dashboard that integrates legacy systems, monitors live inventory stock levels, and schedules daily SMTP/Slack digests automatically.

About Arcnetic

Arcnetic is an elite digital engineering studio specializing in high-performance web development, custom dashboards, distributed background queues, and complex integrations. We don't just write code — we build corporate-grade digital ecosystems.

© 2026 Arcnetic. All rights reserved. Case study published with client consent.