# FlexiRule Documentation > Enterprise documentation for FlexiRule, a metadata-driven automation and rules orchestration platform for Frappe teams. Base URL: https://sendipad.github.io/flexirule-docs/ Application repository: https://github.com/Sendipad/flexirule Documentation repository: https://github.com/Sendipad/flexirule-docs Generated: 2026-07-06 ## Core documentation - [Entry Action](https://sendipad.github.io/flexirule-docs/action-type/entry-action/) — The starting point of every business rule. - [API Reference](https://sendipad.github.io/flexirule-docs/api-reference/public-apis/) — Public whitelisted methods for programmatic interaction with FlexiRule. - [Assignment: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/assignment/) — Sequential mutation engine and normalization pipeline internals. - [Canvas Navigation](https://sendipad.github.io/flexirule-docs/rule-builder/canvas/) — Learn how to navigate and use the visual Rule Builder canvas. - [Create New](https://sendipad.github.io/flexirule-docs/action-type/update-record/create-new/) — Generating new documents automatically via rule logic. - [Email](https://sendipad.github.io/flexirule-docs/action-type/notify/email/) — Sending automated emails with attachments and dynamic templates. - [Installation Guide](https://sendipad.github.io/flexirule-docs/setup/installation/) — How to install FlexiRule in your Frappe/ERPNext environment. - [Normalization Value Resolver](https://sendipad.github.io/flexirule-docs/advanced-concepts/data-manipulation/normalization-value-resolver/) — Resolve, format, and normalize variables natively within the rule canvas using pipelines and profiles. - [Performance Architecture](https://sendipad.github.io/flexirule-docs/performance/architecture/) — How FlexiRule maintains lightning-fast execution speeds. - [Query Doc](https://sendipad.github.io/flexirule-docs/action-type/query-records/query-doc/) — Find one specific item and retrieve its details. - [Query Filters](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/query-filters/) — Reference guide for filtering logic across FlexiRule actions. - [Quick Start](https://sendipad.github.io/flexirule-docs/getting-started/quick-start/) — Build your first automation in under 5 minutes. - [Send Email on Sales Order Submission](https://sendipad.github.io/flexirule-docs/tutorials/send-email-sales-order/) — A beginner tutorial on triggering an automated email when a Sales Order is submitted. - [Timespan Keywords](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/timespan-keywords/) — Reference for natural language date keywords in FlexiRule. - [Troubleshooting](https://sendipad.github.io/flexirule-docs/troubleshooting/troubleshooting/) — Common issues and how to resolve them. - [What is FlexiRule?](https://sendipad.github.io/flexirule-docs/introduction/what-is-flexirule/) — A high-level overview of FlexiRule and its role in the Frappe ecosystem. - [Initial Configuration](https://sendipad.github.io/flexirule-docs/setup/initial-configuration/) — Steps to take after installing FlexiRule. - [Action Config Panels](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/ui/action-config-panels/) — The Rule Builder uses a modular approach to action configuration. Instead of one massive form, it uses **Config Panels** that correspond to specifi... - [Action Contracts](https://sendipad.github.io/flexirule-docs/api-reference/contracts/) — Understanding the DTOs used for UI/Backend communication. - [Action Implementation](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/engine/action-implementation/) — Technical reference for backend action handlers and execution mechanics. - [Action Metadata Schema](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/ai/action-metadata-schema/) — Reference specification for action metadata used by AI and programmatic tools. - [Adding Actions](https://sendipad.github.io/flexirule-docs/rule-builder/add-action/) — Learn how to add new logic blocks to your rule. - [AI Features](https://sendipad.github.io/flexirule-docs/advanced-concepts/ai-features/) — Leveraging Artificial Intelligence within FlexiRule logic. - [Architecture](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/overview/) — Core architecture and design philosophy of FlexiRule. - [Assignment Action Improvements](https://sendipad.github.io/flexirule-docs/advanced-concepts/roadmap/assignment-action-improvements/) — Strategic roadmap for enhancing the core Assignment mechanism. - [Callable Triggers](https://sendipad.github.io/flexirule-docs/advanced-concepts/triggers/callable-triggers/) — Callable triggers (also known as Sub-Rules) are designed to be invoked manually or as part of another rule's execution flow. - [Condition: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/condition/) — Internal implementation details and developer reference for the Condition action. - [Condition: Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/condition/) — Technical runtime behavior and engine guarantees for the Condition action. - [DocTypes](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/doctypes/) — Reference for all DocTypes used in FlexiRule. - [Execution Context](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/runtime/execution-context/) — The `ExecutionContext` is the "Brain" of a rule execution. It travels through every node, carrying state and providing environmental awareness. - [FAQ](https://sendipad.github.io/flexirule-docs/troubleshooting/faq/) — Frequently asked questions about FlexiRule. - [High Performance Optimization](https://sendipad.github.io/flexirule-docs/performance/optimization/) — Techniques and best practices for ensuring FlexiRule runs efficiently at scale. - [Manager Approval for Large Purchase Orders](https://sendipad.github.io/flexirule-docs/tutorials/manager-approval/) — How to implement an approval workflow based on document value. - [Permissions](https://sendipad.github.io/flexirule-docs/setup/permissions/) — Managing access to the Rule Builder and rule execution. - [Query List](https://sendipad.github.io/flexirule-docs/action-type/query-records/query-list/) — Find multiple records matching specific criteria. - [Registry and Contracts](https://sendipad.github.io/flexirule-docs/advanced-concepts/registry-contracts/) — The backbone of FlexiRule's extensibility and dynamic UI. - [Resolver Patterns](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/resolver/resolver-patterns/) — This document catalogs the practical patterns enabled by the FlexiRule Resolver Engine. - [System Overview (AR)](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/localized/arabic-overview/) — يُطلق على FlexiRule في بنيته الحالية اسم **"محرك تنسيق القواعد البصري" (Visual Rule Orchestration Engine)**. وهو عبارة عن منصة متقدمة مبنية خصيصاً ... - [Update Existing](https://sendipad.github.io/flexirule-docs/action-type/update-record/update-existing/) — Modifying specific records in the system. - [Why should I use FlexiRule?](https://sendipad.github.io/flexirule-docs/introduction/why-flexirule/) — Understanding the business value and agility provided by visual rules. - [Automatically Assign Documents](https://sendipad.github.io/flexirule-docs/tutorials/automatic-assignment/) — Tutorial on routing documents to users based on round-robin or specific field values. - [Backend Hooks](https://sendipad.github.io/flexirule-docs/api-reference/hooks/) — Extension points for developers in the FlexiRule framework. - [Component Registry](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/ui/component-registry/) — `FlexiGrid.vue` is one of the most sophisticated components in FlexiRule. It is a **recursive, schema-aware collection editor** that mimics the pow... - [Condition System](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/engine/condition-system/) — FlexiRule employs a sophisticated, high-performance condition system that allows users to build complex logic visually while executing it with the ... - [Decision Trees](https://sendipad.github.io/flexirule-docs/advanced-concepts/decision-trees/) — Guidance on choosing the right FlexiRule features. - [Document Action: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/document-action/) — Class structure, Resource Mapper internals, and mode dispatch logic for the Document Action. - [Document Action: Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/document-action/) — Technical runtime behavior, transaction models, and permission escalation for the Document Action. - [Documentation Standardization Roadmap](https://sendipad.github.io/flexirule-docs/advanced-concepts/roadmap/documentation-standardization/) — Plan for migrating and standardizing FlexiRule action documentation to the 3-layer framework. - [Does ERPNext need FlexiRule?](https://sendipad.github.io/flexirule-docs/introduction/erpnext-need/) — A balanced guide on when standard ERPNext features are sufficient versus when FlexiRule becomes necessary. - [Execution Context Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/triggers/context-reference/) — This reference describes the variables available to the engine at the moment of triggering. - [Exist Record](https://sendipad.github.io/flexirule-docs/action-type/query-records/exist-record/) — Check if a record exists without retrieving data. - [Glossary](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/glossary/) — Common terminology used in FlexiRule. - [Graph Orchestration](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/runtime/graph-orchestration/) — FlexiRule represents automation as a **Directed Graph**. This is not just a UI choice; it is the fundamental way the engine reasons about execution. - [Rule Configuration](https://sendipad.github.io/flexirule-docs/rule-builder/rule-configuration/) — Learn how to set up the global settings for your rule. - [RuleFlow Settings](https://sendipad.github.io/flexirule-docs/setup/settings/) — Global configuration for the FlexiRule engine. - [Advanced Process: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/advanced-process/) — Runtime orchestration, Registry pattern, and the ProcessOperationExecutor internals. - [Condition](https://sendipad.github.io/flexirule-docs/action-type/condition/) — Evaluate complex logic gates to determine the execution path. - [Controls](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/ui/controls/) — This document details the smart and innovative Vue components used throughout the FlexiRule UI. These controls are designed for high reusability, p... - [Do I need FlexiRule?](https://sendipad.github.io/flexirule-docs/introduction/do-i-need-flexirule/) — A decision guide to help you determine if FlexiRule is appropriate for your organization. - [Entry Action: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/entry/) — Internal implementation details and developer reference for the Entry Action. - [Entry Action: Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/entry/) — Technical runtime behavior and engine guarantees for the Entry Action. - [Event Driven Architecture](https://sendipad.github.io/flexirule-docs/advanced-concepts/roadmap/event-driven-architecture/) — While FlexiRule currently excels at document-level automation, its architecture is perfectly positioned to become a **Global Event Orchestrator**. - [Execution Engine](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/engine/execution-engine/) — Deep dive into the FlexiRule deterministic graph executor. - [Overview](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/runtime/overview/) — The `RuleEngine` is the heart of FlexiRule. It doesn't just run code; it manages a **Stateful Execution Pipeline**. - [Query Report](https://sendipad.github.io/flexirule-docs/action-type/query-records/query-report/) — Retrieve data using an existing system report. - [Rule Entry Condition vs. Condition Action](https://sendipad.github.io/flexirule-docs/advanced-concepts/rule-entry-condition-vs-condition-action/) — Understand when to use a Rule Entry Condition and when to use a Condition Action in FlexiRule. - [Setup Troubleshooting](https://sendipad.github.io/flexirule-docs/setup/troubleshooting/) — Resolving issues during installation and configuration. - [Terminology Migration](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/terminology/) — This guide maps legacy FlexiRule terms to the new standardized terminology used in the documentation and future releases. - [Trigger System](https://sendipad.github.io/flexirule-docs/advanced-concepts/triggers/engine-details/) — The FlexiRule Trigger System determines when a rule should begin its execution. It is managed by the `RuleCoordinator`, which acts as a high-perfor... - [Smart Value System](https://sendipad.github.io/flexirule-docs/rule-builder/smart-value-system/) — Learn how FlexiRule handles inputs using static values, variables, and resolvers. - [Assignment](https://sendipad.github.io/flexirule-docs/action-type/assignment/) — Perform sequential batch state mutations on document fields and context variables. - [Condition Builder](https://sendipad.github.io/flexirule-docs/rule-builder/condition-builder/) — Learn how to create logical branches in your rules. - [Count](https://sendipad.github.io/flexirule-docs/action-type/query-records/count/) — Determine the total number of records matching your criteria. - [Dynamic Forms](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/ui/dynamic-forms/) — FlexiRule uses a **Schema-Driven Rendering** approach. The frontend does not "know" what an action's configuration looks like; it asks the backend ... - [Event Triggers](https://sendipad.github.io/flexirule-docs/advanced-concepts/triggers/event-triggers/) — Event triggers react directly to state changes within the Frappe DocType lifecycle. - [Loop: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/loop/) — Internal implementation details and developer reference for the Loop action. - [Loop: Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/loop/) — Technical runtime behavior and engine guarantees for the Loop action. - [Orchestration](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/engine/orchestration/) — FlexiRule is more than a simple automation engine; it is a **Visual Orchestration Layer** that allows for the coordination of complex business proc... - [Platform Potential](https://sendipad.github.io/flexirule-docs/advanced-concepts/roadmap/platform-potential/) — The FlexiRule architecture is a **foundation for an enterprise orchestration platform**. It contains all the necessary primitives to evolve into a ... - [System Philosophy](https://sendipad.github.io/flexirule-docs/advanced-concepts/system-philosophy/) — FlexiRule is a **declarative automation orchestration platform** built for the Frappe ecosystem. It bridges the gap between hardcoded Python hooks ... - [Why is FlexiRule better than hard-coded customizations?](https://sendipad.github.io/flexirule-docs/introduction/better-than-hard-coded/) — A separation-of-concerns approach showing how FlexiRule complements custom development by isolating business policies from application code. - [Action Settings](https://sendipad.github.io/flexirule-docs/rule-builder/action-settings/) — Learn how to configure individual blocks in your rule. - [Frontend Technical](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/ui/overview/) — The FlexiRule frontend is a Vue 3 application that synchronizes complex graph logic with Frappe's relational data model. - [How does FlexiRule achieve high performance?](https://sendipad.github.io/flexirule-docs/introduction/performance/) — An in-depth look at the architectural decisions that ensure FlexiRule remains fast and scalable in production environments. - [Notify: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/notify/) — Internal implementation details and developer reference for the Notify action. - [Notify: Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/notify/) — Technical runtime behavior and engine guarantees for the Notify action. - [Repeat (Loop)](https://sendipad.github.io/flexirule-docs/action-type/loop/) — Iterate over a list of items and execute a sequence of actions for each. - [Runtime Optimization](https://sendipad.github.io/flexirule-docs/advanced-concepts/roadmap/runtime-optimization/) — As FlexiRule deployments grow to thousands of rules and millions of executions, performance becomes the primary architectural challenge. - [Scheduler Triggers](https://sendipad.github.io/flexirule-docs/advanced-concepts/triggers/scheduler-triggers/) — Scheduler triggers are used for background automation and periodic tasks that are not tied to a specific user action or document event. - [Sum](https://sendipad.github.io/flexirule-docs/action-type/query-records/sum/) — Calculate the total of a numeric field across multiple records. - [Average](https://sendipad.github.io/flexirule-docs/action-type/query-records/average/) — Calculate the mean value of a numeric field. - [Core Concepts](https://sendipad.github.io/flexirule-docs/introduction/core-concepts/) — The fundamental building blocks of the FlexiRule ecosystem. - [Query Records Architecture](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/query-records/) — Internal implementation details of the Query Records action handler. - [Query Records Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/query-records/) — Detailed runtime behavior, filter resolution, and permission guarantees for Query Records. - [Rule Lifecycle](https://sendipad.github.io/flexirule-docs/rule-builder/rule-lifecycle/) — Learn how to manage rules from creation to activation and update. - [Switch](https://sendipad.github.io/flexirule-docs/action-type/switch/) — Route execution down different paths based on a specific value. - [Debugging & Execution Logs](https://sendipad.github.io/flexirule-docs/rule-builder/debugging/) — Learn how to test your rules and understand why they run. - [High-level Architecture](https://sendipad.github.io/flexirule-docs/introduction/architecture/) — A deep dive into the subsystems and architectural philosophy powering FlexiRule. - [Min / Max](https://sendipad.github.io/flexirule-docs/action-type/query-records/min-max/) — Retrieve the smallest or largest value from a group of records. - [Stop: Architecture Reference](https://sendipad.github.io/flexirule-docs/advanced-concepts/architecture/actions/stop/) — Internal implementation details and developer reference for the Stop action. - [Stop: Execution Semantics](https://sendipad.github.io/flexirule-docs/advanced-concepts/reference/execution/stop/) — Technical runtime behavior and engine guarantees for the Stop action. - [Wait](https://sendipad.github.io/flexirule-docs/action-type/wait/) — Pause rule execution for a specified duration or until a date. - [Group By](https://sendipad.github.io/flexirule-docs/action-type/query-records/group-by/) — Summarize and categorize data into grouped results. - [Key Capabilities](https://sendipad.github.io/flexirule-docs/introduction/key-capabilities/) — A summary of the major features and functional highlights of FlexiRule. - [Sub-rule](https://sendipad.github.io/flexirule-docs/action-type/sub-rule/) — Run another rule from within your current flow. - [Stop and Error Handling](https://sendipad.github.io/flexirule-docs/action-type/stop-error/) — Terminate rule execution silently or raise validation errors to the user. - [Advanced Process](https://sendipad.github.io/flexirule-docs/action-type/process/) — Execute complex, reusable business logic operations.