From bd51d4253b08d940f3c9208f8354dc36129688a1 Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Thu, 6 Nov 2025 10:34:58 -0500
Subject: [PATCH 1/3] add-dynamic-create-data-component-and-release-note
---
.../docs/Components/components-processing.mdx | 46 ++++++++++++++++++-
docs/docs/Support/release-notes.mdx | 2 +
2 files changed, 46 insertions(+), 2 deletions(-)
diff --git a/docs/docs/Components/components-processing.mdx b/docs/docs/Components/components-processing.mdx
index f3a9cf53dc9c..06ce515a5472 100644
--- a/docs/docs/Components/components-processing.mdx
+++ b/docs/docs/Components/components-processing.mdx
@@ -15,6 +15,7 @@ They have many uses, including:
* Feed instructions and context to your LLMs and agents with the [**Prompt Template** component](#prompt-template).
* Extract content from larger chunks of data with a [**Parser** component](#parser).
* Filter data with natural language with the [**Smart Transform** component](#smart-transform).
+* Create structured data dynamically with the [**Dynamic Create Data** component](#dynamic-create-data).
* Perform advanced JSON queries with the [**Data Operations** component](#data-operations) using `jq` expressions.
* Save data to your local machine with the [**Write File** component](#save-file).
* Transform data into a different data type with the [**Type Convert** component](#type-convert) to pass it between incompatible components.
@@ -212,7 +213,7 @@ Use the Path Selection operation to extract values from nested JSON structures w
3. In the **Select Paths** dropdown, select the path.
You can select paths such as `.user.profile.name` to extract "John Doe", or select `.user.settings.theme` to extract "dark".
-### JQ Expression operation example
+### JQ Expression operation example {#jq-expression-operation-examples}
Use the **JQ Expressions** operation to use the [jq](https://jqlang.org/) query language to perform more advanced JSON filtering.
1. In the **Operations** dropdown, select **JQ Expression**.
@@ -417,6 +418,47 @@ The output is a `DataFrame` containing all columns from the original `DataFrame`
+## Dynamic Create Data
+
+The **Dynamic Create Data** component creates a [`Data`](/data-types#data) object with configurable fields.
+Define the table in the **Input Configuration** field, and the component creates corresponding input or output handles in the component.
+
+### Use the Dynamic Create Data component in a flow
+
+The following example demonstrates how to use a **Dynamic Create Data** component to create a structured `Data` object from multiple sources.
+
+1. Add the **Dynamic Create Data** component to your flow.
+
+2. To define your data's fields, in the **Input Configuration** field, click **Open table**.
+
+3. To add rows to your table, click **Add a new row**.
+ Adding a new row creates input and output handles for the **Field Type**.
+ For example, if you add a field of type `Text`, `Text` input and output handles are added to the component.
+ For each new row, configure the **Field Name** and **Field Type**.
+
+ * **Field Name**: The name of the field used as both the internal key and display label.
+ * **Field Type**: The type of input field to create. The type options are:
+ * Text: Accepts `text` input or connects to `Text` or `Message` outputs.
+ * Data: Accepts `Data` input from other components.
+ * Number: Accepts numeric input or connects to `Text` or `Message` outputs.
+ * Handle: Creates a component input handle that accepts `Text`, `Data`, or `Message` outputs.
+ * Boolean: Accepts boolean values. The boolean field type creates no component handles.
+
+ For more information, see [Langflow data types](/data-types).
+4. After adding rows to the table, the component automatically creates corresponding input ports for each field.
+ You can now connect outputs from other components to the dynamic input ports, or enter values manually in the component's input fields.
+
+### Dynamic Create Data parameters
+
+
+
+| Name | Display Name | Info |
+|------|--------------|------|
+| `form_fields` | **Input Configuration** | Input parameter. A table that defines the dynamic form fields. |
+| `include_metadata` | **Include Metadata** | Input parameter. Whether to include form configuration metadata in the output.|
+| `form_data` | **Data** | Output parameter. A `Data` object containing all field values from the dynamic inputs. |
+| `message` | **Message** | Output parameter. A formatted `Text` message containing all field values in a human-readable format. |
+
## LLM Router
The **LLM Router** component routes requests to the most appropriate LLM based on [OpenRouter](https://openrouter.ai/docs/quickstart) model specifications.
@@ -1118,7 +1160,7 @@ This component concatenates two text inputs into a single text chunk using a spe
Create Data
-Replace this legacy component with the [**Data Operations** component](#data-operations).
+Replace this legacy component with the [**Dynamic Create Data** component](#dynamic-create-data).
This component dynamically creates a `Data` object with a specified number of fields and a text key.
diff --git a/docs/docs/Support/release-notes.mdx b/docs/docs/Support/release-notes.mdx
index 301b7d652b88..c3ef0ccf340b 100644
--- a/docs/docs/Support/release-notes.mdx
+++ b/docs/docs/Support/release-notes.mdx
@@ -81,6 +81,8 @@ For all changes, see the [Changelog](https://github.com/langflow-ai/langflow/rel
New [**Mock Data** component](/components-data#mock-data)
+ New [**Dynamic Create Data** component](/components-processing#dynamic-create-data)
+
New [**CometAPI** bundle](/bundles-cometapi)
New [**Docling Remote VLM** component](/bundles-docling#docling-remote-vlm)
From 2d8d3154f01c6e9ce522acd390ae3478a5fae1ab Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Mon, 10 Nov 2025 17:56:37 -0500
Subject: [PATCH 2/3] Apply suggestions from code review
Co-authored-by: April I. Murphy <36110273+aimurphy@users.noreply.github.com>
---
docs/docs/Components/components-processing.mdx | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/docs/docs/Components/components-processing.mdx b/docs/docs/Components/components-processing.mdx
index 06ce515a5472..7824bee4f294 100644
--- a/docs/docs/Components/components-processing.mdx
+++ b/docs/docs/Components/components-processing.mdx
@@ -433,20 +433,19 @@ The following example demonstrates how to use a **Dynamic Create Data** componen
3. To add rows to your table, click **Add a new row**.
Adding a new row creates input and output handles for the **Field Type**.
- For example, if you add a field of type `Text`, `Text` input and output handles are added to the component.
+ For example, if you add a `Text` type field, then`Text` input and output handles are added to the component.
For each new row, configure the **Field Name** and **Field Type**.
* **Field Name**: The name of the field used as both the internal key and display label.
* **Field Type**: The type of input field to create. The type options are:
- * Text: Accepts `text` input or connects to `Text` or `Message` outputs.
+ * Text: Accepts direct text input or accepts `Text` or `Message` output from other components.
* Data: Accepts `Data` input from other components.
- * Number: Accepts numeric input or connects to `Text` or `Message` outputs.
- * Handle: Creates a component input handle that accepts `Text`, `Data`, or `Message` outputs.
- * Boolean: Accepts boolean values. The boolean field type creates no component handles.
+ * Number: Accepts direct numeric input or accepts `Text` or `Message` outputs from other components.
+ * Handle: Accepts `Text`, `Data`, or `Message` output from other components.
+ * Boolean: Accepts Boolean values. Cannot accept input from another component.
For more information, see [Langflow data types](/data-types).
-4. After adding rows to the table, the component automatically creates corresponding input ports for each field.
- You can now connect outputs from other components to the dynamic input ports, or enter values manually in the component's input fields.
+4. Depending on your **Field Type** selections, either connect output from other components to dynamically populate the inputs, or enter values manually in the **Dynamic Create Data** component's fields.
### Dynamic Create Data parameters
From 0f177a947ffb294668f2c56aacb6c6293c33833a Mon Sep 17 00:00:00 2001
From: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
Date: Thu, 13 Nov 2025 10:28:12 -0500
Subject: [PATCH 3/3] clarify-message-types
---
docs/docs/Components/components-processing.mdx | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/docs/docs/Components/components-processing.mdx b/docs/docs/Components/components-processing.mdx
index 7824bee4f294..1017cbac7513 100644
--- a/docs/docs/Components/components-processing.mdx
+++ b/docs/docs/Components/components-processing.mdx
@@ -420,12 +420,12 @@ The output is a `DataFrame` containing all columns from the original `DataFrame`
## Dynamic Create Data
-The **Dynamic Create Data** component creates a [`Data`](/data-types#data) object with configurable fields.
+The **Dynamic Create Data** component creates a [`Data`](/data-types#data) object or [`Message`](/data-types#message) with configurable fields.
Define the table in the **Input Configuration** field, and the component creates corresponding input or output handles in the component.
### Use the Dynamic Create Data component in a flow
-The following example demonstrates how to use a **Dynamic Create Data** component to create a structured `Data` object from multiple sources.
+The following example demonstrates how to use a **Dynamic Create Data** component to create a structured `Data` or `Message` object from multiple sources.
1. Add the **Dynamic Create Data** component to your flow.
@@ -447,6 +447,8 @@ The following example demonstrates how to use a **Dynamic Create Data** componen
For more information, see [Langflow data types](/data-types).
4. Depending on your **Field Type** selections, either connect output from other components to dynamically populate the inputs, or enter values manually in the **Dynamic Create Data** component's fields.
+5. Select the desired output type at the component's output port. The component outputs either a [`Data`](/data-types#data) object containing all field values from the component's inputs, or a [`Message`](/data-types#message) containing all field values formatted as a text string.
+
### Dynamic Create Data parameters