> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nrev.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Input Form Node

> Collect user input and inject static values into your workflow — ideal for triggers or adding metadata.

## What It Does

* Generates a single-row DataFrame from user-defined fields to trigger workflows.
* Adds static form values to existing datasets without overwriting existing columns.
* Automatically resolves duplicate column names with numeric suffixes.
* Supports empty DataFrames, preserving previous column structure.
* Works as a first-node trigger, middle-node enhancer, or recovery node for empty inputs.

***

## 🏁 Getting Started

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/nurturev/images/Input%20Form%20Node%20config%20screenshot.png" alt="Input Form Node config screenshot" style={{ borderRadius: '0.5rem', width: '100%', margin: '1.5rem 0' }} />
</Frame>

<Steps>
  <Step title="Define your fields">List the fields you want to add with names and values.</Step>
  <Step title="Connect input data (optional)">If adding to existing data, provide the input DataFrame.</Step>
  <Step title="Configure column behavior">The node automatically resolves duplicates for you.</Step>
  <Step title="Run the node">Generates output with form fields appended to your data.</Step>
</Steps>

***

## Inputs

### 🛠️ Required Fields

* **fields\_to\_input (✅)**\
  Define each field with a label and a value.\
  *Why it matters:* Controls which columns and values appear in the output DataFrame.

***

## Output

* Output contains all original columns plus the form fields you defined.
* Duplicate names are automatically suffixed (`field_1`, `field_2`, etc.) to avoid overwriting.

<Note>
  ✨ If your input DataFrame already has any of the column names, new form columns will be renamed automatically (e.g., `company_1`, `department_1`).
</Note>

***

## How It Works

1. Validates your field definitions for names and values.
2. Loads input DataFrame if provided, or prepares a new one.
3. Applies form values to either a new row or to each existing row.
4. Resolves any column name conflicts automatically.
5. Outputs the final DataFrame with all original and new columns.

***

## 🚀 Example Use Cases & Prompts

| Use Case                 | Setup or Prompt Example                                                              |
| ------------------------ | ------------------------------------------------------------------------------------ |
| Trigger workflow         | Add `{"field_text": "company", "field_value": "Microsoft"}` as first node            |
| Inject static metadata   | Add `{"field_text": "form_date", "field_value": "2024-01-15"}` to existing DataFrame |
| Recover empty input data | Use form fields to fill missing rows with default values                             |

***

## ✨ Pro Tips

<Tip>
  * Name your fields clearly to avoid unexpected suffixes.
  * When appending to existing data, check column order to ensure form fields appear last.
  * Use test mode to preview how fields will append without creating full output.
</Tip>

***

## ⚠️ Important Considerations

<Warning>
  * If multiple form fields share the same name, numeric suffixes are added automatically (e.g., `company`, `company_1`).
  * Empty input DataFrames will maintain original columns as `None` and add form fields.
</Warning>

***

## 🛠 Troubleshooting & Gotchas

| Symptom              | Likely Cause             | Quick Fix                                 |
| -------------------- | ------------------------ | ----------------------------------------- |
| Column not appearing | Name conflict with input | Look for suffixed column like `company_1` |

***

## 📝 FAQ

<AccordionGroup>
  <Accordion title="Can I append form data to existing datasets?">
    Yes — provide the input DataFrame, and the node will add form columns to each row.
  </Accordion>

  <Accordion title="What happens if a column already exists?">
    The node automatically renames form columns to prevent overwriting using numeric suffixes.
  </Accordion>

  <Accordion title="Can I use this node without input data?">
    Absolutely — it works as a trigger node and will generate a single-row DataFrame with only form fields.
  </Accordion>
</AccordionGroup>

***

## 💰 Pricing

> Each form row processed uses **1 credit**.

<Note>
  One credit per run when used as a trigger node.
</Note>

***

<p style={{ fontSize: '1rem', fontWeight: 'bold', marginTop: '1.5rem' }}>
  Use the Input Form Node to start workflows or inject metadata consistently — no coding required. 🚀
</p>
