Get Started
Most business apps eventually grow a “workflow problem”.
Approvals start simple, then you add roles. Then exceptions. Then “send it back to draft”. Then audits. Then a second department shows up. Suddenly your codebase is a museum of if/else branches and half-manual procedures.
Workflow Engine lets you describe these flows as a Scheme (a blueprint), and run them as process instances ( real executions with state and history). You keep your domain logic — the engine keeps your process logic predictable.
A Scheme is the blueprint
A Workflow Scheme describes what your business process looks like:
- Activities — the states of your process (e.g., Draft → Review → Approved).
- Transitions — allowed moves between Activities, with triggers and conditions.
- Commands — what users/APIs trigger to move a process (e.g., Approve, Reject).
- Actions — your custom code (call an API, write to ERP/CRM, send email, etc.).
- Rules / Actors / Restrictions — who is allowed to run which Commands.
- Process Parameters — data that affects branching, conditions, loops, and decisions.
Think of the Scheme as a map plus traffic rules. The engine enforces them so you don’t have to.

A process instance is a living execution
A process instance is one run of your Scheme for one business entity (one document, one request, one ticket).
A typical flow in an app looks like this:
- CreateInstance — start a process for your entity.
- Execution — the process moves through the defined steps until it needs a command execution.
- GetAvailableCommands — ask the engine what actions this user/API can do right now.
- ExecuteCommand — run the chosen command and move the process forward.
Your app stays clean: the engine validates permissions and transition conditions, executes your actions, enforces thread-safe state state storage, and handles the rest of the workflow mechanics consistently.
Designing a workflow
You can author a Scheme in code or XML, but the most approachable option is the embedded visual editor: Workflow Designer.
- It’s a vanillaJS UI component, so you can embed it almost anywhere.
- If you live in frameworks, there are examples for React and Angular.
- Or use it as part of the ready-made admin panel in Workflow Server.
Once you have a Scheme, you can store it, version it, and reuse it across many processes.

Scheme changes happen
Workflows evolve. Policies change. Teams change. Your Scheme will change too.
Workflow Engine supports scheme versioning so you can update a Scheme without panicking about already-running instances. Keep old instances stable, migrate when you’re ready, and move forward without breaking the world.
Choose your integration path
If you’re ready to try it hands-on, pick the approach that matches your product and team.
Option A — Embed in your ASP.NET Solution (recommended for most teams)
Choose this when you want maximum control and tight integration with your domain code.
- Engine runs as part of your service (or alongside it).
- Easy to connect to your auth model, user roles, and business data.
- Has extra features such as a ready-made HTTP API and hybrid multi-tenant setup.
- Best fit when you already ship ASP.NET services and want a clean, scalable solution.
→ Next: ASP.NET Web API Quickstart
Option B — Standalone Workflow Server (ready to run)
Choose this when you want something out of the box.
- A product built on top of Workflow Engine.
- Includes an admin UI and operational pieces you’d otherwise build yourself.
- Great for fast pilots, internal tooling, or teams without deep .NET customization needs.
→ Next: Workflow Server Overview
Option C — Framework-agnostic Library (advanced scenarios)
Choose this if ASP.NET is not your core stack, or you need a minimal engine footprint.
- Useful for legacy systems or atypical hosting.
- Some features may be limited compared to the Web API path.
→ Next: Framework-agnostic Setup
Technical specifications
Supported .NET versions
Below is a list of nuget packages and the .NET version with which the package is compatible. For .NET standard use Microsoft's compatibility table - https://dotnet.microsoft.com/en-us/platform/dotnet-standard#versions.
.NET compatibility table
| Nuget Framework | .NET Implementation | Version Support |
|---|---|---|
| netstandard2.0 | .NET and .NET Core | 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
| netstandard2.0 | .NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| netstandard2.1 | .NET and .NET Core | 3.0, 3.1, 5.0, 6.0, 7.0, 8.0 |
| 6.0 | .NET | 6.0, 7.0, 8.0 |
Workflow Engine packages
| Nuget | .NET version |
|---|---|
| WorkflowEngine.NETCore-Core | .NET Standard 2.0 |
| WorkflowEngine.NETCore-ProviderForMSSQL | .NET Standard 2.0 |
| WorkflowEngine.NETCore-ProviderForPostgreSQL | .NET Standard 2.0 |
| WorkflowEngine.NETCore-ProviderForMongoDB | .NET Standard 2.0 |
| WorkflowEngine.NETCore-ProviderForMySQL | .NET Standard 2.0 |
| WorkflowEngine.NETCore-FilesPlugin | .NET Standard 2.0 |
| WorkflowEngine.NETCore-NexmoPlugin | .NET Standard 2.0 |
| WorkflowEngine.NETCore-TwilioPlugin | .NET Standard 2.0 |
| WorkflowEngine.NETCore-TelegramPlugin | .NET Standard 2.0 |
| WorkflowEngine.NETCore-SlackPlugin | .NET Standard 2.0 |
| WorkflowEngine.NETCore-ActiveDirectoryPlugin | .NET Standard 2.0 |
| WorkflowEngine.NETCore-ProviderForOracle | .NET Standard 2.1 |
| WorkflowEngine.NETCore-ProviderForSQLite | .NET 6.0 |
Workflow Server packages
| Nuget | .NET version |
|---|---|
| WorkflowEngine.NET-Server | .NET 8.0 |
| OptimaJet.Logging | .NET Standard 2.0 |
Supported databases
Below is a list of supported databases and the providers required for them.
| Database | Provider |
|---|---|
| Microsoft SQL Server | WorkflowEngine.NETCore-ProviderForMSSQL |
| Azure SQL | WorkflowEngine.NETCore-ProviderForMSSQL |
| Azure SQL Managed Instance | WorkflowEngine.NETCore-ProviderForMSSQL |
| PostgreSQL | WorkflowEngine.NETCore-ProviderForPostgreSQL |
| MongoDB | WorkflowEngine.NETCore-ProviderForMongoDB |
| Azure Cosmos DB | WorkflowEngine.NETCore-ProviderForMongoDB |
| MySQL | WorkflowEngine.NETCore-ProviderForMySQL |
| Oracle | WorkflowEngine.NETCore-ProviderForOracle |
| SQLite | WorkflowEngine.NETCore-ProviderForSQLite |
System requirements
- OS Windows/Linux/macOS.
- CPU 1 core 1 GHz.
- RAM 1 GB.
- HDD/SSD 5 GB.
- You can find the required version of .NET in table above.