Flows

Flows in Langflow are fully serializable and can be saved and loaded from the file system.

Projects and folders

The My Projects page displays all the flows and components you’ve created in the Langflow workspace.

Projects, folders, and flows are exchanged as JSON objects.

To create a new folder, click folder New Folder.

To rename a folder, double-click the folder name.

To download a folder, click download.

To upload a folder, click upload. The default maximum file upload size is 100 MB.

To move a flow or component, drag and drop it onto the appropriate folder.

Import a flow

If you already have a Langflow JSON file, click the project name and choose Import Flow to import it into Langflow.

Clicking the flow menu and selecting Import Flow

Once imported, your flow is ready to use.

Export a flow

The option to export a flow is available in the same menu as Import Flow. Once your flow is exported as JSON, you can import it into another Langflow instance.

Langflow JSON file contents

Langflow JSON files contain nodes and edges that describe components and connections, and additional metadata that describe the flow.

For an example Langflow JSON file, examine the Basic Prompting.json file in the Langflow repository.

Nodes

Nodes represent the components that make up the flow.

The ChatInput node is the entry point of the flow. It’s the first node to be executed.

ChatInput-jFwUm is a unique identifier for the node.

{
  "data": {
    "description": "Get chat inputs from the Playground.",
    "display_name": "Chat Input",
    "id": "ChatInput-jFwUm",
    "node": {
      "base_classes": ["Message"],
      "description": "Get chat inputs from the Playground.",
      "display_name": "Chat Input",
      "icon": "MessagesSquare",
      "template": {
        "input_value": {
          "display_name": "Text",
          "info": "Message to be passed as input.",
          "value": "Hello"
        },
        "sender": {
          "value": "User",
          "options": ["Machine", "User"]
        },
        "sender_name": {
          "value": "User"
        },
        "should_store_message": {
          "value": true
        }
      }
    },
    "type": "ChatInput"
  },
  "position": {
    "x": 689.5720422421635,
    "y": 765.155834131403
  }
}

Edges

Edges represent the connections between nodes.

The connection between the ChatInput node and the OpenAIModel node is represented as an edge:

{
  "className": "",
  "data": {
    "sourceHandle": {
      "dataType": "ChatInput",
      "id": "ChatInput-jFwUm",
      "name": "message",
      "output_types": ["Message"]
    },
    "targetHandle": {
      "fieldName": "input_value",
      "id": "OpenAIModel-OcXkl",
      "inputTypes": ["Message"],
      "type": "str"
    }
  },
  "id": "reactflow__edge-ChatInput-jFwUm{œdataTypeœ:œChatInputœ,œidœ:œChatInput-jFwUmœ,œnameœ:œmessageœ,œoutput_typesœ:[œMessageœ]}-OpenAIModel-OcXkl{œfieldNameœ:œinput_valueœ,œidœ:œOpenAIModel-OcXklœ,œinputTypesœ:[œMessageœ],œtypeœ:œstrœ}",
  "source": "ChatInput-jFwUm",
  "sourceHandle": "{œdataTypeœ: œChatInputœ, œidœ: œChatInput-jFwUmœ, œnameœ: œmessageœ, œoutput_typesœ: [œMessageœ]}",
  "target": "OpenAIModel-OcXkl",
  "targetHandle": "{œfieldNameœ: œinput_valueœ, œidœ: œOpenAIModel-OcXklœ, œinputTypesœ: [œMessageœ], œtypeœ: œstrœ}"
}

This edge shows that the ChatInput component outputs a Message type to the target node, which is the OpenAIModel node. The OpenAIModel component accepts the Message type at the input_value field.

Additional metadata and project information

Additional information about the flow is stored in the root data object.

  • Metadata and project information including the name, description, and last_tested_version of the flow.

{
  "name": "Basic Prompting",
  "description": "Perform basic prompting with an OpenAI model.",
  "tags": ["chatbots"],
  "id": "1511c230-d446-43a7-bfc3-539e69ce05b8",
  "last_tested_version": "1.0.19.post2",
  "gradient": "2",
  "icon": "Braces"
}
  • Visual information about the flow defining the initial position of the flow in the workspace.

"viewport": {
  "x": -37.61270157375441,
  "y": -155.91266341888854,
  "zoom": 0.7575251406952855
}

Notes are like comments to help you understand the flow within the workspace. They may contain links, code snippets, and other information. Notes are written in Markdown and stored as node objects.

{
  "id": "undefined-kVLkG",
  "node": {
    "description": "## 📖 README\nPerform basic prompting with an OpenAI model.\n\n#### Quick Start\n- Add your **OpenAI API key** to the **OpenAI Model**\n- Open the **Playground** to chat with your bot.\n..."
  }
}

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2025 DataStax | Privacy policy | Terms of use | Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com