This folder demonstrates various usage patterns of the @flowiseai/agentflow package.
-
First, build the agentflow package from the root:
cd packages/agentflow pnpm build -
Install dependencies for this example:
cd examples pnpm install -
Start the development server:
pnpm dev
-
Open http://localhost:5174 in your browser
The examples app uses environment variables for configuration. To set up:
-
Copy the
.env.examplefile to.env:cp .env.example .env
-
Edit
.envto configure your Flowise API server:# Flowise API Base URL VITE_INSTANCE_URL=http://localhost:3000 # API Key (required for authenticated endpoints) VITE_API_TOKEN=your-api-key-here
-
Get your API Key from Flowise:
- Open your Flowise instance (http://localhost:3000)
- Go to Settings → API Keys
- Click Create New Key
- Copy the generated key and paste it in
.env
⚠️ Important: Use an API Key, not a user authentication token (JWT). -
Restart the dev server to apply changes:
pnpm dev
Environment Variables:
| Variable | Required | Description |
|---|---|---|
VITE_INSTANCE_URL |
No | Flowise API server endpoint (default: http://localhost:3000) |
VITE_API_TOKEN |
Yes (authenticated) | Flowise API Key — get from Settings → API Keys |
VITE_FLOW_ID |
No | Agentflow ID to load on startup. When set, the canvas loads the saved flow from the database and enables Test Run and Run Status polling without saving first. Copy the ID from the Flowise URL: /agentflows/<id> |
Note: The .env file is gitignored and will not be committed to version control. Add your actual API key to .env, not .env.example.
Getting 401 Unauthorized errors?
Common causes:
-
Using wrong token type ❌
- Don't use: User authentication JWT tokens (long tokens starting with
eyJhbGc...) - Use: API Keys (shorter tokens like
9CnKuLRHbEY...)
- Don't use: User authentication JWT tokens (long tokens starting with
-
Token not loaded
- Restart dev server after editing
.env:pnpm dev
- Restart dev server after editing
-
Invalid API Key
- Regenerate key in Flowise: Settings → API Keys → Create New Key
- Copy the new key to
.env
-
CORS issues
- Ensure Flowise allows requests from
http://localhost:5174 - Check Flowise CORS configuration
- Ensure Flowise allows requests from
The app opens to the E2E (Live Instance) example when VITE_FLOW_ID is set, and falls back to Basic Usage otherwise.
Minimal canvas integration — no database calls:
- Rendering the canvas with a hardcoded
initialFlow - Tracking flow changes via
onFlowChange - Local-only save via
onSave - Imperative
fitView/clearvia ref
Full integration with a running Flowise instance. Requires VITE_FLOW_ID for the best experience:
- Loads the saved flow from the database on startup (
VITE_FLOW_ID) - Editable flow title synced to the database on save
- Save to DB — prompts to create a new chatflow when no ID is configured
- Delete chatflow from the database
- Test Run via
POST /api/v1/internal-predictionwith markdown-rendered response (disabled when flow has validation errors) - Run Status panel showing per-node execution results (manual refresh)
API Token permissions required: The
VITE_API_TOKENused for the E2E example must have Create, Update, and Delete permissions for Agentflows. A read-only key is not sufficient — save, rename, and delete operations will return 403.
| Example | File | Description |
|---|---|---|
| Multi-Node Flow | MultiNodeFlow.tsx |
Complete translation agent flow with multiple connected nodes showing gradient edges |
| Dark Mode | DarkModeExample.tsx |
Theme toggle demonstrating light/dark mode support |
| Status Indicators | StatusIndicatorsExample.tsx |
Node execution states (running, finished, error, stopped) with animated loader |
| Custom Node | CustomNodeExample.tsx |
Node with self-contained InputParam definitions and show/hide field visibility |
| Custom UI | CustomUIExample.tsx |
Custom header and node palette using render props |
| All Node Types | AllNodeTypesExample.tsx |
Visual catalog of all 15 available node types with colors and icons |
| Filtered Components | FilteredComponentsExample.tsx |
Restricting available nodes with preset configurations |
| Validation Actions | ValidationActionsExample.tsx |
Validation button, error display, and custom canvasActions alongside built-in controls |
| Feature | Demonstrated In |
|---|---|
Variable usage ({{variable}} syntax, picker) |
Custom Node |
| Async options (models, tools, credentials) | Basic Usage (with running API) |
| Flow execution status indicators | Status Indicators |
| Field visibility (show/hide conditions) | Custom Node |
| State management (dirty tracking, callbacks) | Basic Usage |
| Dark/light mode theming | Dark Mode |
| Custom header and palette via render props | Custom UI |
Restricting node types with components prop |
Filtered Components |
Validation actions and custom canvasActions |
Validation Actions |
Use the dropdown selector at the top of the page to switch between examples. All examples are lazy-loaded for better performance.
| Node Type | Color | Description |
|---|---|---|
startAgentflow |
#7EE787 | Entry point for the flow |
llmAgentflow |
#64B5F6 | Large Language Model node |
agentAgentflow |
#4DD0E1 | AI Agent with tools |
conditionAgentflow |
#FFB938 | Conditional branching |
conditionAgentAgentflow |
#ff8fab | Agent-based condition |
humanInputAgentflow |
#6E6EFD | Human approval required |
loopAgentflow |
#FFA07A | Loop iteration |
iterationAgentflow |
#9C89B8 | Iteration container |
directReplyAgentflow |
#4DDBBB | Send response to user |
customFunctionAgentflow |
#E4B7FF | Custom JavaScript function |
toolAgentflow |
#d4a373 | External tool integration |
retrieverAgentflow |
#b8bedd | Vector store retrieval |
httpAgentflow |
#FF7F7F | HTTP API request |
executeFlowAgentflow |
#a3b18a | Execute another flow |
stickyNoteAgentflow |
#fee440 | Documentation note |
The examples work best with a running Flowise instance at http://localhost:3000 for the node API. Without it:
- The canvas will render
- Initial flow data will display
- Node palette may be empty (nodes load from API)
For standalone testing, examples include mock flow data.