Import

Import task CSVs into Cogno

Export task data from Linear, Notion, GitHub Issues, Asana, and Jira, then import it with Cogno field, status, assignee, and parent mapping.

Settings / Task import14 min read

Use this guide to move task data from another system into Cogno with a controlled review step. Cogno imports CSV files, asks you to confirm every column, maps source statuses and members, then creates Cogno tasks.

When to use CSV import

CSV import is best when:

  • You are moving from Linear, Notion, GitHub Issues, Asana, Jira Cloud, or another task system.
  • You want to review the mapping before tasks are created.
  • You need source URLs, IDs, labels, milestones, priorities, or custom fields preserved as metadata.
  • You are doing a one-time migration or a controlled batch import.

CSV import creates tasks. It is not a live sync.

Before you export

Prepare the source system first.

CheckReason
One row per taskCogno creates one task from each valid CSV row.
Header row presentCogno uses the first row as column names.
Source URL or external ID presentHumans and AI can trace tasks back to the original system.
Stable assignee valuesNames, emails, or handles can be mapped to workspace members.
Absolute datesImport accepts absolute date values, not relative phrases.
Parent references are stableParent task mapping needs a title, source URL, external ID, or other stable lookup value.

Invite members before import when you want assignees or collaborators to map to Cogno members.

Import flow

  1. Export a CSV from the source app.
  2. Open the Cogno app.
  3. Select the target workspace.
  4. Open Settings > General.
  5. Drop one or more CSV files into Task import, or choose files from your computer.
  6. Select each uploaded file and review the mapping.
  7. Map every CSV column to a Cogno field, or choose Do not import.
  8. Map every source status value to a Cogno status.
  9. Map source assignees and collaborators to workspace members, or choose Do not assign.
  10. Check the mapped preview.
  11. Mark each file Mapping complete.
  12. Select Import.
  13. Spot-check the created tasks from the Tasks page.

Supported sources

SourceRecommended exportBest for
LinearIssue CSVIssue lists, project issues, custom views, workspace issue exports.
NotionMarkdown & CSV exportTask databases and project databases.
GitHub IssuesGitHub CLI JSON formatted as CSVRepository issue migrations with labels, assignees, milestones, and URLs.
AsanaProject CSVProject-level task movement.
Jira CloudExport CSV - all fieldsIssues, comments, custom fields, and work item metadata.
Other CSVCustom CSVAny task-like table with a title column.

Cogno fields

Cogno fieldRequiredMultiple columnsUse it for
Task titleYesYesMain task title. Multiple title columns are joined with spaces.
DescriptionNoYesLong-form task body. Multiple description columns are joined with blank lines.
StatusNoNoSource workflow state. Source values are mapped before import.
AssigneeNoNoPrimary owner. Multiple values in the cell are split by comma, semicolon, or newline.
CollaboratorsNoYesAdditional owners, followers, reviewers, or participants.
Due dateNoNoTask due date.
Start dateNoNoTask start date.
ProjectNoNoCogno project name. Cogno can create or reuse a project by name.
Parent TaskNoNoParent reference for a one-level task hierarchy.
SourceNoNoOriginal URL or canonical source link.
MetadataNoYesLabels, tags, priority, estimate, issue key, number, timestamps, reporter, creator, comments, and unsupported fields.
Do not importNoYesColumns that should be ignored.

Every column must be mapped or explicitly ignored.

Column mapping rules

  • Task title is required.
  • Status, Assignee, Due date, Start date, Project, Parent Task, and Source can each be mapped to one CSV column.
  • Task title, Description, Collaborators, Metadata, and Do not import can each receive multiple CSV columns.
  • Empty title rows are skipped.
  • Unsupported fields are rejected.
  • Source URL and metadata are stored under the task import metadata.

Date values

Cogno accepts absolute dates in common formats:

ExampleAccepted
2026-06-11Yes
2026/06/11Yes
06/11/2026Yes
11/06/2026Yes
Jun 11, 2026Yes
June 11, 2026Yes
tomorrowNo
next FridayNo

Timestamps are handled when the first 10 characters form an ISO date.

Status mapping

Cogno statuses are:

  • proposed
  • active
  • backlog
  • completed
  • archived

When you map a CSV column to Status, the importer lists each source status value. Map every source value before marking the file complete.

Source statuses are converted into Cogno statuses. To keep source-specific categories, manage them as workspace tags after import.

Member mapping

Map source assignees and collaborators to Cogno workspace members.

Source valueMapping behavior
Exact member name, user ID, or agent IDCogno can preselect the matching member when there is one match.
Multiple names in one cellValues split by comma, semicolon, or newline.
First assignee valueBecomes primary assignee.
Extra assignee valuesBecome collaborators.
Unknown personChoose a workspace member or Do not assign.
Ambiguous personChoose the correct workspace member manually.

Invite members before import when the CSV contains people.

Parent task mapping

Map a parent reference column to Parent Task when the source system has subtasks.

Cogno resolves a parent reference against:

  • Tasks in the same CSV import batch.
  • Previously imported tasks in the same workspace.
  • Import metadata values, source URLs, task titles, and task titles derived from the CSV.

Rules:

  • Cogno supports one level of task nesting.
  • A child can link to a parent imported in the same file.
  • A child can link to a parent imported earlier when the reference is still present in metadata.
  • Ambiguous parent references are skipped.
  • Cycles are skipped.

For large migrations, import parent tasks first when the source export separates parents and children.

Import limits

LimitValue
CSV headersRequired
CSV task rowsAt least 1
ColumnsUp to 100
Cell lengthUp to 20,000 characters
API payload textUp to 2,000,000 characters
UI batch size250 rows per request
UI batch textUp to 1,500,000 characters per request

