| 1 |
# Importing Data |
| 2 |
|
| 3 |
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. |
| 4 |
|
| 5 |
A single CSV row can produce: |
| 6 |
|
| 7 |
- **An item** (if a title is present) |
| 8 |
- **A subscriber** (if an email is present) |
| 9 |
- **A transaction record** (if both an email and amount are present, counted for reporting, not inserted as real purchases) |
| 10 |
|
| 11 |
## Preparing Your CSV |
| 12 |
|
| 13 |
The importer accepts any column order; you map columns during setup. |
| 14 |
|
| 15 |
Available column mappings: |
| 16 |
|
| 17 |
|
| 18 |
|
| 19 |
| `email` | Subscriber email address | |
| 20 |
| `name` | Subscriber or buyer name | |
| 21 |
| `amount` | Transaction amount (see format below) | |
| 22 |
| `date` | Date of transaction or membership start | |
| 23 |
| `item_title` | Item title to create | |
| 24 |
| `tier` | Membership tier name | |
| 25 |
| `status` | Membership status | |
| 26 |
|
| 27 |
Unmapped columns are ignored, so you can leave extra columns in the CSV without issue. |
| 28 |
|
| 29 |
### Amount Format |
| 30 |
|
| 31 |
- Decimal values are treated as dollars: `12.50` becomes $12.50 (1250 cents) |
| 32 |
- Whole numbers are treated as cents: `500` means $5.00 |
| 33 |
- Currency symbols (`$`, `EUR`, `GBP`, `JPY`) and commas are stripped automatically |
| 34 |
|
| 35 |
### Date Format |
| 36 |
|
| 37 |
The importer handles multiple date formats: |
| 38 |
|
| 39 |
- ISO 8601: `2024-01-15` or `2024-01-15T10:30:00Z` |
| 40 |
- US format: `01/15/2024` or `1/15/2024` |
| 41 |
- EU format: `15.01.2024` (day > 12 disambiguates automatically) |
| 42 |
- Unix epoch seconds: `1705312200` |
| 43 |
|
| 44 |
If a date is missing, the current date is used. |
| 45 |
|
| 46 |
### Invalid Rows |
| 47 |
|
| 48 |
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. |
| 49 |
|
| 50 |
## Running an Import |
| 51 |
|
| 52 |
1. Go to your dashboard and open the **Import** tab |
| 53 |
2. Select the target project |
| 54 |
3. Upload your CSV (max 10 MB) |
| 55 |
4. Map your columns to the available fields |
| 56 |
5. Start the import |
| 57 |
|
| 58 |
> [!UI] import-column-mapper |
| 59 |
|
| 60 |
The import runs in the background. The status page shows total rows, rows processed, rows created, and rows skipped. |
| 61 |
|
| 62 |
## What the Import Creates |
| 63 |
|
| 64 |
The pipeline runs in four phases: |
| 65 |
|
| 66 |
1. **Tiers**: Creates membership tiers from the `tier` column. Duplicates (by name) are skipped. |
| 67 |
2. **Items**: Creates digital items from the `item_title` column. Tags are attached by slug lookup if present. |
| 68 |
3. **Subscribers**: Adds email addresses to a mailing list for the project. These are email-only subscribers (they don't need MNW accounts). |
| 69 |
4. **Transactions**: Recorded in your import report for reference, but not processed as actual charges (imported buyers have no MNW accounts). |
| 70 |
|
| 71 |
Progress updates every 50 rows. |
| 72 |
|
| 73 |
## After Importing |
| 74 |
|
| 75 |
- **Upload files**: Items are created without files. Go to each item's Files tab to upload the actual content. |
| 76 |
- **Set prices**: Review and adjust pricing on imported items. |
| 77 |
- **Review tags**: Check that tag mappings resolved correctly. |
| 78 |
- **Publish**: Imported items start as drafts. Publish them when ready. |
| 79 |
|
| 80 |
## Limits |
| 81 |
|
| 82 |
- CSV file size: 10 MB maximum |
| 83 |
- Import history: your 20 most recent jobs are retained |
| 84 |
- One import per project at a time |
| 85 |
|
| 86 |
## Supported Sources |
| 87 |
|
| 88 |
Currently, the importer supports generic CSV files. Platform-specific importers are on the [roadmap](../about/roadmap.md#importers). |
| 89 |
|
| 90 |
## See Also |
| 91 |
|
| 92 |
- [Content & Items](./02-content.md): Creating items manually |
| 93 |
- [Data Export](./export.md): Exporting your data |
| 94 |
- [Migration Guide](./migration.md): Moving to Makenot.work |
| 95 |
|