Is it possible to create an entire plan - Epics, Stories, and Subtasks - by importing a csv or JSON?
Asked by Eric Greco:

My company has been awarded contracts (same customer) for multiple sites to do the exact same work. We would like to set up a Project/Plan Roadmap for each one. I currently have the project set up as:

* Epic: Site-name
* Story: categories of deliverables for various stages of the job
* Sub-tasks: each task required for above stories

For the first few sites, I created the Epic, then imported the Stories as a csv file, linking them to an Epic. After that import, I changed the Story Parent IDs in a separate sub-task csv file and imported that for the Epic. Create new Epic, import Stories csv file (changing Epic Link), change and import Sub-task csv file... repeat until all sites are created.

Currently, all awarded sites have been created in the project. However, we are working on proposals for several more sites. I would like to avoid the daunting task of uploading multiple csv files for each Epic and just upload 1 file that includes the Epic, the Stories linked to that Epic, and the Sub-tasks linked to that Epic and categorized under their respective Story (i.e., Parent ID).

The main issue is the Parent ID, linking Sub-tasks to the correct Story. The Epic Link also won't work if the Epic is created in the same csv file as the Story. With a csv file, the Parent ID has to be the created identifying number (i.e., "STORY-10" not "September Deliverables") which is created after an Epic, Story, or Sub-task is created. Note - I have the same issue with Sprints - I have to map Sprints in the csv file to the Sprint number, not its name. The other issue is every parent (Epic or Sprint) must be created first if I want to link items in a csv file to a parent. I basically have to import the Story csv file and change the "Parent ID" entries in the Sub-task csv file to match the parent ID numbers of the newly created Stories.

Question (finally): Does JSON work better with total Plan creations (Epic, Stories linked to Epic, and Sub-tasks linked to Story parents)? If so, what is the syntax for doing so? If not, is there a way to copy/clone all Stories and Sub-tasks in an Epic to a different Epic, linking those to the new Epic?

Thanks!


Answers:
author: Ste Wright
body: Hi [@Eric Greco](/t5/user/viewprofilepage/user-id/4037515)

You can upload Epics, Stories and Sub-Tasks in the same CSV - the basic layout for just the hierarchical setup is:

* **Issue Type:** Ensures issues are created in the right issue type
* **Epic Name:** This is the name of your Epic
* **Epic Link:** For Stories, the Epic Link should match the text in Epic Name - this creates the relationship between Epic and Story during the upload
* **Issue ID:** Give each story an Issue ID - for uploads, this can be just any number - eg. Story 1 = 1, Story 2 = 2
* **Parent ID:** For Sub-Tasks, populate the Parent ID as the equivalent Issue ID you gave a Story - so if you're placing Sub-Task 1, 2 and 3 under Story 1, its Issue ID would be "1"

\^ This allows you to upload the three different levels without three separate upload files.

I don't use JSON as much I'm afraid - but I find this an easy way from a CSV perspective :)

Ste

comments: author: Eric Greco
body: Hi [@Ste Wright](/t5/user/viewprofilepage/user-id/1166470),

I tried that with the Issue ID (started with 1) prior to creating multiple csv files. My company's Jira account may already have an issue 1 (when I exported the plan, the Issue IDs for this particular project started at like 11900). For the multiple csv files, I was using the Issue ID related to the plan as assigned by Jira (i.e., Epic_1 was Issue ID ABC-1, etc.). I'll try using that syntax in the single, multi-level csv file (i.e., if the highest-numbered project task is ABC-192, so I'll start with ABC-193 for a new Epic, etc.).

One clarification question: Is the Epic Name field only required for the line that creates the Epic, or do you need that for all entries (Epics, Stories, and Sub-tasks)? Epic Link, as you said, will link Stories and Sub-tasks to the correct Epic, so I assume you don't need the Epic Name for Story and Sub-task entries.

Thanks!


author: Ste Wright
body: Hi [@Eric Greco](/t5/user/viewprofilepage/user-id/4037515)

The Issue ID is just for mapping within the CSV file for Parent/Child - it won't set or override an actual ID in Jira, which is set automatically regardless of what's in the file.

The ABC-193 would be an Issue Key, rather than an ID. I don't believe it will work the same using these and it could become crossed with other issues being created in ABC during uploads. Best to stick to the Issue ID method of using numeric values to relate the stories / sub-tasks.

Epic Name is just needed for Epics. You need to enter the exact name into the Epic Link field for stories - pre-creation, the name is how Jira's import tool understands an Epic has stories below it in the file.

Sub-tasks don't need it as these are children of stories using the Parent ID / Issue ID as noted above.

Ste


author: Eric Greco
body: Hi [@Ste Wright](/t5/user/viewprofilepage/user-id/1166470)

I tried that and using ABC-193, etc., as Issue IDs and Parent IDs. It still did not work; in both cases, I received the error: "Fatal error during import: Parent Issue cannot be null."

Upon further investigating this issue, I discovered this post: [https://jira.atlassian.com/browse/JRACLOUD-65048.](https://jira.atlassian.com/browse/JRACLOUD-65048)

Apparently, this feature is only available to Global Admins... or by accessing the correct import option (I was importing from the Plan itself - Create \> Import Issue).

After finding this post: <https://community.atlassian.com/t5/Jira-Software-questions/issue-import-Parent-Issue-cannot-be-null-Simple-import-cannot/qaq-p/699498>,I tried it from Dashboards: Settings \> System \> External System Import and it worked.

I did take your advice on design of the csv spreadsheet. Thanks for the help - it will make future Project and Plan creations a LOT easier for my colleagues and me!

-Eric


author: Steve Holland
body: Hi

I was aware you could upload Epics/Stories/Subtasks in a single CSV using the methods described above.

However, we have a 5 tier planning structure, with L1 and L2 being special issue types, and then level 3 being the Epic

The way Advanced Roadmps works is that is seems to create a Parent/Child relationship between these L1 and Level 2 tasks, but this appears to be different to the Epic/Parent/Sub-task relationships. When using the method above, I get a message something like "Issue does not have subtasks - link will be ignored' - (which is correct is I look at it just from a Jira PoV)

Has anyone solved this problem?

Thanks

Steve


author: Ste Wright
body: Hi [@Steve Holland](/t5/user/viewprofilepage/user-id/4301232)

It doesn't work with Parent Link at this time - which is how Advanced Roadmaps link custom hierarchical levels.

Parent itself is only for Sub-tasks :)

Did you find an alternative resolution?

Ste


Tags: advanced-roadmaps

board

cloud

csv

epic

import

issue

issue-link

json

project

roadmap

sprint

sub-task

task

template