Hi everyone,
I would like to share a small open-source project I have been working on:
https://github.com/siasty/Ai-agent-demo-
It is an educational Frappe/ERPNext demo showing how an AI agent can analyze business data while reducing the risk of exposing sensitive information to an external AI provider.
Before ERP data is sent to the language model, the application detects and replaces sensitive values with local placeholders. This includes, among other things:
-
customer and contact names,
-
companies,
-
email addresses and phone numbers,
-
addresses,
-
IBANs, SSNs and ZIP codes,
-
Sales Order and other ERP document identifiers.
For example:
Jane Doe → PERSON_01
SAL-ORD-2026-00006 → SALES_ORDER_01
The AI model receives only the pseudonymized data. The original values are restored locally after the model returns its response.
The demo currently includes two example tools:
-
Sales Order risk analysis,
-
Customer credit history analysis.
It supports:
-
local models through Ollama,
-
Ollama Cloud,
-
OpenAI-compatible public APIs.
The whole processing pipeline is visible in the UI:
fetch data → detect sensitive information → pseudonymize → send to AI → receive analysis → restore identifiers
My main goal was to explore a practical architecture for using AI with ERPNext data without sending raw business identifiers directly to a public model.
The project also demonstrates:
-
AI-based tool selection,
-
spaCy NER combined with custom regular expressions,
-
encrypted API key storage using Frappe Password fields,
-
System Manager-only provider configuration,
-
transparent logging of every agent processing step,
-
separation between raw ERP data and model prompts.
There is also a standalone recorded demo available here:
https://siasty.github.io/Ai-agent-demo-/
The repository includes an automated installer for a disposable Frappe v15/ERPNext demo environment.
This is currently a demonstration and research project rather than a production-ready security solution. Pseudonymization alone does not guarantee complete anonymization, especially when datasets can be re-identified through context or combinations of attributes.
I would be very interested in feedback from the Frappe community, particularly regarding:
-
potential ERPNext use cases,
-
privacy and security improvements,
-
architecture and code quality,
-
additional agent tools that would be useful,
-
whether this could evolve into a reusable privacy layer for Frappe AI integrations.
I am also interested in collaborating on Frappe, ERPNext, AI-agent and data-privacy-related projects.
Repository:
https://github.com/siasty/Ai-agent-demo-
Thank you for taking a look.