ATS Global
IT Services / Internal Platform

ATS Global Techsoft: HRMS, accounting and an AI assistant on our own Frappe platform

India

The system we run the company on is the one we propose to clients. Frappe HRMS and ERPNext accounting on one database, extended with an AI assistant embedded in atsglobal.in that answers from the site's own content, records every conversation back into Frappe, and hands over to a human with the thread attached.

The challenge

Our own operations were the case we could not point at

ATS Global Techsoft had the problem it solves for clients. Employee records, attendance, leave and payroll sat in one set of tools, the books in another, and moving information between them was a manual job somebody did at month end. Nothing about it was unusual — it is the state most companies arrive in — but it is an awkward position to sell ERPNext implementation from.

The second problem was the website. Enquiries arrived through a form and waited for someone to be at a desk. A visitor reading a service page at ten at night with a specific question about Liferay upgrade scope or ERPNext timelines had nowhere to put it, and by morning most of them had gone elsewhere. Neither problem justified buying software; both justified building on the platform we already know best.

Our approach

One Frappe platform for HR and finance, one assistant on the site

Delivered by our Backend Engineering practice.

The operations side is a single Frappe deployment. Frappe HRMS carries the employee lifecycle — onboarding, attendance, leave policies and approvals, and payroll — and ERPNext accounting carries invoicing, expenses and the ledger. They share one database, one user directory and one permission model, so payroll posts into the accounts directly instead of being journalled across from a separate system, and an employee exists once rather than in two systems that drift.

The assistant is a separate piece of engineering built on top. It is embedded in atsglobal.in rather than bolted on as a third-party widget, which is what makes the rest of it possible: it answers from a context assembled out of the site's own service, case-study and industry data, so what it says traces back to a page a visitor can open. Before any model call a request guard runs. It knows business hours and says so rather than promising a reply that will not come. Every conversation is written back into Frappe as a document, and escalation puts a human into the thread with the full history attached.

  • Frappe HRMS: onboarding, attendance, leave workflows, payroll
  • ERPNext accounting: invoicing, expenses, ledger, one chart of accounts
  • Retrieval-grounded assistant built from the site's own content
  • Request guard ahead of any model call
  • Business-hours awareness with an honest next-open reply
  • Conversations persisted into Frappe; escalation to a human with full thread

Architecture

Frappe Framework, ERPNext, Frappe HRMS, Next.js, Python

The platform is Frappe Framework with ERPNext and Frappe HRMS on MariaDB, self-hosted and operated by us. The website is a Next.js application that reads Frappe over REST, with webhooks pushing content changes back so the site revalidates within seconds of an edit rather than on a timer. The blog runs the same way, from a custom doctype rather than a separate CMS.

The assistant lives in the Next.js application. Retrieval is deliberately narrow: context is built from the site's own structured data rather than an open web index, which is the same discipline we apply on client RAG systems and the reason the answers stay inside what we can stand behind. Session state, conversation history and escalation routing are handled server-side; a scripted fallback mode can drive the identical widget from the site's own data with no model in the loop at all, so the handover path — and the record in Frappe — is the same either way.

Building blocks

  • Frappe Framework · ERPNext · Frappe HRMS · MariaDB
  • Next.js site reading Frappe over REST
  • Webhook-driven cache revalidation on content change
  • Server-side session, history and escalation routing
  • Retrieval scoped to the site's own structured data
  • Scripted fallback mode with no model in the loop

Technology stack

Frappe FrameworkERPNextFrappe HRMSPythonMariaDBNext.jsREST APIs & WebhooksRetrieval-Grounded AssistantConversation Logging in FrappeHuman Escalation & Handover

What changed

The reference implementation is our own business

HR, payroll and accounting run on one Frappe platform instead of separate tools with a manual reconciliation between them. Website enquiries are answered outside office hours and arrive as a recorded conversation rather than an anonymous form submission, and because every exchange is written back into Frappe, whoever picks it up reads the whole thread rather than a summary of it.

The part that matters commercially is harder to put a number on: when a prospect asks whether Frappe can carry HR, finance and a customer-facing integration at once, we can answer by showing them the system we run ourselves. For the same platform delivered for clients, see Prem Plumbings and Land Group.

Key results

HR, payroll and accounting run on one Frappe platform instead of separate tools and spreadsheets

Website enquiries are answered outside office hours and arrive as a recorded conversation rather than an anonymous form submission

Every assistant conversation is written back into Frappe, so the team picks up the full thread instead of a summary

Escalation to a human is a single step, with the conversation history attached

The platform doubles as our reference implementation: prospects see the system running our own business before committing to theirs

Let’s work together

Ready to build something great?

Tell us about your project. We respond within one business day and can provide a customised quote for your requirements.