Flow has two parts: Flow Engine (the backend, part of BizFirstAi platform) and Flow Studio (the visual designer, a React app). This guide walks you through setting up both and building your first workflow.
Flow Engine is part of the BizFirstAi backend. If you are running the full platform, it is already registered.
In your ASP.NET Core startup, register the Flow Engine service collection. This wires up the OrchestrationProcessor, NodeExecutor factory, NodeCapability registry, and all 60+ executor implementations.
Flow Engine requires six execution tables in your Data Ocean database. Apply the included migrations to create ProcessExecution, ProcessThreadExecution, ProcessElementExecution, ExecutionMemory, ApprovalRequest, and SuspendedExecution.
Flow Engine publishes execution events (NodeProgress, WorkflowProgress, ExecutionCompleted) over SignalR. Map the ProcessEngine hub in your app pipeline.
Flow Engine exposes a REST API. Confirm it is responding before starting Flow Studio.
Flow Studio is a Vite/React monorepo. It connects to Flow Engine via the 40 API clients and subscribes to SignalR for live execution updates.
Navigate to the flow-studio root and install packages. The monorepo uses pnpm workspaces.
Create a .env file in apps/studio/ pointing Flow Studio at your running Flow Engine backend.
Start Flow Studio on port 5173. The Vite dev server hot-reloads on changes across all monorepo packages.
Flow Studio uses Passport for authentication. Sign in with your BizFirstAi tenant credentials. Your auth token is stored in authStore and included in every API request.
A simple two-node workflow: a Manual Trigger connected to a Variable Assignment node.
In the Workflow Dashboard, navigate: Projects → New Project. Give it a name. Then open the project and click New Process. A Process contains one or more ProcessThreads (workflow instances).
Click into a ProcessThread to open Flow Studio's canvas. You will see the infinite canvas with a left-side node palette, top toolbar with Save/Undo/Redo, and mode selector (Design / Execution / Evaluation).
From the left palette under Triggers, drag Manual Trigger onto the canvas. This is a circle node — the entry point for your workflow. Every workflow needs exactly one trigger.
Drag Variable Assignment from the palette. Click the output handle on the trigger node and drag to the input handle of Variable Assignment. You will see an animated edge connecting them.
Double-click Variable Assignment to open NodePropertiesModal. Set a variable name (e.g. greeting) and value (e.g. Hello, World!). Click Save.
Click Save (Ctrl+S) to persist the workflow. Then switch to Execution Mode from the top toolbar. Click Run.
Flow Engine receives the request, starts a background execution, and streams progress back via SignalR. Watch both nodes highlight green as they complete. The execution panel on the right shows each node's status, output, and timing.
Switch to Evaluation Mode to see execution history. Click on any past run to replay it step by step. Review timing data, variable values at each stage, and any errors encountered.
Insert an Approval node between two steps. Configure approvers, choose a voting strategy (All / AnyOne / NofM), set a deadline, and test the human-in-the-loop suspension and resumption flow.
See approval example →Add an AI Agent node (Octopus executor). Configure it with an OpenAI or DeepSeek LLM, a prompt template, and a reasoning strategy. Route the workflow based on the AI's classification output.
See AI example →Extend BaseNodeExecutor in C#, override ExecuteInternalAsync, and register it with the NodeExecutor factory. Your custom node appears in Flow Studio's palette immediately after registration.
Read the architecture →Ask in the Flow community or book a setup session with the BizFirstAi team.