Aakvatech Limited - Why I love Frappe Framework
Frappe Framework — Built-in App Features
·
5 min read
Core Document Management
- Custom DocTypes with 20+ field types: Data, Link, Select, Check, Int, Float, Currency, Date, Datetime, Duration, Attach, Attach Image, JSON, Password, Code, Markdown Editor, HTML Editor, Text Editor, Long Text, Autocomplete
- Child tables for embedded document rows (e.g., line items)
- Single DocTypes for singleton settings/configuration records
- Document versioning via the Version DocType (tracks all field-level changes)
- Document lifecycle: Draft → Submitted → Cancelled → Amended
- Naming series and Document Naming Rules with conditional logic
- Document cloning and amending
- Deleted Document recovery (soft-delete and restore)
- File attachments via the File DocType with is_private support
- DocShare for per-user document-level sharing
- Document Share Key for time-limited public access links
User Interface
- Form views with Section Breaks, Column Breaks, and Tab Breaks
- List views with configurable columns via List View Settings
- Kanban Board with configurable columns and swimlanes
- Calendar View (linked to date fields, configurable per DocType)
- Dashboard with chart links, number card links, and shortcut links
- Dashboard Charts (Count, Sum, Average, Group By, Heatmap, Line, Bar, Pie) with date range filters, time series grouping, and color customization
- Number Cards with conditional formatting, stats period comparison, color per value
- Workspace builder with links, shortcuts, charts, number cards, quick lists, and custom HTML blocks
- Form Tour with step-by-step guided walkthroughs (22 fields per step: position, description, next/previous actions)
- Print Formats with Jinja templating, letter heads, print styles, and field templates
- Custom HTML Blocks embeddable in workspaces
- Global search with per-DocType inclusion control via Global Search Settings
- Desktop Icon customization per user
Workflow & Automation
- Workflow engine with states, transitions, role-based action permissions, and document color coding
- Assignment Rules with round-robin, load balancing, and day-based scheduling
- Auto Repeat for recurring documents (daily, weekly, monthly, custom frequency with end conditions)
- Milestone Tracker to auto-record milestone dates based on field value changes
- Reminder per document with user-level notification scheduling
- Server Scripts (DocType Event, API, Scheduler) with full Python access
- Client Scripts (Form, List) for browser-side JS customization
- Scheduled Job Types with cron-style frequency and job history logging
- Document event hooks:
before_save,on_submit,on_cancel,before_delete,after_insert, etc. - Bulk Update for mass field updates across documents
- Success Action to show a custom message or redirect after form save
Notifications & Communication
- Notification rules triggered by DocType events with Jinja-based subject/message, multi-channel delivery (Email, Slack, System)
- Notification Log (in-app bell notifications) with read/unread tracking
- Notification Settings per user for per-DocType follow preferences
- Document Follow — users subscribe to specific documents to receive change alerts
- Comment threads on every document with
@mentionsupport - ToDo with assignment, priority, date, reference link, and status
- Event with participants, reminders (email/system), Google Calendar sync, recurring options
- Note with role-based visibility and seen-by tracking
- Email threading: inbound emails auto-linked to source documents via Communication Links
- Activity log and timeline on every document
- Email Account (SMTP + IMAP) with OAuth support, IMAP folder filtering, append-to-sent, auto BCC
- Email Queue with retry logic, recipient tracking, and priority
- Email Template with Jinja support
- Auto Email Report — scheduled delivery of any report by email
- Newsletter with email group targeting, attachment support, tracking (sent/bounced/opened)
- Email Group for subscriber list management with unsubscribe handling
- Email Rule for auto-filing and tagging inbound emails
- Email Domain for domain-level SMTP/IMAP configuration
- Unsubscribe management via Email Unsubscribe
Access Control & Security
- Role-based permissions (Read, Write, Create, Delete, Submit, Cancel, Amend, Print, Email, Import, Export, Report, Share) at DocType level
- Custom DocPerm to override permissions without modifying source
- Field-level
permlevel(hide/read-only fields from lower-permission roles) - User Permission to restrict which records a user can see (e.g., only their own Branch/Company)
- User Type to define restricted user profiles with allowlisted DocTypes and modules
- Module Profile to control which modules are visible to a role
- Two-factor authentication (TOTP/OTP via System Settings)
- Session Default Settings for per-user default field values
- Audit Trail toggle per DocType
- Access Log for document open/print events
- Transaction Log for API-level mutation tracking
- View Log for document access history
- IP whitelisting and session timeout via System Settings
Customization Without Code
- Customize Form — add, hide, reorder, relabel fields on any DocType without touching source
- Custom Field with full field definition (type, options, default, depends_on, permlevel, etc.)
- Property Setter — override any DocType or field property (label, hidden, reqd, default, options…)
- DocType Layout — alternate form layout per role without modifying the master DocType
- Translation support — per-language string overrides via Translation DocType
- Tag system for free-form categorization across all DocTypes
Reporting & Data
- Query Reports (SQL-based with dynamic filters)
- Script Reports (Python-based with dynamic columns and chart output)
- Summary/Pivot reports
- Prepared Report for async execution of long-running reports
- Data export to CSV, Excel, PDF
- Data Import via CSV/Excel with field mapping, update mode, and import log
- Recorder for SQL query profiling with suggested index recommendations
Integration & API
- REST API auto-generated for every DocType (CRUD + RPC)
- Webhook with per-event triggers, conditional expressions, Jinja-based payload, and header/query param config
- Webhook Request Log for delivery tracking and retry
- OAuth2 Provider (Authorization Code flow) — issue tokens to third-party apps
- Connected App + Token Cache for OAuth2 consumer (call external APIs)
- Social Login Key for Google, GitHub, Facebook, etc. SSO
- LDAP Settings with group-to-role mapping
- Google Workspace: Google Calendar (two-way sync), Google Contacts, Google Drive backup
- Dropbox Settings and S3 Backup Settings for offsite backup
- Slack Webhook URL for Slack notification delivery
- Integration Request log for all outbound API calls
- SMS Settings for SMS-based notifications
- Push Notification Settings for browser push
Printing & Documents
- Print Format with Jinja HTML, custom CSS, field templates, raw printing support
- Letter Head (HTML/image-based with print and email variants)
- Print Style (global CSS overrides for print)
- Print Settings (default paper size, PDF settings, network printer config)
- Network Printer Settings for direct network printing
- Print Format Field Template for reusable field rendering blocks
Website & Portal
- Web Page builder with blocks, custom CSS/JS, meta tags, route redirects, scheduled publish/expiry
- Web Form — public-facing data entry forms linked to any DocType, with list view, payment, login requirement, breadcrumbs, and custom success actions
- Web Template for reusable page blocks with configurable fields
- Website Theme with CSS variable overrides, font settings, custom SCSS
- Blog system: Blog Posts, Categories, Blogger profiles, Blog Settings (comments via Disqus, Google Analytics)
- Help Articles and Help Categories for in-site knowledge base
- Website Slideshow for image carousels
- Website Sidebar for contextual navigation
- Discussion Topic / Reply for community-style threaded discussions
- Newsletter subscription and campaign management
- Portal Settings with role-based menu items
- Personal Data Download and Deletion Request handling (GDPR compliance)
- Website Settings — 46 fields covering brand, analytics, SEO, robots.txt, top bar, social links, scripts
Social & Gamification
- Energy Point system with configurable rules per DocType action (create, submit, cancel, custom)
- Energy Point Log for per-user point history
- Review Levels based on cumulative energy points
- Energy Point leaderboard support
Geo & Localization
- Country and Currency master data
- Per-site locale, timezone, date/number format via System Settings
- Multi-currency with exchange rate support
- Language management with RTL support
Multi-Tenancy & Infrastructure
- Multi-site architecture (one codebase, isolated databases per site)
- RQ Worker and RQ Job management with queue monitoring
- System Health Report — 34-field dashboard covering queue depth, worker status, failing jobs, scheduler state, DB table sizes, error rates
- Submission Queue for async document submission
- Bench-level app and patch management with Patch Log
- Package and Package Release for app distribution
- Module and app scaffolding via bench CLI
No comments yet. Login to start a new discussion Start a new discussion