A full document management system built as a native Frappe app inside ERPNext, adding hierarchical folders, file versioning with check-in/check-out, OCR-based full-text search, tagging, and role-based access control. ECOSIRE scopes, builds, installs, and supports it for your instance. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $249.00 USD; request a quote for a scoped proposal.

A full document management system built as a native Frappe app inside ERPNext, adding hierarchical folders, file versioning with check-in/check-out, OCR-based full-text search, tagging, and role-based access control. ECOSIRE scopes, builds, installs, and supports it for your instance.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Compliance-heavy teams running ERPNext quickly hit the limits of the native File DocType. Attachments live scattered against individual records, there is no true folder hierarchy with inherited permissions, no version history when a file is replaced, no check-out lock to stop two people editing the same contract, and no way to search inside a scanned PDF. When an auditor asks "show me every controlled document, who accessed it, and prove this is the current revision," the stock File list cannot answer. Teams end up bolting on a separate SharePoint or Google Drive, which breaks the single-source-of-truth that made ERPNext worth adopting.
Native Frappe app with its own DMS module, DocTypes and workspace, installed via bench into your ERPNext site (no external DMS to sync)
Hierarchical folders built on a nested-set (`nsm`) `DMS Folder` tree so permissions and metadata cascade from parent to child folders
File versioning: every replace creates a `DMS Document Version` record with author, timestamp, content hash and change note, and any prior version is restorable
Check-in / check-out locking via whitelisted `checkout()`/`checkin()` methods and `hooks.py` doc events that reject edits from anyone who is not the lock owner
OCR pipeline (Tesseract by default, cloud OCR optional) run as a background job so scanned PDFs and images become full-text searchable
Unified full-text search across typed documents, scanned files and metadata, backed by an indexed extracted-text field
We build a proper Document Management System as a native Frappe app (its own module, not a pile of customizations) that lives inside your ERPNext instance and reuses its user table, permissions engine, and audit trail. At the core is a DMS Document DocType with a parent DMS Folder tree (an nsm/nested-set structure so a folder's permissions cascade to children), a DMS Document Version child/linked DocType that captures every revision with author, timestamp, hash and change note, and metadata fields plus a free-form tag/Tag link table. Check-in/check-out is enforced through hooks.py doc events (before_save, on_update, validate) plus a whitelisted checkout() / checkin() method pair that sets a lock owner and rejects edits from anyone else. Access control is expressed as ERPNext Role Profiles and User Permissions layered with folder-level permission rules, so "Finance can read, Compliance can approve, everyone else sees nothing" is enforced by the framework, not by hiding a button.
Full-text and OCR search is handled by a background pipeline: on upload, a scheduler_events / background job runs the file through an OCR engine (Tesseract by default; a cloud OCR provider optional) and writes the extracted text into an indexed field so both typed and scanned PDFs, images and Office files become searchable from one search bar. Expiry and review reminders run off a scheduled server script that scans documents whose review_date/expiry_date is approaching and raises ERPNext Notifications, ToDos or email alerts to the responsible role. Everything is reachable over the standard Frappe REST API and whitelisted methods, so your other systems (or a customer portal) can push and pull documents with the same authentication and permission checks as the desk UI. Client scripts add the in-list drag-drop, the version-compare view and the check-out banner.
Because this is build-to-order, nothing is a black box. We start with a short scoping call to map your folder taxonomy, retention rules, roles and the DocTypes documents must attach to, then build against a staging copy of your instance targeting Frappe/ERPNext v15 or v16. You get the full app source in a Git repository you own, installation and configuration on your servers, UAT on staging with a rollback plan before we touch production, user training, and a post-go-live support window. Typical delivery is 2 to 4 weeks from confirmed scope, depending on how much OCR tuning and custom permission logic your compliance regime requires.
Owns controlled documents (SOPs, policies, certificates) and must prove the current revision, restrict who can approve, and show a defensible audit trail. Needs versioning, check-out locks and folder-level permissions inside ERPNext rather than a separate silo.
Runs the bench and does not want an external DMS to authenticate and sync. Wants a native Frappe app that reuses the existing user table, permissions engine and backups, ships as clean migratable source, and installs cleanly on v15/v16.
Manages contracts, vendor agreements and signed POs that must attach to the right Customer, Supplier or Project record. Needs expiry reminders before renewals lapse and OCR search to find a clause inside a scanned agreement.
Maintains the day-to-day filing structure and retention rules across departments. Needs a real folder hierarchy, consistent tagging and metadata, and review reminders so nothing sits past its retention date.
Buy the license on ecosire.com and download the Document Management System (DMS) for ERPNext app ZIP from your account dashboard.
Extract the ZIP into your bench's apps folder, or run `bench get-app` with the path to the extracted app.
Run `bench --site SITE_NAME install-app APP_NAME` followed by `bench migrate` to install Document Management System (DMS) for ERPNext and apply its schema.
Open the ECOSIRE License settings on your site and activate your license key. Requires the free ecosire_connect and ecosire_license_client apps.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Folder hierarchy | True nested-set folder tree with cascading permissions | Depends entirely on your developer's design | Often flat or limited nesting | |
| File versioning | Full version history with restore, hash and change note | Must be built and tested from scratch | Varies; often basic or absent | |
| Check-in / check-out | Lock enforced via doc events and whitelisted methods | Rarely built well; race conditions common | Sometimes offered, sometimes not | |
| OCR search | Background OCR pipeline; scanned files fully searchable | Significant extra effort to build and tune | Frequently unavailable or paid add-on | |
| Access control | Framework-enforced role profiles + folder permissions | As robust as your team makes it | Generic roles, limited folder-level rules | |
| Expiry / review reminders | Scheduled job raising Notifications, ToDos and emails | Extra scheduler work to design and maintain | Sometimes included, often rigid | |
| Ownership & source | Full app source in a Git repo you own | You own it but carry all build risk | Usually closed source or license-locked | |
| Support & upgrades | Post-go-live window + v15/v16 tested, upgrade retainers | Whoever built it must keep maintaining it | Vendor-dependent, variable SLAs |
This is a build-to-order product, not an instant download. Typical delivery is 2 to 4 weeks from confirmed scope. The range depends on the size of your folder taxonomy, how much custom permission logic your compliance regime needs, and how much OCR tuning your document types require. We agree the scope and timeline in writing after the initial scoping call.
Every build includes a post-go-live support window for bug fixes and questions. Because you receive the full source in a Git repository you own, your team can also extend it. Beyond the included window, we offer ongoing support and version-upgrade retainers, including migrations when you move between Frappe/ERPNext major versions.
No. It is a native Frappe app that we build and install specifically for your instance. That means the DocTypes, folder taxonomy, roles and OCR settings are shaped to your organization instead of a one-size-fits-all listing, and we install and validate it on your servers rather than handing you a generic package.
Yes. On upload, a background job runs files through an OCR engine (Tesseract by default, with a cloud OCR provider optional) and writes the extracted text into an indexed field. Scanned PDFs, photographed documents and image files then become searchable from the same search bar as typed documents.
We build and test against Frappe/ERPNext v15 and v16, delivered as clean, migratable source with proper fixtures and patches. If you are on an older version we will confirm feasibility during scoping, and we can plan an upgrade path as part of the engagement.
Access is enforced by the Frappe framework, not by hiding buttons. We use ERPNext Role Profiles, User Permissions and folder-level permission rules so a user simply cannot read or download a document outside their scope, whether through the desk UI or the REST API. Every access and revision is logged for audit.
The app ships as a standard Frappe app with proper hooks, fixtures and patch files, so it participates in bench migrate like any other app. We test against v15/v16 and avoid core overrides where possible, using documented doc events and whitelisted methods so upgrades stay predictable.
A full document management system built as a native Frappe app inside ERPNext, adding hierarchical folders, file versioning with check-in/check-out, OCR-based full-text search, tagging, and role-based access control. ECOSIRE scopes, builds, installs, and supports it for your instance.