Model-Driven App & Dataverse Field Limits and Best Practices

   

πŸ” Business Process Flows (BPF)

Category Limit Scope Best Practice / Notes
Max active BPFs 10 Per table Deactivate unused BPFs
Total BPFs 50 Per environment Includes both active and inactive
Stages per BPF 30 Per BPF Keep logical, avoid bloat
Concurrent BPFs 5 Per record More than 5 not supported

πŸ“ Multiline Text Fields

Limit Scope Best Practice / Notes
1,048,576 characters Per column Use rich text sparingly
≀ 100,000 characters Recommended max Improves sync/form performance

πŸ”€ Single Line Text Fields

Limit Scope Best Practice / Notes
4000 characters Per field Use multiline if longer needed
50 characters Schema/internal name Keep clean and consistent
100 characters Display name Shorter names = better UX

🧩 Field Titles & Naming

Limit Scope Best Practice / Notes
100 characters Column display name Use PascalCase / Proper Case
50 characters Schema/logical name No spaces/special characters

πŸ”— Lookups (Relationships)

Limit Scope Best Practice / Notes
75 Lookup fields per form Keep <15 for performance
1000 Relationships per table Reuse when possible
Unlimited N:N relationships Prefer junction tables

πŸ” Security Role & Access Limits

Category Limit Best Practice
Roles per user ~100 Keep model simple
Team inheritance depth 1 No nesting supported

βš™οΈ Solution Layering & Fields

Field Limit Scope Best Practice
Fields per table 1023 Per table Normalize models
Forms per table 100 Manageable Archive unused
Views per table 200 Per table Use role-based views

πŸ“± Model-Driven App UI Limits

Component Limit Best Practice
Tabs per form 100 Keep it under 10
Sections per tab 75 Use 2–4 max
Fields per form ~340 Keep forms clean
Subgrids per form No hard limit Avoid >10 for speed
Business Rules 300 per table Avoid conflicts

βœ… General Recommendations

Scenario Best Approach
Need long text? Use multiline, keep ≀100K
Need editable unique ID? Use text + Power Automate
Complex forms? Split into tabs or forms
Too many BPFs? Use conditional logic or security roles

Notes by Akira28:

  • Limit Noise in Your UI: Just because a form supports 340+ fields doesn’t mean you should use them. Clean forms create focused users.
  • Normalize Before You Customize: Overloading a single table with too many fields or relationships leads to chaos. Modular design wins long term.
  • BPFs Should Follow Behavior: Don’t build long flows to “map” every scenario. Build to support user intent at critical moments.
  • Use Lookups Intentionally: Too many lookup fields drag performance. If you need more than 10, consider breaking into tabs or multiple forms.
  • Security Roles β‰  Bandaids: Avoid patching over design gaps with too many roles. Fewer, smarter roles are more scalable and easier to audit.
  • Views and Forms Are Conversations: Role-based forms and filtered views give the right data to the right people β€” that’s what real UX means in enterprise apps.
  • Multiline Fields Are Not Dumping Grounds: If users are writing essays, you’re doing something wrong. Segment info into logical fields and use notes or activities when needed.
  • CONCLUSION – Limits and best practices listed here may change as Microsoft updates the platform. Always consult official documentation for the most current information.
 
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Nitin

This is helpful!