Skip to content

Import from CSV

The CSV importer lets you bulk-import work items from any CSV (comma-separated values) file. This is the most flexible importer -- it works with data exported from any tool, manually prepared spreadsheets, or custom data pipelines. You upload a file, map columns to SetGet fields, review validation results, and run the import.

File format requirements

RequirementDetail
EncodingUTF-8 (BOM is accepted but not required)
DelimiterComma (,)
Header rowRequired as the first row
Maximum file size10 MB
Maximum rows10,000 work items per file
QuotingFields containing commas or newlines must be enclosed in double quotes
Line endings\n (LF) or \r\n (CRLF)

Sample CSV template

Download the sample template from the import page, or use this format:

csv
Title,Description,State,Priority,Assignee,Labels,Due Date,Estimate
"Fix login bug","Users cannot log in when password contains special characters",In Progress,High,alice@example.com,"bug,frontend",2026-04-15,3
"Add dark mode","Implement dark mode toggle in settings",Backlog,Medium,bob@example.com,"feature,ui",2026-05-01,8
"Update API docs","Document the new /v2/projects endpoint",Todo,Low,,"docs",2026-04-20,2

Column descriptions

ColumnRequiredFormatNotes
TitleYesPlain textWork item title
DescriptionNoPlain text or MarkdownWork item description
StateNoState nameMust match an existing SetGet state or be mapped
PriorityNoUrgent, High, Medium, Low, or NoneCase-insensitive
AssigneeNoEmail addressMust match a workspace member's email
LabelsNoComma-separated list (inside quotes)Created if they do not exist
Due DateNoYYYY-MM-DDISO 8601 date format
Start DateNoYYYY-MM-DDISO 8601 date format
EstimateNoIntegerPoints or hours depending on project settings
ParentNoTitle of another rowCreates a sub-work-item relationship

Setup steps

Step 1 -- Upload the CSV file

  1. Go to Settings > Import.
  2. Select CSV.
  3. Click Upload File and select your CSV file.
  4. SetGet parses the file and shows a preview of the first 10 rows.

Step 2 -- Map columns to fields

SetGet auto-detects common column names. For columns that are not automatically matched, manually select the target field.

CSV column headerAuto-detected SetGet field
Title, Name, SummaryWork item title
Description, Body, DetailsDescription
State, StatusState
PriorityPriority
Assignee, Assigned To, OwnerAssignee
Labels, TagsLabels
Due Date, Due, DeadlineDue date
Estimate, Points, Story PointsEstimate

Columns that do not map to any field can be ignored or appended to the description.

Step 3 -- Choose the target project

  • Create new project -- enter a project name and identifier.
  • Import into existing project -- select an existing project.

Step 4 -- Map state and priority values

If your CSV uses state or priority names that differ from SetGet defaults, map them:

CSV state valueSetGet state
OpenBacklog
DoingIn Progress
FinishedDone
CSV priority valueSetGet priority
P0Urgent
P1High
P2Medium
P3Low

Step 5 -- Validate

Click Validate to check the data before importing. The validator reports:

Validation checkWhat it catches
Missing titleRows without a title value
Invalid date formatDates not in YYYY-MM-DD format
Unknown stateState values not mapped to a SetGet state
Unknown priorityPriority values not in the mapping
Unmatched assigneeEmails not matching any workspace member
Duplicate titlesRows with identical titles (warning, not blocking)

Errors are shown per-row with the row number and column. Fix errors in the CSV file and re-upload, or accept warnings and proceed.

TIP

Fix validation errors before importing. While warnings can be accepted, errors will cause those rows to be skipped.

Step 6 -- Start import

Click Start Import. The progress screen shows rows processed and any rows skipped due to errors.

Error handling

Error typeBehavior
Missing required field (title)Row is skipped
Invalid dateDate field is left empty; row is imported
Unknown state (unmapped)State defaults to Backlog; row is imported
Unknown priority (unmapped)Priority defaults to None; row is imported
Unmatched assigneeAssignee is left empty; row is imported

After import, a summary report lists all skipped rows and warnings with row numbers.

Post-import validation

  • Compare imported work item count with the CSV row count (minus header, minus skipped rows).
  • Spot-check several items for correct field values.
  • Verify labels were created.
  • Check parent-child relationships if the Parent column was used.

WARNING

The CSV importer does not detect duplicates. Importing the same file twice creates duplicate work items. Delete duplicates manually or clear the project before re-importing.

Preparing data from other tools

If you are importing from a tool that does not have a dedicated importer, export to CSV from that tool and use this importer. Common sources:

Source toolExport methodNotes
TrelloMenu > More > Print and Export > CSVRequires a Trello Power-Up or third-party export
Monday.comBoard menu > Export to Excel/CSVMaps columns to CSV headers
BasecampThird-party export toolsNo native CSV export
AirtableView > Download CSVEach view can be exported separately
Google SheetsFile > Download > CSVSave as .csv before importing
ExcelFile > Save As > CSVChoose "CSV UTF-8" format

After exporting, review the CSV to ensure it meets the format requirements above, then upload to SetGet.

Advanced: Parent-child relationships

The Parent column creates sub-work-item relationships:

  1. Set the Parent column value to the exact title of another row in the CSV.
  2. The parent row must also exist in the same CSV file.
  3. Nesting is limited to one level (sub-work-items cannot have their own children via CSV import).

Example:

csv
Title,State,Parent
"Authentication module",Backlog,
"Implement login endpoint",Backlog,"Authentication module"
"Implement logout endpoint",Backlog,"Authentication module"

Best practices

  • Clean your data before importing. Remove empty rows, fix encoding issues, and standardize state/priority names.
  • Use the sample template as a starting point to ensure correct formatting.
  • Test with a small file (10-20 rows) before importing a large dataset.
  • Standardize email addresses to match workspace members for accurate assignee mapping.
  • Check encoding -- if you see garbled characters, ensure the file is saved as UTF-8.
  • Remove BOM -- some tools add a BOM (Byte Order Mark) to the beginning of UTF-8 files. SetGet handles BOM gracefully, but removing it avoids potential issues.