Moving from Linear
Export issues as CSV from any view, rename three columns, import with a preview. Issues, projects, labels, due dates, priorities and sub-issues come across; cycles, estimates and workflow states do not.
Linear's export checked on ; the import path is that of OpenTodo v0.6.0
What comes across
- Issues, with their descriptions
- Projects, as projects (a team can be a parent project)
- Labels
- Due dates
- Priorities, after converting the words
- Sub-issues, through the parent issue column
- Statuses, as sections if you keep the column
What does not
- Cycles, estimates, SLAs, milestones and initiatives
- Assignees (dropped with a warning; assign again once the people have accounts)
- Comments and attachments
- Workflow automations, GitHub links and integrations
Before you start
At the time of checking, Linear exports issues as CSV from any view, project or issue list (open the command menu with Ctrl/⌘+K and choose Export issues as CSV…), with columns including ID, Team, Title, Description, Status, Estimate, Priority, Project, Assignee, Labels, Due Date and Parent issue. Members can export up to 250 issues at a time; admins more. Trust your own file over this page.
OpenTodo reads a CSV with a header row and a title column; header names are case-insensitive and spaces count as underscores, so Title, Description, Project, Labels and Due Date are read as they are. The columns it understands are in the import reference.
Export from Linear
- Open the view or project to move, press Ctrl/⌘+K and choose Export issues as CSV…. Repeat per team or project if you have more than the limit. Import formats
- Open the file in a spreadsheet. Import formats
Tidy the file
- Rename
Parent issuetoparent. Its value is the parent’sID, which OpenTodo matches against theidcolumn, so renameIDtoidas well. Sub-issues become subtasks. Mapping rules - Convert
Priority. ReplaceUrgentwith1,Highwith2,Mediumwith3,Lowwith4, and clearNo priority. CSV columns - Decide what
Statusbecomes. Rename itsectionand your board has the same columns as Linear’s (Todo, In Progress, Done). Or add acompletedcolumn withyeson done issues and drop the status. You can do both. Sections - Delete
Estimate,Cycle,Assigneeand the other columns you do not need. Unknown columns are listed as ignored in the preview;Assigneeis recognised as unsupported and dropped with a warning on each row. CSV columns
Import into OpenTodo
- Open Settings → Data → Import data… and choose the file. Import from another app
- In the preview, pick the target project for rows without one (a project per team works well), check the time zone, and read the row list: created, skipped with the reason, or error with the row number. Nothing is written yet. Import from another app
- Select Import. The tasks reach every member’s devices once the project is shared. An import can be undone. Undo an import
Your first week
- Share each project with the team, editors for everyone, and assign the issues again. Assignees get a notification and an Assigned to me list. Share a project Assign tasks
- Switch the project to a board with v; the sections you imported are its columns. Turn a project into a board Switch to a board
- Cycles: a saved view
#Launch & due <= 14 dayspinned to the sidebar is the two-week window; a dashboard puts the team’s views side by side. Save a filter as a view Save your own views - Scripts and automations: the REST API and the
otcommand line write to the same place as the app, and webhooks fire on changes. For developers HTTP API - Where Linear stays ahead, the comparison says so; this page is not a reason to leave it. OpenTodo vs Linear
Linear words, OpenTodo words
| In Linear | In OpenTodo | Note |
|---|---|---|
| Issue | Task | |
| Project | Project | |
| Team | Parent project | OpenTodo has no teams; a project per team with sub-projects works for a team of five. |
| Status (Todo, In Progress, Done) | Section, and Completed | Sections show as board columns; a done issue is a completed task. |
| Label | Label | |
| Priority Urgent, High, Medium, Low | Priority P1, P2, P3, P4 | |
| Sub-issue | Subtask | |
| Assignee | Assignee | |
| Cycle | No equivalent | A saved view "due <= 14 days" is the nearest thing. |
| Custom view | Saved view | |
| Triage | Inbox |
Documentation this page relies on
Bring your tasks over at your own pace.
Import into the demo first if you like: the sandbox is private and deleted after two hours. Then do it for real on your server.