Import files

Upload CSV, Excel (.xlsx/.xls), JSON, or JSONL (.jsonl/.ndjson) into a dataset. Trodo previews the file, lets you map each column to input variables, Expected output, Metadata, or Tags, then appends the rows.

The fastest way to seed a dataset from an existing spreadsheet or fixture file. Open a dataset and click Import in the toolbar.

Supported formats

FormatExtensionsNotes
CSV.csvComma-separated; first row is the header.
Excel.xlsx, .xlsReads the first worksheet.
JSON.jsonA single object or an array of objects.
JSONL.jsonl, .ndjsonOne JSON object per line.

Import flow

  1. Click Import and pick a file.
  2. Trodo shows a preview of the detected columns and the first few data rows.
  3. For each file column, choose where it maps:
    • an existing input variable column;
    • Expected output;
    • Metadata;
    • Tags;
    • + new input — create a new variable column from this header;
    • — skip — — ignore the column.
  4. Click Append N rows to add the mapped rows to the dataset draft.
  5. Click Save in the top bar to persist.

Imported rows are appended to whatever is already in the dataset — they do not replace existing rows.

Auto-mapping

Trodo pre-fills the mapping when column names are recognizable:

File column nameMaps to
expected, expected_output, ground_truth, targetExpected output
metadataMetadata
tags, tagTags
A name that matches an existing input columnThat input column
Anything else+ new input (column name cleaned to a valid variable name)

JSON and JSONL record shapes

Each record can be structured or flat:

Structured (recommended for multi-field rows):

{
  "input": { "query": "Refund policy?", "locale": "en" },
  "expected_output": "30 days from purchase.",
  "metadata": { "category": "billing" },
  "tags": ["billing", "golden"]
}

Flat (keys become input columns unless they match reserved names):

{
  "query": "Refund policy?",
  "locale": "en",
  "expected_output": "30 days from purchase.",
  "metadata": "{\"category\":\"billing\"}"
}

For JSON/JSONL, nested input objects are unpacked into input columns. Reserved top-level keys (expected_output, expected, metadata, tags) are routed to their first-class fields.

Typed cell values

Values that look like JSON — objects {…}, arrays […], and the literals true, false, null — are stored as real typed JSON, not as plain strings. Plain text (ZIP codes, phone numbers, prose) stays a string. This matters when a prompt variable is declared as json or number: the binding receives the correct type at compile time.

Origin tracking

Rows imported from a file get an Origin badge in the grid — CSV, JSON, JSONL, or Spreadsheet — so you can tell file-sourced rows apart from SDK or trace-curated ones. Toggle the Display button in the toolbar to show the Origin column.

Export

Click the download icon in the toolbar to export the current dataset as CSV (input columns + expected + tags + metadata).

Snapshots

Import appends to the live draft. If you need a frozen baseline before making more edits, click Snapshots to save a version you can pin when running an experiment. See Why snapshots.

Next

On this page