Skip to main content

What are Chatflows?

Chatflows are the foundation of Flowise, designed for building single-agent systems, chatbots, and simple LLM flows. They provide a visual, drag-and-drop interface to create AI workflows without writing code. Each chatflow represents a complete AI conversation flow, from input processing to response generation. They are stored as JSON objects containing nodes (components) and edges (connections) that define how data flows through your system.
Chatflows are ideal for straightforward use cases like customer support bots, Q&A systems, and document retrieval applications.

Why Chatflows Matter

Chatflows democratize AI application development by:
  • Visual Development: Build complex AI systems through an intuitive drag-and-drop canvas
  • Reusability: Save and deploy multiple chatflows for different use cases
  • Iteration Speed: Quickly test and modify workflows without code changes
  • Production Ready: Deploy chatflows with API endpoints for integration

Core Structure

A chatflow consists of:

FlowData Schema

Every chatflow is stored with the following structure:
{
  id: string              // Unique identifier (UUID)
  name: string            // Display name
  flowData: string        // JSON string containing nodes and edges
  deployed: boolean       // Deployment status
  isPublic: boolean       // Public accessibility
  type: 'CHATFLOW'        // Type identifier
  category: string        // Organization category
  chatbotConfig: string   // UI configuration
  apiConfig: string       // API settings
  workspaceId: string     // Workspace association
  createdDate: Date
  updatedDate: Date
}
The flowData field contains a stringified JSON with all nodes, edges, and their configurations. This is what the canvas editor modifies when you build your flow.

Creating a Chatflow

From the UI

  1. Navigate to the Chatflows page
  2. Click Add New to open the canvas editor
  3. Drag nodes from the sidebar onto the canvas
  4. Connect nodes by dragging from output handles to input handles
  5. Configure each node’s parameters
  6. Save your chatflow

Example: Simple RAG Chatflow

Here’s how a typical Retrieval-Augmented Generation (RAG) chatflow is structured: Node Configuration Example:
{
  "nodes": [
    {
      "id": "chatOpenAI_0",
      "data": {
        "name": "chatOpenAI",
        "label": "ChatOpenAI",
        "version": 3,
        "inputParams": [
          {
            "name": "temperature",
            "value": 0.7
          },
          {
            "name": "modelName",
            "value": "gpt-3.5-turbo"
          }
        ],
        "inputAnchors": [],
        "outputAnchors": [
          {
            "name": "output",
            "label": "ChatOpenAI",
            "type": "ChatOpenAI"
          }
        ]
      }
    }
  ],
  "edges": [
    {
      "source": "chatOpenAI_0",
      "target": "conversationalRetrievalQAChain_0",
      "sourceHandle": "chatOpenAI_0-output-chatOpenAI-ChatOpenAI",
      "targetHandle": "conversationalRetrievalQAChain_0-input-model-BaseChatModel"
    }
  ]
}

Deployment & API Access

Once created, chatflows can be deployed to generate API endpoints:
# Send a message to your chatflow
curl -X POST http://localhost:3000/api/v1/prediction/{chatflowId} \
  -H "Content-Type: application/json" \
  -d '{
    "question": "What is Flowise?"
  }'
Use the API Code dialog in the chatflow UI to get ready-to-use code snippets in multiple programming languages.

Chatflow Features

1. Card & List Views

The Chatflows page supports two view modes:
  • Card View: Visual grid displaying chatflow previews with node icons
  • List View: Table format showing names, dates, and actions

2. Search & Filtering

Quickly find chatflows by:
  • Name
  • Category
  • ID

3. Embedding & Sharing

Chatflows can be:
  • Embedded as widgets on websites
  • Shared via public URLs
  • Integrated through REST APIs

4. Configuration Options

  • Chatbot Config: Customize UI appearance (colors, avatars, welcome messages)
  • Speech-to-Text: Enable voice input
  • Text-to-Speech: Enable voice output
  • Follow-up Prompts: Configure suggested questions
  • Analytics: Track usage and performance

Working with Chatflows

Updating a Chatflow

Chatflows track their modification state:
// The canvas checks for changes before saving
GET /api/v1/chatflows/has-changed/:id/:lastUpdatedDateTime
This prevents overwriting changes made by other users or in different browser tabs.

Versioning Best Practice

While Flowise doesn’t have built-in version control, you can:
  1. Export your chatflow JSON regularly
  2. Use descriptive names with version numbers (e.g., “Support Bot v2”)
  3. Duplicate chatflows before making major changes

Common Chatflow Patterns

Pattern 1: Q&A Over Documents

Document Loader → Text Splitter → Embeddings → Vector Store → QA Chain → Output

Pattern 2: Conversational Agent

Chat Memory → LLM → Agent Executor → Tools → Output

Pattern 3: Multi-Document Retrieval

Multiple Loaders → Text Splitters → Single Vector Store → Retrieval Chain → Output

Troubleshooting

Chatflow Not Loading

  1. Check that all nodes have valid configurations
  2. Verify credentials are properly set
  3. Ensure all required input parameters are filled
  4. Check browser console for errors

Deployment Issues

  • Verify the chatflow is marked as deployed: true
  • Check API key permissions
  • Ensure all node versions are compatible
Node version mismatches can cause runtime errors. The canvas displays warning icons for outdated nodes.

API Reference

List All Chatflows

GET /api/v1/chatflows?type=CHATFLOW&page=1&limit=10

Get Specific Chatflow

GET /api/v1/chatflows/:id

Create Chatflow

POST /api/v1/chatflows
Content-Type: application/json

{
  "name": "My Chatflow",
  "flowData": "{...}",
  "type": "CHATFLOW"
}

Update Chatflow

PUT /api/v1/chatflows/:id

Delete Chatflow

DELETE /api/v1/chatflows/:id

Build docs developers (and LLMs) love