CSV Importing of 'sub-tasks' and linking to existing 'Story'

I would like to import 'Story' and 'sub-task' from CSV to JIRA linking the sub-tasks to New or existing Stories (e.g. TEST-422)

The example I found in the documentation of a similar CSV is of:

Issue Id, Parent Id, Summary, Issue Type
 1, , Test, Story
 2, 1,ST For Test, Sub-Task
 3, 1,ST For Test, Sub-Task

 

But this cannot be used as I do not have the 'Issue ID' for the new or existing stories, only the 'Issue Key' or in some cases only the issue textual title (summary)

Would appreciate a simple example on how this could be done. 

7 answers

1 accepted

11 votes
Accepted answer

You do need the Issue ID for subtasks - this is the one single unique identifier for the parent issue, and without using that, there's no reliable standard way to add subtasks to a parent.  Summary isn't good enough, it's perfectly possible to create issues with duplicate summaries.

So, there are two possibilities to talk about here.

  1.  You already have issues in JIRA, and want to create subtasks.  You need to add a column to your CSV that contains the issue ID of the parent - i.e TEST-422 (if you have a mix of sub-tasks and non-subtasks, you leave it blank for non-subtasks)
  2. Your data contains a mix of parent and sub-tasks to create

The second sounds like what you are trying to do, and it's a bit of a faff, although I can't see any more simple way to do it really.

Create TWO columns in your CSV.  Call one of them something like "Sequence" and the other "My Parent".  The sequence is effectively going to be a temporary unique id for JIRA to look at when trying to create subsequent subtasks, and the parent field is the thing to tie them together.

Taking your example (and repeating it a bit for hopefully improved clarity)

Your data is:

  • Issue-a
  • Subtask-a1
  • Subtask-a2
  • Issue-b
  • Subtask-b1
  • Subtask-b2

You need to create CSV

  • Sequence, My Parent, Summary
  • 001, ,Issue-a
  • 002, 001,Subtask-a1
  • 003, 001,Subtask-a2
  • 004, ,Issue-b
  • 005, 004,Subtask-b1
  • 006, 004,Subtask-b2

What JIRA does here is look at, but not import, the "Issue ID" column.  The column is there to provide a simple unique identifier in the csv, not in JIRA.

The second column says "I am a subtask, and I belong to the line in the CSV with the Issue ID of xxx".  Again, JIRA will not import it, it is just for tying subtask to parent during the import.

Note - I've always done this using a simple sequential number for "Issue ID" - spreadsheets can do a simple click and drag trick or use a formula for "cell above + 1" to generate the sequence.  Obviously, these need to be unique, but I don't really know that they have to be sequential.  Also, I think order matters - I've always ensured that a parent issue is higher in the CSV that any of it's subtasks.

Thank you Nic!

Your answer clarified very well to me how to add new Stories and Sub-Tasks together in a CSV (2)

Is there a way to do option (1) -  add sub-tasks to existing JIRA Stories?

Is there a way to get the Issue-ID to be added to the CSV? (maybe by using the Issue-Key?)

I have no problem adding this manually to the CSV after looking it up, just need to know how.

 

Like 1 person likes this

As I said for 1, use the existing issue ID

I am not sure I know how to get the it: The Issue-Key is the visible name that changes per JIRA DB (e.g. TEST-422) The issue-ID should a non-changing key ; where is it made visible for existing JIRA items (stories)?

Oh, sorry, I've used the phrases unclearly. The key (test-422) is the one you need to use in your csv. The issue-id (10255) is rarely exposed to the users directly and is not really made visible anywhere.

it's not working. I did exactly the same as you sampled.

doesn't work. The sub-tasks get created as orphans when trying to import to existing stories

Add sub-tasks to existing Story through .csv upload

Hi Everyone,

I seemed to have find a way to do it yesterday after many frustrating attempts.

When you create your .csv file, include a column with the Parent ID (The story you are trying to link your subtasks to) but also an Epic Link column (Here you will have the name of the Epic, the Story is linked to).

Please let me know if it works for you!

 

Guys,

I've just figured out that the value of Parent ID needs to be taken from External Issue ID of existing issue.

In other words, the Issue ID mentioned in documentation when importing issue and subtasks from CSV file is External Issue ID, not the id you will see in the issue 's url (it is internal ID)

Cheers!

 

 

Yes, that was in the original answer:

What JIRA does here is look at, but not import, the "Issue ID" column.  The column is there to provide a simple unique identifier in the csv, not in JIRA.

The second column says "I am a subtask, and I belong to the line in the CSV with the Issue ID of xxx".  Again, JIRA will not import it, it is just for tying subtask to parent during the import.

