> ## 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.

# CSV Read

> Kick off your play by importing structured data directly from a CSV—clean, flexible, and ready for RevOps automation.

## What It Does

* **Imports CSV Data**: Load structured data from a locally uploaded CSV file.
* **Targeted Column Selection**: All columns are included by default; choose specific ones if needed.
* **Trigger-Friendly**: Use it to start a play or drop it mid-play as a flat-file ingest step.
* **Column Name Safety**: Handles duplicate column names automatically to prevent issues downstream.

***

## 🏁 Getting Started

<Frame>
  <img src="https://mintcdn.com/nurturev/OitEIaKlfl7lCKCJ/images/CSV%20Read%20node%20configuration%20screenshot.png?fit=max&auto=format&n=OitEIaKlfl7lCKCJ&q=85&s=61de76a00947bdfc9ea4b705b6d98fcd" alt="CSV Read node configuration screenshot" style={{ borderRadius: '0.5rem', width: '100%', margin: '1.5rem 0' }} width="1182" height="1664" data-path="images/CSV Read node configuration screenshot.png" />
</Frame>

<Steps>
  <Step title="Add the Node">
    Add the **CSV Read** node to your play. It works as a trigger node (no upstream input) or can be inserted mid-play to bring in CSV data.
  </Step>

  <Step title="Upload Your File">
    Upload a local `.csv` file from your device.
  </Step>

  <Step title="(Optional) Select Columns">
    All columns are selected by default. Use the dropdown to include only the ones you need.
  </Step>

  <Step title="Run the Node">
    Click **Run**. Once it executes, click the file icon on the node to preview your data.
  </Step>
</Steps>

<Tip>
  This node doesn’t require upstream inputs — use it to kick off a play or inject data mid-play from a CSV file.
</Tip>

<Tip>
  When the node is toggled to **purple**, it will preview only the first 5 rows. Switch to **green** to load the entire file into your play.
</Tip>

***

## Inputs

🚀 This is a **trigger node** — no inputs are required from upstream nodes.

***

## Output

After execution, your selected CSV data is available for downstream nodes.

* Outputs all columns by default (or just the selected ones)
* Data can be previewed from the node’s output panel
* Duplicate column names are automatically renamed (e.g., `email`, `email_1`, `email_2`) to maintain integrity

<Note>
  📝 The first row of your CSV must contain column headers. If not, the first row will be treated as headers — which may cause issues downstream.
</Note>

***

## How It Works

1. Validates the file format and confirms it’s a readable CSV
2. Applies column filtering if selected
3. Reads and loads your data into the play
4. Auto-renames duplicate columns as needed to avoid conflicts
5. Displays the processed data in the output panel

***

## ✨ Pro Tips

<Tip>
  **Start with only what you need**: Selecting key columns keeps your play focused and reduces clutter as your data moves through more nodes.
</Tip>

<Tip>
  **Preview before proceeding**: After upload and execution, click the file icon to inspect your data before passing it downstream.
</Tip>

<Tip>
  **Avoid duplicate column names** when possible — but if they exist, we’ll rename them for you (e.g., `name`, `name_1`) to keep everything running smoothly.
</Tip>

***

## ⚠️ Important Considerations

<Warning>
  **CSV must include headers.** If not, the first row will be used as headers, which may lead to data mapping issues later in your play.
</Warning>

<Warning>
  **Duplicate headers are renamed.** If your CSV includes duplicate column names, they’ll be renamed automatically to avoid conflicts. (e.g., `email`, `email_1`)
</Warning>

***

## 🛠 Troubleshooting & Gotchas

| Symptom                  | Cause                                 | Quick Fix                                                   |
| ------------------------ | ------------------------------------- | ----------------------------------------------------------- |
| No data shown in preview | File is empty or improperly formatted | Open the file and check contents before uploading           |
| Missing or extra columns | Column selection mismatch             | Reopen the node and adjust your column choices              |
| Unexpected column names  | Duplicate headers were renamed        | Preview output to see updated field names (e.g., `email_1`) |

***

## 📝 FAQ

<AccordionGroup>
  <Accordion title="Can I load only specific columns?">
    Yes. By default, all columns are included, but you can select just the ones you need from the dropdown.
  </Accordion>

  <Accordion title="What happens if my CSV doesn't have headers?">
    The first row will be treated as headers, which may lead to issues in downstream nodes that rely on proper column names.
  </Accordion>

  <Accordion title="Can I preview the file before continuing?">
    Yes. After uploading and running the node, click the file icon on the node card to view a preview of the data.
  </Accordion>
</AccordionGroup>

***

## 💼 RevOps Use Cases

| Scenario             | Why Use CSV Read                                      |
| -------------------- | ----------------------------------------------------- |
| SDR call logs        | Bring in call outcomes and metadata for routing logic |
| Pipeline audit       | Ingest CRM exports for deal review                    |
| Account planning     | Import segmented account lists                        |
| Attribution modeling | Analyze touchpoint exports in sequence                |

***

<p style={{ fontSize: '1rem', fontWeight: 'bold', marginTop: '1.5rem' }}>
  Start your RevOps plays the smart way — bring in your CSVs, select only what matters, and hit the ground running. 📊⚡
</p>
