Skip to content

CSV Import

Bulk-create tasks from CSV data (inline or file path) with validation and parallel creation. Always use validate_only=true first to preview and catch errors.

ParameterTypeRequiredDescription
csv_datastringNoInline CSV content (first row must be headers). Use this or csv_file_path.
csv_file_pathstringNoPath to CSV file. Use this or csv_data.
dartboardstringYesDefault dartboard (dart_id or name) for imported tasks
column_mappingobjectNoMap custom column names to standard fields (e.g., {"Task Name": "title"})
validate_onlybooleanNoPreview without creating tasks (default: true)
continue_on_errorbooleanNoContinue on row failures (default: true)
concurrencyintegerNoParallel task creation (default: 5, range: 1-20)

Column names are case-insensitive with flexible aliases:

Standard NameAliases
titleTitle, Task Name
descriptionDescription
statusStatus
priorityPriority
sizeSize
assigneeAssigned To, Owner
dartboardDartboard (overrides default per-row)
tagsTags, Labels (comma-separated)
due_atDue Date, due_date, Due, Deadline
start_atStart Date, start_date, Start, Begins
parent_taskParent Task
FieldTypeDescription
batch_operation_idstringTracking ID
validate_onlybooleanWhether preview mode
total_rowsintegerRows in CSV
valid_rowsintegerRows passing validation
validation_errorsarrayPer-row error details
created_tasksintegerTasks created (when not validating)
failed_tasksintegerTasks that failed creation

Validate inline CSV:

import_tasks_csv({
dartboard: "Sprint 12",
csv_data: `title,priority,assignee,tags
"Fix login bug",5,engineer@company.com,"bug,urgent"
"Update API docs",2,writer@company.com,documentation`,
validate_only: true
})

Import from file after validation:

import_tasks_csv({
dartboard: "Sprint 12",
csv_file_path: "/path/to/tasks.csv",
validate_only: false
})

Import with custom column mapping:

import_tasks_csv({
dartboard: "Backlog",
csv_file_path: "/path/to/export.csv",
column_mapping: {
"Task Name": "title",
"Owner": "assignee",
"Labels": "tags"
},
validate_only: true
})
  1. Run get_config() to find dartboard IDs and valid assignee emails
  2. Run import_tasks_csv with validate_only: true to preview
  3. Fix any CSV errors reported in validation_errors
  4. Run import_tasks_csv with validate_only: false to execute