# Generic CSV Migration Guide

Use a generic CSV import when your password manager is **not listed** in DVE's dedicated importers, or when you already have credentials in a spreadsheet.

## Prerequisites

- CSV file with a header row (column names in the first line)
- At least one column mappable to **name** (required)
- DVE **IT Admin** or **Super Admin** role
- UTF-8 encoding recommended for international characters

## When to use generic CSV

| Situation | Use generic CSV? |
|-----------|------------------|
| Chrome/Firefox saved passwords exported via third-party tool | Yes |
| Custom Excel inventory of credentials | Yes |
| Vendor with dedicated DVE importer (1Password, LastPass, etc.) | No — use the vendor guide |
| KeePass `.kdbx` file available | No — use [KeePass guide](keepass.md) |

## How to export CSV from any password manager

Most managers support **Export to CSV** under Settings, Tools, or Account options. General steps:

1. Unlock the vault.
2. Find **Export** or **Export vault**.
3. Choose **CSV** (not PDF or HTML).
4. Save locally — the file contains **plaintext secrets**.

If your tool only exports JSON, convert to CSV with a trusted script or re-export from a manager that supports CSV.

## Column detection and field mapping UI

When you upload a generic CSV to DVE:

1. DVE reads the **header row** and lists available columns.
2. The UI suggests mappings for common names (`name`, `username`, `password`, `url`, `notes`, `folder`, `tags`).
3. You confirm or adjust mappings before the import runs.
4. **`name` mapping is required** — every imported row must have a display name.

Optional mappings improve fidelity but are not all required.

## Required and optional fields

| Mapping | Required? | Purpose |
|---------|-----------|---------|
| `name` | **Yes** | Credential title in DVE |
| `username` | No | Login identifier |
| `password` | No | Secret value |
| `url` | No | Website address |
| `notes` | No | Free-text notes |
| `folder` | No | Folder path (single column) |
| `tags` | No | Comma-separated tags in one cell |

## What happens to unmapped columns

Columns you **do not map** are **ignored** during import — they are not stored on the credential. If you need that data, map it to `notes` or split it into a dedicated column and map appropriately before importing.

Rows with an empty **name** after mapping are skipped and reported in import warnings.

## DVE field mapping (common CSV headers)

| Common CSV header examples | DVE field |
|----------------------------|-----------|
| `name`, `title`, `site`, `account` | `name` |
| `username`, `user`, `login`, `email` | `username` |
| `password`, `pass`, `secret` | `password` |
| `url`, `website`, `uri`, `host` | `url` |
| `notes`, `comment`, `description`, `extra` | `notes` |
| `folder`, `group`, `category`, `path` | `folder` |
| `tags`, `labels` | `tags` |

## Known limitations and quirks

- **No automatic credential type detection** — generic CSV imports create **login**-style credentials unless your pipeline specifies otherwise.
- **One folder column only** — nested paths must be in a single cell (for example, `Finance/Payroll`).
- **Tags** — use comma-separated values in one column if mapping to `tags`.
- **Encoding issues** — save CSV as UTF-8 if you see garbled characters after import.

## Import into DVE

1. Open **Import** and select **Generic CSV**.
2. Upload the CSV file.
3. Review detected columns and set **field mapping** (minimum: `name`).
4. Start the import job and review the summary.

## Post-import verification checklist

- [ ] Imported record count matches non-empty CSV rows.
- [ ] Random sample of 10 rows matches source spreadsheet values.
- [ ] Unmapped columns were intentionally omitted — re-import with mapping if data is missing.
- [ ] Empty-name warnings reviewed and source CSV corrected if needed.
- [ ] Delete CSV from Downloads and shared drives.
- [ ] Remove spreadsheet copies from cloud sync if no longer needed.

## Related guides

- [Migration Overview](overview.md)
- [1Password Migration Guide](1password.md)
- [LastPass Migration Guide](lastpass.md)
