Get Started with Flow

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.

Prerequisites

Runtime
.NET 6 or later (for Flow Engine)
Node.js
Node 18+ and npm / pnpm (for Flow Studio)
Database
SQL Server or PostgreSQL (Data Ocean)
BizFirstAi Platform
Core platform running with Passport auth
SignalR
Edge Stream configured for real-time events
Access
BizFirstAi tenant account with workflow permissions

Set up Flow Engine

Flow Engine is part of the BizFirstAi backend. If you are running the full platform, it is already registered.

1
Register ProcessEngine services

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.

// Program.cs or Startup.cs builder.Services.AddFlowEngine(options => { options.TenantId = builder.Configuration["BizFirst:TenantId"]; options.EnableSignalR = true; options.EnableApprovals = true; });
2
Run database migrations

Flow Engine requires six execution tables in your Data Ocean database. Apply the included migrations to create ProcessExecution, ProcessThreadExecution, ProcessElementExecution, ExecutionMemory, ApprovalRequest, and SuspendedExecution.

dotnet ef database update --project BizFirst.Ai.ProcessEngine.Domain
3
Configure SignalR hub

Flow Engine publishes execution events (NodeProgress, WorkflowProgress, ExecutionCompleted) over SignalR. Map the ProcessEngine hub in your app pipeline.

app.MapHub<ProcessEngineHub>("/hubs/process-engine");
Edge Stream handles SignalR message routing. Ensure Edge Stream is running and the hub endpoint is reachable from Flow Studio's development server (port 5173 by default).
4
Verify the API endpoint

Flow Engine exposes a REST API. Confirm it is responding before starting Flow Studio.

POST /api/v1/process-engine/execute GET /api/v1/process-engine/status/{executionId} POST /api/v1/process-engine/pause/{executionId} POST /api/v1/process-engine/resume/{executionId} POST /api/v1/process-engine/cancel/{executionId}

Set up 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.

5
Install dependencies

Navigate to the flow-studio root and install packages. The monorepo uses pnpm workspaces.

cd BizFirstAiStudio/src/flow-studio pnpm install
6
Configure the API base URL

Create a .env file in apps/studio/ pointing Flow Studio at your running Flow Engine backend.

VITE_API_BASE_URL=https://your-bizfirstai-backend.com VITE_SIGNALR_HUB_URL=https://your-bizfirstai-backend.com/hubs/process-engine VITE_TENANT_ID=your-tenant-id
7
Start the development server

Start Flow Studio on port 5173. The Vite dev server hot-reloads on changes across all monorepo packages.

pnpm --filter studio dev # Opens at http://localhost:5173
8
Sign in with Passport

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.

Your account needs the WorkflowDesigner role to create workflows and the WorkflowExecutor role to run them. Contact your BizFirstAi admin if you see permission errors.

Build your first workflow

A simple two-node workflow: a Manual Trigger connected to a Variable Assignment node.

9
Create a Project and Process

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).

10
Open the Canvas in Design Mode

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).

11
Add a Manual Trigger node

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.

12
Add a Variable Assignment node and connect

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.

13
Save and switch to Execution Mode

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.

You just ran your first Flow workflow. The execution moved through states: Queued → Running → Completed, with every node's result persisted in ProcessElementExecution.
14
Explore Evaluation Mode

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.

What to explore next

Add an Approval node

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 →

Connect an AI Agent

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 →

Write a custom node executor

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 →

Need help getting set up?

Ask in the Flow community or book a setup session with the BizFirstAi team.