Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Link Automation from Description

I developed an automation that parses a Description and saves the IssueKey from any number of URL/Links in the Description. The list of ID's is then used to create Issue Links.

It works, but; two questions

  1. Is there a better RegEx expression?

    Step 3: {{issue.fields.description.match("([\/][A-Z0-9]*[-][0-9]*[^]|^#|^\s])")}}

  2. Is there a more efficient automation flow?

screenshot-2021.11.12-08_23_44 (1).png


  Step 5: {{linkIssueKey.replace("/", "")}}


1 answer

Hi @Hank 

If you provide an example of your summary, the community may be able to offer suggestions about the regular expression.  For example,

  • could there ever be more than one linked issue in the summary?
  • are any linked issues in the summary *always* in the same project as the trigger issue?

For your question about "more efficient automation flow", what do you mean?  For example to do this in fewer steps (rule components) you could concatenate all the string manipulations into one expression.  Other than branches, lookups, web requests and re-fetch, performance may not be an issue for many rules, such as this one.

Kind regards,

Hi Bill, I think an ideal solution would allow for any number of issue URL's in the description, and in any location.

I realized that our Description is a Wiki Markup type (default), this means that the  ,match() function is parsing the raw text behind what the user sees in the Screen.  Here's the raw Wiki text from one example Description: 

"As a WV Patient I need to easily understand the Product Information on key pages, such as product pages, shipping information, etc. so that I can make a better decision, quickly on where to invest more of my time. Note: This story is to fix some of the font colors/size etc for better user experience. UP9-9999\n\n


[|] \n\n


[|] \n\n

end more\n\n


test 2",

In this case, the result from the .match() should be:

(UP-7930, UP-6744, UP-6396, UP-5746)

This list can then be input to Create Links


Hi, Hank.

If you have RegEx that works, I would stick with that and consider combining your text and list functions to put the key list as comma-separated values (CSV) in one variable.

Now comes the tricky part...I have learned it is not possible to successfully use advanced branching to repeatedly update one issue, even when adding a re-fetch action.  One or more of the asynchronous loops will walk over the updates.

That leaves one option when adding more than one link in one rule: dynamically build a JSON string to perform the update.

Using list iteration you would build/combine an "add" string for each link, combine into one variable, and then use that in the JSON update.

I recommend building this and just writing to the audit log until you think it is correct, and then try it in the JSON update.  That will save some debugging of errors.

Kind regards,

Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Apps & Integrations

Partner Webinar Opportunities: January 2022

Hi everyone 👋, I really like the format of the webinar opportunities summary that @Jimmy Seddon posts monthly on the Welcome Centre group. It's a great place to go to check that you didn...

144 views 3 11
Read article

Community Events

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

Find an event

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

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you