Skip to main content

CSV Import

Bulk-load stories, publications, and anthology submission tracking from a spreadsheet, with a full preview before anything is written.

What CSV Import Is

CSV Import lets you bring existing data into Inkwren from a spreadsheet in one upload. It's useful when you're migrating from another tool, setting up a new workspace, or adding a batch of stories and publications at once instead of creating them one at a time.

You upload a single .csv file. Inkwren reads its column headers, works out what kind of data it contains, and shows you exactly what will be created before you commit. Authors, publishers, series, genres, and tags referenced in your file are created automatically if they don't already exist.

Getting to CSV Import

There's no sidebar item for CSV Import. You reach the page (/import) one of two ways:

  • From the dashboard, click Import CSV in the Quick Actions widget.
  • Open the command palette and run Import CSV Data.

How Importing Works

Importing is a three-step linear flow on a single page. There's no wizard and no import-type picker.

  1. Click Choose File and select a .csv. Only CSV files are accepted — anything else triggers a "Please select a valid CSV file" warning. Once chosen, the page shows the filename and size.
  2. Click Preview Import. Inkwren analyzes the file without importing anything and renders a full preview. Nothing is written to your workspace at this stage.
  3. Review the preview, then click Confirm Import to run the import, or Cancel to discard and start over. A progress bar tracks the job until it finishes, then a success or error message appears.

Import type is detected automatically

You never choose an import type. Inkwren inspects your column headers and routes the file to the right path — either general story and publication data, or anthology submission tracking. The detected type appears read-only in the preview's Import Type stat. There's no way to override it, and you don't need to: a file with a title or name column is handled as story and publication data.

The Preview

The preview is the heart of the feature. Use it to confirm the import will do what you expect before committing. It includes:

  • Import Summary — stat cards for Total Rows and Import Type, plus Rows with Errors and Warnings when there are any.
  • What Will Be Created — count cards (shown only when non-zero) for new stories, publications, authors, editors, publishers, series, genres, tags, and story-publication links. A summary line notes what already exists, for example "Also found: 3 existing stories, 1 duplicate link (will be skipped)."
  • Column Mapping — a read-only list of your headers. Recognized columns show as Your Header → field; unrecognized ones get an (ignored) badge and are skipped. You can't remap columns here — it's informational.
  • New Entities to Auto-Create — the authors, publishers, series, genres, and tags that will be created, each tagged with its type.
  • Sample Data — a table of the first few parsed rows.
  • Validation Issues — grouped into errors and warnings, plus an Existing Records Found block. Each existing record can be expanded to view a side-by-side CSV value vs. Inkwren value diff, so you can see exactly which fields differ before importing.
caution

If the preview finds any rows with errors, Confirm Import is disabled and the page shows "Fix the errors below before importing." Correct the flagged rows in your spreadsheet and preview again.

What Gets Created Automatically

A single file builds everything in one pass — there's no required order for files or columns. During import, missing authors, publishers, series, genres, and tags are created automatically. Records that already exist are matched by name and reused, not duplicated, so re-running a file won't create second copies of the same author or publisher.

The import also creates stories, publications, and the story-publication links between them, all from the same file.

Sample Templates

The Download Sample Templates section offers five fixed, ready-made CSVs. Each includes example rows and a Download button. These are fixed presets — there's no template builder and no option to export your own data as a template.

TemplatePurpose
MinimalJust the basics — Title and Author
StoriesFull story details, including word count, type, status, synopsis, genres, and tags
Full (with Publications)Stories plus publication tracking and per-retailer links
Full with FormatsStories plus per-format retailer links, for power users
Anthology EditorSubmission tracking — title, author, word count, publication, status, and notes
tip

If you're unsure how to lay out your file, download the closest template, replace its example rows with your data, and import that. It's the fastest way to get the column names right.

Preparing Your File

Inkwren is flexible about formatting, but a few things help:

  • The first row must be column headers. Inkwren reads these to recognize your data.
  • Column names are matched leniently. Casing and small variations are fine — "Word Count", "Words", and "word_count" all resolve to the same field, and retailer aliases like "amazon" or "amz" map to the Amazon link.
  • Genres and tags can be comma-separated in one cell, for example "Fantasy, Adventure".
  • Smart quotes and dashes are normalized automatically. When this happens, the import notes it as a warning rather than failing.

Any header that matches no known field is listed in the preview with an (ignored) badge and skipped, so extra columns won't break an import.

Import History

Past imports are listed in the Import History table at the bottom of the page, showing the file, status (completed, failed, or completed with warnings), record count, errors, and what was created. Expand the errors cell to see row-level or file-format details.

To remove a record of a past import, delete its row and confirm. This removes the history entry only.

Tips

  • Always preview before confirming. The preview shows exactly what will be created and what already exists, so you never import blind.
  • Fix flagged errors first. Confirm stays disabled until the preview is error-free — correct the rows in your spreadsheet and preview again.
  • Start from a sample template. It's the easiest way to match Inkwren's recognized columns.
  • Don't worry about exact casing. Column names are matched leniently, so "Word Count" and "word_count" both work.
  • Re-running a file is safe. Existing authors, publishers, and other entities are matched by name and reused, not duplicated.