oh yes, for new issue with linking subtasks, it is as you have described. However, for existing issue, in case I need to import subtasks to that issue, I will need to use external issue ID

Hi Nic,

I have a common set of stories and tasks which are applicable for all projects. I need to add those stories and tasks in a project through .CSV file. Can you share with me the .csv format. I need to add tasks in Kanban board.

Thanx.

I tried Nic's solution for Scenario 2 but failed. I tried both "Epic & Story" and "Story & Sub-task" combination and neither succeeded. 

- In the "Mapping Fields" step, if I don't map "sequence" field and "My Parent' field, Jira just ignore them. (I am wondering how Jira can parse such two user-defined columns and link them smartly? The column names are not any of the Jira keywords. How does Jira know it needs to link them together?)

- If I mapping the 2 new fields to some existing fields such as "Issue ID" and "Parent ID", then I get an error message that the ID is invalid.

Am I doing something wrong?

Like 1 person likes this

Add sub-tasks to existing Story through .csv upload

Hi Everyone,

I seemed to have find a way to do it yesterday after many frustrating attempts.

When you create your .csv file, include a column with the Parent ID (The story you are trying to link your subtasks to) but also an Epic Link column (Here you will have the name of the Epic, the Story is linked to).

Please let me know if it works for you!

Here is how I was able to import Stories with Subtasks successfully. 

For testing purposes, I kept the columns simple:

Parent id, Issue id, Issue Type, Summary

Screen Shot 2018-11-01 at 3.28.11 PM.png

Jira only uses the Parent id and Issue id for mapping purposes so you can use whatever number scheme you want. For a Story, you leave Parent id blank. For a Sub-task, you use the Issue id of the Story. I still used an Issue id for the Sub-task. 

I then mapped:

Parent id > Parent id

Issue id > Issue id

Issue Type > Issue Type

Summary > Summary

Screen Shot 2018-11-01 at 3.33.33 PM.png

On the next screen, I verified the values from the mapping and clicked Begin Import.

Screen Shot 2018-11-01 at 3.35.02 PM.png

And walla!

Screen Shot 2018-11-01 at 3.36.30 PM.png 

I was able to import Subtasks using a similar process to the above.

Screen Shot 2018-11-01 at 3.52.42 PM.png

The exception is for Parent id I used the Key to the Story.

The result:

Screen Shot 2018-11-01 at 3.54.58 PM.png

Excellent and clear breakdown. Followed this and had no issues whatsoever. One of our teams needed some help with repetitious task creation in the Cloud JIRA and as the admin I said I would help. This makes it so much easier.  Mahalo nui loa

Hi Jason,

Thanks for the detailed breakdown. Quick question for you, are you using JIRA Server or Cloud?

We're on the Cloud instance, and I don't have the option for an "Issue Type" during the import. Do I need to configure something in the JIRA Settings?

My import screen also looks different... it doesn't include any of the comments about sub-tasks at the bottom.

Screen Shot 2018-11-29 at 1.03.03 PM.png

After spending a day trying to figure this out, here is the solution.

First, confirm that this functionality exists on your instance:

  1. go to JIRA Settings > System > External System Import.
  2. Attempt to upload a file and confirm if you have access to Issue Type.

If you do, this means that your JIRA instance supports the ability to map issue type for a CSV import, but that your edit screen is not configured. If you do not see this setting, unfortunately I do not have a solution.

 

In the case that you did see the Issue Type in the External System Import tool, you can modify your edit screens to allow all users to add Issue Type during an import. To do this:

  1. Navigate to Project Settings > Screens.
  2. Click on Action in the top right corner and select Edit Screens
  3. Next to Default, click on the Screen Scheme link
  4. Next to Default (again), click on the Screen link
  5. Under the Field Tab, scroll to the bottom of the screen and add Issue Type from the Select Field... drop down.

You should now be able to select issue Type from the standard issue importer when adding tickets as a normal user.

Thank you Jason Odra, the screenshots helped a lot!!!

Can you link stories and task together via CSV import? Issue type Story and task (not sub-task).

For anyone else reading this thread, Nic Brough's original post above works perfectly (contrary to some other comments in the thread). 

If you are trying to both add sub-tasks to existing stories and create new stories with new subtasks in the same import, I would suggest breaking your data up into 2 separate CSV files (one for each scenario) and doing 2 separate imports. That will simplify things quite a bit.  Follow Nic's instuctions above exactly as described for the 2 different scenarios and it will work perfectly.

To add subtasks to existing stories, this is all you need to do (Paraphrasing from above):

  1. Add a column to your sub-task CSV file that contains the Issue Key of the parent (e.g. TEST-422)
  2. Leave the Issue ID column blank.
  3. Map the 'Parent ID' column you created to 'Issue Key' in the import template.
  4. Do your import

