Импорт CSV

Перенос задач из любого трекера одним файлом: формат, колонки, иерархия, отчет об ошибках и проверка до записи.

Обновлено: 2026-08-31

Quevell импортирует CSV, а не «данные из конкретного трекера»: любой инструмент, умеющий выгрузить таблицу, может стать источником. Импорт выполняется в проект и доступен тому, кто может создавать в нем задачи.

Две фазы

Импорт всегда проходит двумя фазами через один и тот же механизм:

  1. Предпросмотр: файл разбирается и проверяется целиком, не записывая ничего. Вы видите, как распознались колонки, сколько строк готово к импорту и что не так с остальными.
  2. Запись: файл проверяется еще раз и записывается одной транзакцией. Либо ложится весь файл, либо не записывается ничего и возвращается отчет об ошибках.

Практически это означает: наполовину импортированного файла не бывает. Ошибку можно исправлять в исходном файле сколько угодно раз, ничего не подчищая за предыдущими попытками.

Каждая созданная задача проходит тот же путь, что и созданная рукой: права, валидация полей, правила иерархии. Импорт не может привести данные в состояние, в которое их не мог бы привести человек. Правила автоматизации на импортированные строки не срабатывают: тысяча правил, разбуженных одним файлом, никому не нужна.

Формат файла

  • Кодировка: UTF-8, в том числе с BOM. Файл, который не читается как строгий UTF-8, читается как windows-1251: это кодировка выгрузок из старых инструментов. Какая кодировка распозналась, видно в отчете предпросмотра.
  • Разделитель: точка с запятой, запятая или табуляция. Распознается по заголовку автоматически: побеждает кандидат, дающий больше колонок.
  • Кавычки: по RFC 4180. Ячейка в двойных кавычках может содержать разделитель, перенос строки и удвоенную кавычку.
  • Первая строка: названия колонок. Обязательна.
  • Ограничения: до 5 МБ и до 5000 строк в одном файле.

Колонки

Колонки распознаются по названию, на русском и на английском. Единственная обязательная колонка: название задачи (Summary, Название, Тема). Колонка описания тоже нужна практически всегда: описание в Quevell обязательно, строка без него не импортируется и попадает в отчет.

НазначениеРаспознаваемые названияОбязательно
НазваниеSummary, Title, Subject, Название, Заголовок, Темада
ОписаниеDescription, Описаниезначение обязательно в каждой строке
Тип задачиType, Issue type, Тип, Тип задачинет, по умолчанию тип проекта
СтатусStatus, Статуснет, по умолчанию начальный статус
ПриоритетPriority, Приоритетнет
ИсполнительAssignee, Исполнительнет
АвторReporter, Автор, Создательнет
Дата созданияCreated, Created at, Создано, Дата созданиянет
Ключ в файлеKey, Issue key, Ключ, Ключ задачинет, нужен для иерархии и ссылок
РодительParent, Parent key, Родительнет
Исходная оценкаOriginal estimate, Estimate, Оценка, Исходная оценканет
Остаток оценкиRemaining, Remaining estimate, Остаток, Остаток оценкинет

Колонка, чье название совпадает с именем кастомного поля проекта, пишется в это поле. Нераспознанная колонка игнорируется и помечается в отчете. Если два названия претендуют на одно назначение, побеждает первая колонка, вторая помечается как игнорируемая.

Когда автоматическое распознавание не подходит, назначение задается явно в диалоге импорта: какую колонку куда, включая «никуда». Эти инструкции можно сохранить и использовать повторно: формат инструкций стабилен и рассчитан на то, что его держат в регламенте миграции.

Значения

Статусы, типы и варианты полей выбора распознаются по любому из своих написаний: ключу, названию по умолчанию и каждому переводу. Значение, написанное так, как его показывает интерфейс, распознается независимо от языка.

  • Приоритет: Highest, High, Medium, Low, Lowest, их русские эквиваленты («критический», «высокий», «средний», «низкий», «минимальный»), а также Blocker и Trivial.
  • Люди: по имени или по адресу почты. Адрес надежнее: если в компании два человека с одним именем, строка с именем отклоняется и отчет просит адрес.
  • Даты создания: 2026-08-24, 24.08.2026, ISO-метки времени и 24.08.2026 18:30.
  • Оценки: в формате учета времени, например 1w 2d 4h 30m, где 1w = 5 дней, 1d = 8 часов. Остаток без явного значения равен исходной оценке: ничего еще не потрачено.
  • Поля выбора: значение должно быть одним из вариантов поля. В многозначное поле несколько значений пишутся с новой строки внутри ячейки.

Неизвестные значения

Строка с неизвестным статусом, типом, приоритетом или вариантом поля не импортируется: молча создать задачу «примерно с тем» значением хуже, чем назвать строку и значение. В отчете такие значения собираются в сводку: не триста ошибок «нет статуса Wait», а одна строка «Wait, 300 строк» и список того, что в проекте есть. В диалоге импорта такому значению можно сопоставить существующее, не редактируя файл.

Иерархия

Иерархия переносится двумя колонками: ключ в файле и родитель. Родитель может указывать на ключ строки этого же файла или на существующую задачу в Quevell.

  • Ключи внутри файла важнее: если ключ повторяет существующую задачу, родителем считается строка файла. Это позволяет повторно импортировать выгрузку со старыми ключами.
  • Родитель должен стоять ровно на один уровень выше ребенка по иерархии типов, как и при ручном создании.
  • Строки записываются в порядке «родители раньше детей» независимо от порядка в файле.
  • Если строка родителя отклонена, ее дети отклоняются со ссылкой на нее, а не с загадочным «родитель не найден».

После записи всех строк ссылки на задачи в кастомных полях типа «задача», указывающие на ключи этого же файла, переписываются на новые ключи: номера принадлежат принимающему проекту и известны только после записи. Отчет возвращает соответствие «старый ключ: новый ключ», чтобы переписать ссылки в старом инструменте.

Отчет

Обе фазы возвращают один и тот же отчет: кодировка, разделитель, распознавание каждой колонки, число строк, число готовых к импорту, ошибки по строкам с номерами и причинами, сводка неизвестных значений. После записи в отчете появляется список созданных задач с их новыми ключами.

Пример файла

Файл ниже можно скопировать, сохранить как import.csv и загрузить без изменений. Разделитель: точка с запятой.

Ключ;Название;Описание;Тип;Статус;Приоритет;Исполнитель;Родитель;Оценка
EPIC-1;Переезд в новый офис;Все работы по переезду командой в новый офис;Эпик;В работе;Высокий;;;
T-1;Собрать требования к помещению;Опросить команды и собрать требования: места, переговорные, серверная;Задача;Готово;Высокий;anna@example.com;EPIC-1;2d
T-2;Выбрать помещение;Съездить по трем адресам из списка и сравнить по чеклисту;Задача;В работе;Средний;anna@example.com;EPIC-1;1w
T-3;Организовать перевозку техники;Упаковка, страховка, перевозчик, приемка на месте;Задача;К выполнению;Средний;;EPIC-1;3d 4h

Названия типов и статусов в примере должны существовать в вашем проекте; если они называются иначе, переименуйте их в файле или сопоставьте в диалоге импорта.