| name | flowise-designer |
| description | Generate, design, and export valid Flowise Chatflow and AgentFlow JSON files ready to import into Flowise. Use this skill whenever the user wants to: build a Flowise flow, create a chatflow, create an agentflow, design an AI workflow in Flowise, generate Flowise JSON, build a RAG pipeline in Flowise, create a Flowise tool agent, connect LLMs/memory/vector stores/tools in Flowise, or export a flow to import into Flowise. Trigger even if the user says things like "make me a Flowise bot that does X", "I want a RAG flow in Flowise", "build me an agent in Flowise", or "generate Flowise JSON for Y". |
Flowise Flow Generator
Generate production-ready Flowise Chatflow and AgentFlow V2 JSON files that can be imported directly into Flowise via Import Chatflow or the API (POST /api/v1/chatflows).
Quick Decision: Chatflow vs AgentFlow V2?
| Use Chatflow whenโฆ | Use AgentFlow V2 whenโฆ |
|---|
| Simple LLM chain or RAG pipeline | Multi-step orchestration with branching |
| Single agent with tools | Human-in-the-loop / approval steps |
| Conversational memory + retrieval | Parallel paths / conditional logic |
| Standard LangChain pattern | Stateful flows using $flow.state |
| User doesn't specify | User says "agent flow", "multi-step", "branching" |
If the user doesn't specify, default to Chatflow for simple use cases and AgentFlow V2 for anything with branching, conditions, or multi-step orchestration.
Step 1 โ Understand the Request
Gather (ask if not provided):
- Goal: What should the flow do?
- LLM: Which model? (OpenAI, Anthropic, Ollama, Groq, etc.)
- Components needed: Memory? Vector store? Tools? Document loaders?
- Flow type: Chatflow or AgentFlow V2?
- Credentials: Which API keys will be needed (note them but leave
credential: "")
Step 2 โ Design the Architecture
Before writing JSON, sketch the node graph mentally:
- Identify all nodes needed (LLM, chain/agent, memory, tools, retriever, embeddings, etc.)
- Identify connections between nodes (which output plugs into which input)
- Verify type compatibility โ source
baseClasses must intersect target anchor type
- Assign node IDs following pattern
{nodeName}_{index} (e.g. chatOpenAI_0, pinecone_0)
- Plan layout positions โ space nodes ~400px apart horizontally, arrange left-to-right by data flow
Step 3 โ Generate the JSON
Top-Level Structure (always this shape)
{
"nodes": [ ],
"edges": [ ],
"viewport": { "x": 0, "y": 0, "zoom": 0.75 }
}
Node Object Template
{
"id": "{nodeName}_{index}",
"position": { "x": 0, "y": 0 },
"type": "customNode",
"data": {
"id": "{nodeName}_{index}",
"label": "Human Readable Label",
"version": 1,
"name": "{nodeName}",
"type": "{ComponentType}",
"baseClasses": ["{ComponentType}", "...parent classes..."],
"category": "{Category}",
"description": "What this node does",
"inputParams": [ ],
"inputAnchors": [ ],
"inputs": { },
"outputAnchors": [ ],
"outputs": {},
"credential": "",
"selected": false
},
"width": 300,
"height": 500,
"selected": false,
"positionAbsolute": { "x": 0, "y": 0 },
"dragging": false
}
Key rules:
data.id must equal the node's id
type is "customNode" for Chatflow; "agentFlow" for AgentFlow V2
position and positionAbsolute must be identical
- Anchor references in
inputs use: "{{otherNodeId.data.instance}}"
- Leave
credential: "" โ user connects credentials in the UI
Edge Object Template โ Chatflow
{
"source": "{sourceNodeId}",
"sourceHandle": "{sourceNodeId}-output-{outputName}-{Type1|Type2|Type3}",
"target": "{targetNodeId}",
"targetHandle": "{targetNodeId}-input-{inputName}-{AcceptedType}",
"type": "buttonedge",
"id": "{sourceNodeId}-{sourceHandle}-{targetNodeId}-{targetHandle}"
}
Critical rules (Chatflow only):
type MUST be "buttonedge" (not "default", not "smoothstep")
sourceHandle format: {nodeId}-output-{name}-{BaseClass1|BaseClass2|...}
targetHandle format: {nodeId}-input-{name}-{AcceptedBaseClass}
id = concatenation of {source}-{sourceHandle}-{target}-{targetHandle}
- Connection is valid only if source
baseClasses โฉ target anchor type is non-empty
Edge Object Template โ AgentFlow V2
{
"source": "{sourceNodeId}",
"sourceHandle": "{sourceNodeId}-output-{outputName}",
"target": "{targetNodeId}",
"targetHandle": "{targetNodeId}",
"data": { "sourceColor": "{hexColor}", "targetColor": "{hexColor}", "isHumanInput": false },
"type": "agentFlow",
"id": "{sourceNodeId}-{sourceHandle}-{targetNodeId}-{targetHandle}"
}
Critical rules (AgentFlow V2 only):
type MUST be "agentFlow" โ NOT "buttonedge"
sourceHandle format: {nodeId}-output-{outputName} โ no type classes appended
targetHandle format: just the target node ID โ no -input- path
data object is required: set sourceColor/targetColor to node hex colors (see references/schema.md Section 8 table); set isHumanInput: true only for edges from a HumanInput node
id = concatenation of {source}-{sourceHandle}-{target}-{targetHandle}
Step 4 โ Output & Delivery
- Generate the complete, valid JSON
- Save it as
{flow-name}.json using create_file to /mnt/user-data/outputs/
- Present the file with
present_files
- Tell the user: Flowise โ Add New โ Import Chatflow โ select the file (or drag-and-drop)
- Remind them to connect their credentials in the node settings after import
Reference Files
Read these when you need detailed schema information:
references/schema.md โ Full node data schema, all inputParam types, anchor id formats, AgentFlow V2 differences, common gotchas
references/nodes.md โ Ready-to-use node templates for every major category: Chat Models, LLMs, Chains, Agents, Tools, Vector Stores, Memory, Embeddings, Document Loaders, Text Splitters, Output Parsers, AgentFlow V2 nodes
When to read them:
references/schema.md โ when you need to verify field formats, param types, or AgentFlow V2 specifics
references/nodes.md โ always โ copy node templates from here rather than generating from memory. Node schemas must be exact.
Common Patterns (Quick Reference)
Pattern A: Simple Conversational RAG
ChatModel โ ConversationalRetrievalQAChain โ VectorStoreRetriever โ [Embeddings + VectorStore โ DocumentLoader โ TextSplitter]
Pattern B: Tool Agent
ChatModel โ ToolAgent โ [Tool1, Tool2, ...] โ Memory (optional)
Pattern C: AgentFlow V2 Linear
Start โ LLM โ DirectReply
Pattern D: AgentFlow V2 with Condition
Start โ Agent โ Condition โ [Path A: DirectReply] / [Path B: HumanInput โ Agent โ DirectReply]
Validation Checklist
Before outputting the final JSON, verify: