|
| 1 | +--- |
| 2 | +title: "Importing Tasks via CSV" |
| 3 | +linktitle: "Import Tasks" |
| 4 | +--- |
| 5 | + |
| 6 | +# Importing Tasks via CSV |
| 7 | + |
| 8 | +Kanboard supports importing tasks from CSV files. This guide explains the CSV format, the positional field semantics used by the importer, and provides a recommended template for reliable imports. |
| 9 | + |
| 10 | +## Overview |
| 11 | + |
| 12 | +The CSV importer in Kanboard uses **positional fields**, not header names. |
| 13 | +This means the *order* of fields matters, and empty fields must be preserved to maintain alignment. |
| 14 | + |
| 15 | +A minimal, stable header for task imports is: |
| 16 | + |
| 17 | +reference,title,description,,,,column,,swimlane |
| 18 | + |
| 19 | +The commas represent positional fields that must remain present, even when empty. |
| 20 | + |
| 21 | +## Positional Field Reference |
| 22 | + |
| 23 | +Kanboard interprets each row using the following positional mapping: |
| 24 | + |
| 25 | +| Position | Meaning | Notes | |
| 26 | +|---------|----------------|-------| |
| 27 | +| 1 | reference | Optional identifier; can be anything | |
| 28 | +| 2 | title | Required; task title | |
| 29 | +| 3 | description | Optional; task description | |
| 30 | +| 4 | category | Leave empty unless using Kanboard categories | |
| 31 | +| 5 | swimlane (ignored) | Fallback swimlane slot | |
| 32 | +| 6 | column (ignored) | Fallback column slot | |
| 33 | +| 7 | column | Primary column field; must match an existing board column | |
| 34 | +| 8 | color | Leave empty unless using Kanboard color codes | |
| 35 | +| 9 | swimlane | Primary swimlane field; must match an existing swimlane | |
| 36 | + |
| 37 | +### Importer rule |
| 38 | + |
| 39 | +Kanboard scans all fields left‑to‑right and assigns values based on pattern matching. |
| 40 | +The **last valid match wins** for each attribute. |
| 41 | + |
| 42 | +Removing empty fields shifts the scan and changes how the importer interprets the row. |
| 43 | + |
| 44 | +## Recommended Template Data Example |
| 45 | + |
| 46 | +```csv |
| 47 | +reference,title,description,,,,column,,swimlane |
| 48 | +"task‑001","My task","Some description",,,,"Backlog",,"Your swimlane #1" |
| 49 | +"task‑002","Another task","Some other description",,,,"Done",,"Your swimlane #2" |
| 50 | +``` |
| 51 | + |
| 52 | +## Usage |
| 53 | + |
| 54 | +1. Prepare a CSV file using the template above. |
| 55 | +2. Ensure column and swimlane names match your board exactly. |
| 56 | +3. Go to **Settings → Import Tasks**. |
| 57 | +4. Click **Choose File** |
| 58 | +5. Click **Import** to upload the file and create your tasks. |
| 59 | + |
| 60 | +## Troubleshooting |
| 61 | + |
| 62 | +### Tasks appear in the wrong column or swimlane |
| 63 | +One or more empty fields were removed, shifting positional alignment. |
| 64 | + |
| 65 | +### Column or swimlane is ignored |
| 66 | +The value does not match an existing Kanboard column or swimlane. |
| 67 | + |
| 68 | +### Placeholder text disappears |
| 69 | +Kanboard discards values that do not match known entities. |
| 70 | + |
| 71 | +### Import succeeds but fields appear blank |
| 72 | +Unused positional fields are ignored unless populated with valid values. |
0 commit comments