# Importing Data The CSV import tool creates items, membership tiers, and mailing list subscribers from a CSV file. It does not import files -- upload those separately after importing the metadata. A single CSV row can produce: - **An item** (if a title is present) - **A subscriber** (if an email is present) - **A transaction record** (if both an email and amount are present, counted for reporting, not inserted as real purchases) ## Preparing Your CSV The importer accepts any column order; you map columns during setup. Available column mappings: | Field | What it maps to | |-------|----------------| | `email` | Subscriber email address | | `name` | Subscriber or buyer name | | `amount` | Transaction amount (see format below) | | `date` | Date of transaction or membership start | | `item_title` | Item title to create | | `tier` | Membership tier name | | `status` | Membership status | Unmapped columns are ignored, so you can leave extra columns in the CSV without issue. ### Amount Format - Decimal values are treated as dollars: `12.50` becomes $12.50 (1250 cents) - Whole numbers are treated as cents: `500` means $5.00 - Currency symbols (`$`, `EUR`, `GBP`, `JPY`) and commas are stripped automatically ### Date Format The importer handles multiple date formats: - ISO 8601: `2024-01-15` or `2024-01-15T10:30:00Z` - US format: `01/15/2024` or `1/15/2024` - EU format: `15.01.2024` (day > 12 disambiguates automatically) - Unix epoch seconds: `1705312200` If a date is missing, the current date is used. ### Invalid Rows Rows with invalid emails (missing `@` or `.`) are skipped. Other parse errors are logged but don't stop the import. A summary of skipped rows is shown at the end. ## Running an Import 1. Go to your dashboard and open the **Import** tab 2. Select the target project 3. Upload your CSV (max 10 MB) 4. Map your columns to the available fields 5. Start the import > [!UI] import-column-mapper The import runs in the background. The status page shows total rows, rows processed, rows created, and rows skipped. ## What the Import Creates The pipeline runs in four phases: 1. **Tiers**: Creates membership tiers from the `tier` column. Duplicates (by name) are skipped. 2. **Items**: Creates digital items from the `item_title` column. Tags are attached by slug lookup if present. 3. **Subscribers**: Adds email addresses to a mailing list for the project. These are email-only subscribers (they don't need MNW accounts). 4. **Transactions**: Recorded in your import report for reference, but not processed as actual charges (imported buyers have no MNW accounts). Progress updates every 50 rows. ## After Importing - **Upload files**: Items are created without files. Go to each item's Files tab to upload the actual content. - **Set prices**: Review and adjust pricing on imported items. - **Review tags**: Check that tag mappings resolved correctly. - **Publish**: Imported items start as drafts. Publish them when ready. ## Limits - CSV file size: 10 MB maximum - Import history: your 20 most recent jobs are retained - One import per project at a time ## Supported Sources Currently, the importer supports generic CSV files. Platform-specific importers are on the [roadmap](../about/roadmap.md#importers). ## See Also - [Content & Items](./02-content.md): Creating items manually - [Data Export](./export.md): Exporting your data - [Migration Guide](./migration.md): Moving to Makenot.work