Skip to main content

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:

  1. Go to Developer > DocType > Your DocType
  2. Check relevant feature toggles
  3. 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:

  1. Enable Track Changes for audit-sensitive modules.
  2. Use Quick Entry only when essential fields are minimal.
  3. 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.

Click to rate this post!
[Total: 1 Average: 5]