Thanks Nic!!!! You saved me a TON of time!

Hii Steven,

I'm getting the below error while importing the second sheet which consists of all the tasks with Parent-ID. Can you help me out please.

"You have to define which CSV column maps to Issue Id if you want to import sub-tasks."

 

Thanx for your support.

Hi M Shaikh,

I'm not sure I totally understand what you are doing with your second import, but if you want to import stories with subtasks, and do it in two steps as I suggested you will have to do the following,

1. Create a CSV file with all of the stories you want to create (No subtasks).

2. Import those stories into Jira. (At that point you can get the Issue ID's from your parent stories that are necessary for mapping your subtasks).

3. Create your CSV file with your subtasks identifying the parent story for each subtask by using the IDs you got above. 

Your subtask file columns should look like this

Issue ID | Parent ID | (The rest of your columns)
<Blank> | DEMO-1234 | (Additional column Data)
<Blank> | DEMO-1234 | (Additional column Data)

Each subtask associated with a given parent should have the same Parent ID.

4. Map Parent ID in your file to Issue ID on the import mapping screen.

5. Import your Subtask CSV file.

That should do it. Let me know if that answers your question, and works.

Like 1 person likes this

Hi Steven Marusic - 

there appears to be a contradiction above.

(a) In your paraphrasing above, you have " 3. Map the 'Parent ID' column you created to 'Parent ID' in the import template. "

(b) then later you have "4. Map Parent ID in your file to Issue ID on the import mapping screen"

I too am trying import sub-tasks and map to parent where all parent tasks are already in JIRA.

I tried both approaches

(a) mapping parent_id , which is the parent issue key (ex DEMO-1234) to the Parent ID in the import step.   for this, the sub-tasks were created, but are all orphans

(b) mapping parent_id (ex DEMO-1234) to the Issue ID in the import. for this . nothing was imported.

 

 

So I wanted to confirm - which field is the Parent key (from the import file) supposed to be mapped to in the import?  the Parent id or the Issue Id?

actually, I deleted all and did it again, and THIS approach did work:

 - mapped parent_id in the xls, which is the parent issue key (ex DEMO-1234) to the Parent ID in the import step.
- first time thru,with  issue Id not mapped , get error: "You have to define which CSV column maps to Issue Id if you want to import sub-task"
- so I mapped the Issue Id in the file (just some sequential number)  to Issue Id in the import  

 

and it worked! no more orphans. 

 

but this statement must be a typo in the summary above: Map Parent ID in your file to Issue ID

Hi Allison!

Trying to walk through this. I did this awhile ago, and haven't had to do it since, so I don't remember the details. But when I get a few minutes I'm going to walk through it again. If you got it to work the way you described, then that is likely a typo. 

Thanks for pointing it out. I don't want to lead anyone else astray :-).

Steve

Allison,

You are absolutely correct. Statement 3 in my first post should have been 'Parent ID' to 'Issue ID'! Sorry for your wasted time, but thanks for finding the error!

I edited the post above.

Thanks Again!

Steve

no wasted time.. I learned a lot by trying different ways.

thanks for the great summary!.

Glad I could help!

Succeeded importing subtasks to existing issues. 

- you will need 2 separate columns 

a) issue id

- this is the sequential unique identifier (for the subtasks to be linked to existing issues) mentioned in previous post. 

b) parent id

- this is the 'issue key' for existing issues. I was confused by 'id' as I used the "issue id" (the unique number for an issue, start with 5 digit, you can get it by "Export Excel CSV (all fields)")

I am receiving following validation error

  • Subtask '<name of sub-task>' doesn't have a valid Parent Id selection. Issue will not be created.

Even though I have selected a valid parent id from CSV export and its a 6 digit number. Any other pointers ?

 

arun

Succeeded, 

mine worked with using the "Key" field (also used as Rank in ORDER BY function)

using the 5-6 digit Parent Id didn't work

Thank you!!! I had same issue... 

Not sure why Jira maps Parent ID with Issue Key... but finally works :)

Thank you Adriana. This is really helpful! I used Issue Key as Parent ID to import subtasks. It works!

Hi there

I managed to get the import to work correctly, however the sub tasks are not showing on portfolio whilst they show linked correctly in the jira issue screen.

Hi I fixed this, do not use the Epic link as suggested in one of the comments above. Removing the pic link from the sub tasks (which shouldnt have an epic link) resolved the issue.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Wednesday in Jira

Make your Atlassian Cloud products more secure: our NEW admin security guide

Hey admins! I’m Dave, Principal Product Manager here at Atlassian working on our cloud platform and security products. Cloud security is a moving target. As you adopt more products, employees consta...

254 views 0 6
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you