Why erpnext can not isolate data/transaction/ master data when implmenting multicompany

Current Limitation

  • Shared doctypes: Core modules like Sales Invoice, Purchase Order, Stock Entry are global, so even if you filter by company, the schema itself isn’t isolated.

  • Shared functions: Workflows, reports, and permissions often overlap, making it tricky to enforce strict separation.

  • Privacy issue: If multiple companies in the same industry share a site, sensitive data can leak through reporting or user roles.

What would help

  • Doctype isolation toggle: A global setting to mark certain doctypes as “company-specific” so they don’t share schema/data.

  • Function isolation: Ability to scope workflows, reports, and permissions to a company without cross-contamination.

  • Transaction isolation: Configurable rules so transactions are stored and processed independently per company.

  • Customizable global settings: A system-level architectural option to choose between shared vs. isolated mode.

Hi there,

if you want this kind of isolation, why use a single site in the first place? You can run separate instances on a single bench, and that will give you full separation of data.

I’m sorry you feel my reply is off topic. If other moderators agree, they will remove it.

Let me try rephrasing it: Frappe/ERPNext can provide an isolated data environment. The mechanism for that is multi-tenancy. If that approach is not serving your use case, it would be helpful if you clarified the limitations you are encountering.

1 Like