Large files are sent in batches. If a batch partially succeeds, Cogno shows created, skipped, and error counts.

Export from Linear

Linear supports issue CSV exports from issue views, projects, custom views, and workspace-level export tools.

Recommended steps:

  1. Open the issue list, project, or custom view you want to move.
  2. Open the command menu with Cmd/Ctrl + K.
  3. Choose Export issues as CSV.
  4. Upload the downloaded CSV to Cogno.

Recommended mapping:

Linear columnCogno field
TitleTask title
DescriptionDescription
StatusStatus
AssigneeAssignee
ProjectProject
Due DateDue date
Parent issueParent Task
ID, Priority, Estimate, Labels, Cycle, Created, Updated, milestonesMetadata

Export from Notion

Use the CSV inside a Notion Markdown & CSV export.

Recommended steps:

  1. Open the Notion database that contains the tasks.
  2. Open the top-right page menu.
  3. Choose Export.
  4. Select Markdown & CSV.
  5. Download and unzip the export.
  6. Upload the database CSV to Cogno.

Recommended mapping:

Notion columnCogno field
Task name or page titleTask title
Description or notesDescription
StatusStatus
Assignee or PeopleAssignee
Due dateDue date
Project or milestoneProject
Tags, priority, relation fields, rollupsMetadata

Export from GitHub Issues

GitHub Issues does not provide a browser CSV export. Use GitHub CLI to export issue data as JSON and format it as CSV.

gh auth login

REPO="OWNER/REPO"
OUT="github-${REPO//\//-}-issues.csv"

gh issue list -R "$REPO" --state all --limit 1000 \
  --json number,title,body,state,stateReason,labels,assignees,milestone,createdAt,updatedAt,closedAt,url \
  --jq '(["number","title","body","state","stateReason","labels","assignees","milestone","createdAt","updatedAt","closedAt","url"], (.[] | [.number,.title,.body,.state,(.stateReason // ""),([.labels[].name] | join(";")),([.assignees[].login] | join(";")),(.milestone.title // ""),.createdAt,.updatedAt,(.closedAt // ""),.url])) | @csv' \
  > "$OUT"

Recommended mapping:

GitHub columnCogno field
titleTask title
bodyDescription
stateStatus
assigneesAssignee
milestoneProject or Metadata
urlSource
number, stateReason, labels, timestampsMetadata

Use --limit high enough for the repository. Use --search when you need a scoped subset.

Export from Asana

Use a project CSV export for the cleanest task set.

Recommended steps:

  1. Open the Asana project.
  2. Open the dropdown next to the project title.
  3. Choose the CSV export option from the project export menu.
  4. Upload the CSV to Cogno.

Recommended mapping:

Asana columnCogno field
Task nameTask title
Notes or DescriptionDescription
Section or StatusStatus or Metadata
AssigneeAssignee
Collaborators or FollowersCollaborators
Due DateDue date
ProjectsProject
Tags, custom fields, task ID, created date, completed dateMetadata

Export from Jira Cloud

Jira Cloud can export work items from a project list or from global work item search.

Recommended steps:

  1. Open a Jira project and select List, or open Filters > Search work items.
  2. Apply the query or filter for the work items you want.
  3. Open the more actions menu.
  4. Choose Export.
  5. Select Export CSV - all fields.
  6. Upload the CSV to Cogno.

Recommended mapping:

Jira columnCogno field
SummaryTask title
DescriptionDescription
StatusStatus
AssigneeAssignee
Due dateDue date
Project name or Project keyProject
Parent or parent issue keyParent Task
Issue key or issue URLSource
Comments, labels, components, priority, custom fields, created/updated timestampsMetadata

Use all fields when comments and custom fields matter. Jira Cloud exports CSV in UTF-8.

Validate after import

Spot-check at least five tasks:

CheckExpected result
TitleThe task title is readable and unique enough.
DescriptionImportant source details appear in the task body.
StatusSource states landed in the intended Cogno statuses.
Status tagSource workflow details are preserved when useful.
AssigneeThe correct workspace member owns the task.
CollaboratorsSecondary owners or followers are present.
ProjectTasks appear under the expected project.
Parent taskChild tasks link to the intended root parent.
SourceThe task can be traced back to the original app.
MetadataLabels, priorities, IDs, and custom fields are preserved.

Troubleshooting

ProblemFix
File cannot loadConfirm the CSV has a header row and at least one task row.
Mapping complete is disabledMap every column, every status value, and every assignee value.
Task title is requiredMap a non-empty title, name, or summary column to Task title.
A single-value field has multiple columnsKeep one column mapped to that field and move the others to Metadata or Do not import.
Assignee not foundInvite the member, map the source value manually, or choose Do not assign.
Status looks too broadMap source status to Cogno status and use tags for source-specific workflow steps.
Date is invalidConvert dates to an accepted absolute date format.
Parent task not foundImport parents first or preserve stable parent IDs/source URLs.
Characters look corruptedRe-export as UTF-8 or resave with a modern spreadsheet app.

See Troubleshooting for symptom-first diagnosis.

LLM handoff

When asking an assistant to help with an import, provide:

  1. Source app name.
  2. CSV header row.
  3. Three representative rows with sensitive values removed.
  4. Desired Cogno field mapping.
  5. Status mapping decisions.
  6. Assignee mapping decisions.
  7. Parent task strategy.
  8. Any import error messages.

Use Copy for LLM on this page to pass the complete import rules as Markdown context.

Official references

Import task CSVs into Cogno | Cogno