Quevell импортирует CSV, а не "данные из конкретного трекера": любой инструмент, умеющий выгрузить таблицу, может стать источником. Импорт выполняется в проект и доступен тому, кто может создавать в нем задачи.
Две фазы
Импорт всегда проходит двумя фазами через один и тот же механизм:
- Предпросмотр: файл разбирается и проверяется целиком, но ничего не записывается. Вы видите, как распознались колонки, сколько строк готово к импорту и что не так с остальными.
- Запись: файл проверяется еще раз и записывается одной транзакцией. Либо ложится весь файл, либо не записывается ничего и возвращается отчет об ошибках.
На практике это значит: наполовину импортированного файла не бывает. Ошибку можно исправлять в исходном файле сколько угодно раз, ничего не подчищая за предыдущими попытками.
Каждая созданная задача проходит тот же путь, что и созданная рукой: права, валидация полей, правила иерархии. Импорт не может привести данные в состояние, в которое их не мог бы привести пользователь. Правила автоматизации на импортированные строки не срабатывают: тысяча правил, вызванных одним файлом, никому не нужна.
Формат файла
- Кодировка: UTF-8, в том числе с BOM. Файл, который не читается как строгий UTF-8, читается как windows-1251: это кодировка выгрузок из старых инструментов. Какая кодировка распозналась, видно в отчете предпросмотра.
- Разделитель: точка с запятой, запятая или табуляция. Распознается по заголовку автоматически: выбирается разделитель, при котором колонок больше.
- Кавычки: по RFC 4180. Ячейка в двойных кавычках может содержать разделитель, перенос строки и удвоенную кавычку.
- Первая строка: названия колонок. Обязательна.
- Ограничения: до 5000 строк в одном файле и до размера, который задает компания (по умолчанию 5 МБ, от 1 до 10 МБ целыми мегабайтами).
Колонки
Колонки распознаются по названию, на русском и на английском. Единственная обязательная колонка: название задачи (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, Остаток, Остаток оценки | нет |
Колонка, чье название совпадает с именем пользовательского поля проекта, пишется в это поле. Нераспознанная колонка игнорируется и помечается в отчете. Если два названия претендуют на одно назначение, учитывается первая колонка, вторая помечается как игнорируемая.
Когда автоматическое распознавание не подходит, назначение задается явно в диалоге импорта: какую колонку куда, включая "никуда". Формат инструкций закреплен номером версии (version: 1), поэтому их можно держать в регламенте миграции и передавать через API; в диалоге импорта сопоставление задается заново для каждого файла.
Значения
Статусы, типы и варианты полей выбора распознаются по любому из своих написаний: ключу, названию по умолчанию и каждому переводу. Значение, написанное так, как его показывает интерфейс, распознается независимо от языка.
- Приоритет:
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
Названия типов и статусов в примере должны существовать в вашем проекте; если они называются иначе, переименуйте их в файле или сопоставьте в диалоге импорта.
Архив ZIP с вложениями
Задачи можно загрузить вместе с файлами: архив ZIP с файлом issues.csv и вложениями. Файл issues.csv читается по тем же правилам, что обычный CSV. Архив весит до 512 МБ, каждый файл в нем до 10 МБ. Архив проверяется и импортируется в фоне, итог приходит во "Входящие".
Как файл находит задачу
Прежний ключ задачи берется из колонки Key (или Ключ) в issues.csv. Файл находит задачу любым из трех способов, продукт определяет способ сам.
Папка на задачу, названная прежним ключом:
issues.csv
attachments/OLD-123/screenshot.png
attachments/OLD-124/spec.pdf
Плоская куча файлов с прежним ключом в начале имени:
issues.csv
OLD-123 screenshot.png
OLD-124_spec.pdf
Колонка Attachments (или Вложения) в issues.csv с путями внутри архива, по одному на строку ячейки или через точку с запятой:
Key;Summary;Description;Attachments
OLD-123;Кнопка сохранения;Не реагирует;docs/screenshot.png
Ключ в начале имени файла при прикреплении снимается: OLD-123 screenshot.png прикрепится как screenshot.png.
Пробный прогон
До импорта таблица показывает, какой файл к какой задаче ляжет и каким способом он нашелся. Ошибки останавливают импорт:
- в
issues.csvназван файл, которого архиву недостает; - файл больше 10 МБ;
- файлы займут больше места, чем осталось у компании;
- строка
issues.csvс ошибкой, как в обычном импорте CSV.
Предупреждения пропускают импорт только по вашему согласию: файл, который ни к чему не подошел, и пустой файл остаются в архиве. Человек, которого в компании нет, оставляет поле исполнителя или автора пустым и тоже попадает в предупреждения.
Прежний ключ
Прежний ключ хранится в задаче и находится поиском: OLD-123 в строке поиска найдет задачу, которой Quevell дал свой ключ. Повторная загрузка того же архива ничего не создает дважды: строка с прежним ключом, который уже есть в проекте, пропускается и попадает в отчет.
Из Quevell в Quevell
Кнопка "Выгрузить ZIP" в поиске задач собирает архив в этом же формате: issues.csv с колонкой Attachments, issues.json со всеми полями, комментариями, связями и историей, и папку attachments с файлами. Такой архив импортируется в другой проект или в другую компанию как есть.