Business Processes
What is a Business Process?
A Business Process in FlowOn BPM is a structured, repeatable sequence of activities that an organization performs to achieve a specific business objective. It represents the complete flow of work from initiation to completion, capturing the rules, decisions, actions, and human interactions required at each step.
Think of a business process as a roadmap that guides work through your organization. Just as a roadmap shows the routes, intersections, and destinations for a journey, a business process defines the paths, decision points, and outcomes for accomplishing business goals.
The value of formally defining business processes extends beyond simple automation. Well-designed processes provide:
- Consistency: Every case is handled according to the same rules and standards
- Visibility: Stakeholders can see where work stands at any moment
- Accountability: Clear ownership at each stage ensures nothing falls through the cracks
- Compliance: Audit trails demonstrate that required steps were followed
- Optimization: Data on process performance enables continuous improvement
BPMN Foundation
FlowOn BPM is built on BPMN (Business Process Model and Notation) principles—the global standard for business process modeling. This means your processes are designed using universally understood concepts, making them easier to communicate across teams, departments, and even organizations.
In BPMN terms, a FlowOn BPM process is a Process Definition—a blueprint that describes:
| Dimension | What It Answers | Example |
|---|---|---|
| What | Which activities need to be performed? | Review application, Verify documents, Approve request |
| When | In what sequence and under what conditions? | Verify documents only after application is complete |
| Who | Who is responsible for each activity? | Assigned to Credit Analyst, Escalated to Manager |
| How | How are decisions made at branching points? | If credit score > 700, proceed to fast-track approval |
Process Definition vs. Process Instance
Understanding the distinction between definitions and instances is fundamental to working with FlowOn BPM.
A Process Definition is like a template or blueprint. It describes the structure of the process—what stages exist, how they connect, what rules govern transitions, and what automation runs at each point. You create a process definition once, and it can be used to create many process instances.
A Process Instance is a specific execution of that definition. When a customer submits an order, a new process instance is created from the Order Fulfillment process definition. That instance tracks the specific order through the process, maintaining its own state, data, and history.
| Concept | Description | Analogy |
|---|---|---|
| Process Definition | The template or blueprint that defines the structure, stages, rules, and behavior of a business process. Created once, used many times. | A recipe in a cookbook |
| Process Instance | A single, concrete execution of a process definition, tied to a specific record, transaction, or case. Each instance has its own state and data. | A dish being prepared using that recipe |
| Process State | The current position of an instance within the process flow, indicating which stage is active and what has been completed. | How far along you are in cooking the dish |
This separation provides significant benefits:
- You can update a process definition without affecting instances that are already in progress
- You can have hundreds or thousands of instances running simultaneously
- You can analyze aggregate data across all instances to understand process performance
Consider an Employee Onboarding process:
- The Process Definition describes all the steps: collect documents, set up IT accounts, assign equipment, schedule orientation, complete training.
- Each Process Instance represents a specific new hire going through onboarding—"Jane Doe hired on Jan 15" is one instance, "John Smith hired on Jan 20" is another.
- Each instance progresses independently through the stages at its own pace.
If HR decides to add a new stage to the onboarding process (perhaps a compliance training module), they update the process definition. New hires starting after the change will go through the new stage, but employees already partway through onboarding continue with the original process—no disruption, no confusion.
Integration with FlowOn Logic
FlowOn BPM is deeply integrated with FlowOn Logic, leveraging its declarative programming constructs throughout the process lifecycle. This integration enables citizen developers to build sophisticated business processes without writing code.
How BPM Uses Logic
| Integration Point | FlowOn Logic Feature | Purpose in BPM |
|---|---|---|
| On Entering | Logic Flows | Execute automation when entering a stage |
| On Exiting | Logic Flows | Execute automation when leaving a stage |
| Transition Guards | Logic Blocks (Decision Tables, Decision Trees) | Determine which path to follow |
| All Configurable Fields | Expression Builder | Dynamic values using expressions and functions |
| Variable Values | Configurations | Reference global settings (e.g., SLA durations) |
| Multi-Language Text | Localized Resources | Display text in user's language |
Logic Flows in Stage Automation
When a process enters or exits a stage, you can configure Logic Flows to execute:
| Use Case | Logic Flow Actions |
|---|---|
| Status Updates | Update record fields, set timestamps |
| Notifications | Send emails, create tasks, push notifications |
| External Integrations | Call APIs via Service Connections |
| Data Preparation | Query related records, prepare data for assignees |
| Audit Logging | Create audit trail entries |
Logic Blocks for Branching
Transition guards can use Logic Blocks to determine routing:
| Block Type | Use Case |
|---|---|
| Decision Table | Multiple input conditions → specific output path |
| Decision Tree | Sequential yes/no decisions to determine route |
| Validation | Check if conditions are met before proceeding |
Expression Builder
All configurable fields in FlowOn BPM use the Expression Builder, which provides access to FlowOn's expression language:
| Feature | Description | Example |
|---|---|---|
| Field References | Access entity fields | Application.LoanAmount |
| Functions | 85+ built-in functions | Format("Case {0}", CaseNumber) |
| Calculations | Mathematical operations | BaseAmount * (1 + TaxRate) |
| Date Functions | Date manipulation | AddDays(SubmitDate, 5) |
| Conditional Logic | If-then expressions | If(IsVIP, 1, 3) (days for SLA) |
| Logic Blocks | Execute blocks inline | RunLogicBlock("RiskScore", ...) |
| Configurations | Reference config values | Config("DefaultSLADays") |
| Localized Resources | Multi-language text | LocalizedResource("WelcomeMessage") |
Configurations for Dynamic Values
Configurations are particularly valuable in BPM for values that may change or vary by environment:
| Configuration Variable | Purpose | Example Value |
|---|---|---|
| StandardSLADays | Default SLA for standard requests | 3 |
| UrgentSLADays | SLA for urgent requests | 1 |
| HighValueThreshold | Amount requiring senior approval | $50,000 |
| MaxRetries | Retry attempts before escalation | 3 |
| EscalationHours | Hours before escalating overdue tasks | 24 |
Instead of hardcoding SLA durations:
❌ Hardcoded:
Due Date: AddDays(Now(), 3)
✅ Using Configuration:
Due Date: AddBusinessDays(Now(), Config("ReviewSLADays"))
Localized Resources in BPM
For multi-language support, use Localized Resources for any user-facing text:
| BPM Element | Localized Resource Usage |
|---|---|
| Task Names | LocalizedResource("TaskName_DocumentReview") |
| Instructions | LocalizedResource("Instructions_VerifyIdentity") |
| Email Content | Referenced in notification Logic Flows |
| Error Messages | LocalizedResource("Error_MissingDocument") |