Introduction
DocTypes are at the heart of Frappe Framework’s low-code architecture. But beyond just defining forms and tables, DocTypes offer an extensive suite of features—such as auto-naming, versioning, permission controls, and workflows—that enable developers and functional consultants to model complex business logic with ease.
This guide explores DocType features in Frappe v15, helping you make the most of what this robust backend architecture provides. Whether you’re building ERP apps, dashboards, or vertical solutions, understanding DocType options is essential.
Core Sections
Overview
Frappe DocTypes are more than just database tables. They allow developers to:
- Configure data structure
- Automate document flows
- Control access with roles
- Manage versions
- Enable attachments, comments, and tags
- Use print formats and workflows
These features enable modular, scalable, and secure ERP solutions across industries.
Installation / Setup
Make sure you’ve created a DocType as per this Create DocType Tutorial. Once created, you can toggle the features via the DocType UI or by editing the doctype.json file.
You can access your DocType’s configuration via
apps/your_app/your_app/your_app/doctype/your_doctype/your_doctype.json
Any changes should be followed by:
bench --site site1.local migrate
Configuration
Below is a list of the most important DocType features you can configure:
Feature |
Purpose |
Is Submittable |
Enables document status transitions (Draft → Submitted → Cancelled) |
Is Child Table |
Allows this DocType to be used inside another as a table |
Track Changes |
Enables versioning for each document change |
Track Seen |
Tracks whether users have viewed a document |
Track Email / Communications |
Stores emails and interactions in the timeline |
Allow Import |
Enables CSV/Excel import for records |
Allow Rename |
Allows users to rename the name field manually |
Autoname |
Pattern or logic for automatic naming (e.g., BOOK-.####) |
Quick Entry |
Enables compact modal form for rapid record creation |
Email Append to |
Allows incoming emails to create new records |
Has Web View |
Enables this DocType to be accessed via website routes |
Functional Use
Here’s how these features manifest in actual use:
- Submittable: Used in flows like Purchase Orders or Leave Applications
- Track Changes: Ideal for HR or Finance modules to ensure audit trail
- Child Table: Used for invoices or delivery notes with multiple line items
- Quick Entry: Speeds up sales team workflows
- Allow Import: Essential for onboarding legacy data
Enabling in UI:
- Go to Developer > DocType > Your DocType
- Check relevant feature toggles
- Save and run migrations
Developer Reference / API
You can reference or manipulate DocType features via Python:
doctype = frappe.get_doc("DocType", "Book")
print(doctype.is_submittable) # True / False
Or update programmatically:
doctype.allow_import = 1
doctype.save()
From JSON:
{
"name": "Book",
"istable": 0,
"is_submittable": 1,
"track_changes": 1,
"autoname": "BOOK-.####",
...
}
Make sure to run:
bench --site site1.local migrate
Practical Use Case
Scenario: A distributor wants to digitize their delivery process.
- They create a Delivery Note DocType.
- Enable:
- Is Submittable: To track delivery confirmations
- Track Changes: For accountability
- Has Web View: So customers can view their delivery online
- They link a Delivery Items child DocType for line-item entry
- Use naming series: DN-.####
The result? A complete delivery management module with tracking, access control, and history—all configured via DocType features.
Advanced Features
- Web View: Create public-facing views for customers
- Email Append To: Automate ticket or issue creation from inbox
- Permission Rules: Combine with role-based rules for fine-grained access
- Dashboard Integration: Define dashboards with related DocTypes
Tips, Best Practices & Pitfalls
Best Practices:
- Enable Track Changes for audit-sensitive modules.
- Use Quick Entry only when essential fields are minimal.
- Always define Autoname clearly if renaming is disabled.
Common Mistakes:
- Enabling Allow Rename in transactional DocTypes can cause data inconsistency.
- Skipping Track Changes in regulatory modules can risk compliance.
- Not setting istable = 1 for child DocTypes leads to broken parent-child relations.
v15 Notes:
- Improved web view configuration
- Enhanced “Track Seen” performance
- Cleaner JSON formatting for migration tracking
Visual Suggestion
- Table comparing DocType feature toggles and their effects
- Screenshot of DocType UI form showing toggles
- Flowchart: Record creation → Submission → Versioning
Conclusion
DocType features in Frappe v15 allow you to shape your applications with precision and control. From tracking changes to configuring email interactions, these options transform DocTypes from mere forms to intelligent workflow-driven entities.