Import from a CSV or JSON file
This page helps you bring work into By Dawn from a tracker that has no connector of its own, or from a spreadsheet. At the end each row of your file is a By Dawn ticket. Import and sync explains the steps every tracker shares, so this page covers only what’s particular to a file.
A file is always imported once. There’s nothing on the other side to keep in step with, so there’s no sync.
Before you start
Section titled “Before you start”- You need to be a project admin in By Dawn. No token is needed.
- Export from your tracker as CSV or JSON, up to 64 MB.
Upload
Section titled “Upload”-
In By Dawn, open Settings › Import & sync › New import and pick CSV / JSON.
-
Choose Choose file and pick your export. By Dawn reads its headers and proposes which column feeds which field. Choose Replace file to use a different one.
-
Map the statuses and priorities the file uses, run the dry run, and choose Import.
What By Dawn reads
Section titled “What By Dawn reads”CSV files may use a comma, semicolon or tab between values; By Dawn uses whichever the header line has most of.
Quoted values may contain that separator and line breaks. A column header that repeats, such as Jira’s several
Labels columns, is read as one column with several values.
JSON files hold an array of objects, or an object holding exactly one such array, such as
{"issues": [ … ]}. Nested objects are read as dotted names, such as fields.summary.
If a row can’t be read, the import stops and names the line or item, so you can fix the file and try again.
How columns are recognised
Section titled “How columns are recognised”By Dawn matches headers by name, ignoring case, spaces and punctuation, so Issue key, issue_key and IssueKey
are the same. The exports of Jira, Linear, Azure DevOps, GitHub, Asana and Trello are recognised as they come. For
any other file, rename the headers to one of the names below before you upload.
| Field | Headers By Dawn recognises |
|---|---|
| Title (required) | Summary, Title, Name, Card name, Task name, Subject |
| ID | Issue ID, ID, Work item ID, Task ID, Card ID, External ID, GID, UUID, Number |
| Key | Issue key, Key, Identifier |
| Description | Description, Body, Notes, Card description, Details, Content |
| Type | Issue type, Work item type, Type, Task type, Kind |
| Status | Status, State, Section/Column, Section, Column, List name, List, Stage |
| Priority | Priority |
| Assignees | Assignee, Assignees, Assigned to, Members, Owner |
| Reporter | Reporter, Creator, Created by, Author, Opened by |
| Labels | Labels, Label, Tags, Tag |
| Parent | Parent, Parent ID, Parent issue, Parent task, Parent key |
| Epic | Epic link, Epic, Epic key |
| Estimate | Story points, Estimate, Points, Effort |
| Due date | Due date, Due, Due on, Deadline |
| Created, Updated | Created, Created at, Created date; Updated, Updated at, Changed date, Last modified |
| Link | URL, Card URL, HTML URL, Web URL, Link, Permalink |
| Resolution | Resolution |
Each column feeds at most one field. A file with no title column can’t be imported.
Nothing is dropped. Every column that doesn’t feed a field, and any value that doesn’t read (a date By Dawn can’t parse, for example), is kept on the ticket as an import detail.
How a file maps
Section titled “How a file maps”- Statuses are matched to columns by name, the same way as Trello lists (see Import from Trello). Rows with an empty status are grouped as No status, which you map like any other value.
- Priorities are mapped value by value.
- Parents and epics. A parent or epic cell may hold the other row’s ID or its key. A row pointing at a row that’s in the file becomes its sub-ticket or joins its epic.
- Dates can be ISO 8601 (
2026-10-12or2026-10-12T15:45:00Z), Jira’s12/Oct/26 3:45 PMor Azure DevOps’s10/12/2026 3:45:00 PM. A time with no time zone is read as UTC. - People, labels and types map as for any tracker (see How mapping works).
A file has no attachments, comments or sprints, so none come over.
Check before you import
Section titled “Check before you import”A file import finishes once every row is in, and the connection ends. Importing the same file again makes a new connection, which creates a second set of tickets. So use the dry run and the live preview to check the statuses, people and parents before you choose Import.
Where to go next
Section titled “Where to go next”- Import and sync: the setup steps, the dry run and what imported tickets do.