JWT is capable of processing values from multiple sources (e.g. issues, custom fields etc.). These sources are called seeds.

The following seeds are available:

If values from a seed source are needed to perform actions, the field codes need to be precedented with ^ or the word seed.

%{seed.issue.summary} # is the same as
^%{issue.summary}

JWT iterates over each seed and performs an action based on the values being found or specified. Whatever function or action you specify will be performed for each seed JWT recognizes.

Hier wäre doch ein Screencast wunderbar (smile) "Seeds in 60 seconds" - Oder erklärende Grafiken

Examples: to be linked and created

Create three subtasks and use each of the three current components as a summary - each component is a seed string
Create a task for each Epic returned by a JQL query - each epic is a seed issue
Add 4 comments - 4 is a seed number (since JWT will perform the action 4 times)



Probably most of the time, doing things with the help of JWT is related to a single object - the issue currently being transitioned, e.g. by adding a comment, updating a field, sending an email, etc.

Referring to the current issue's information can be done by using a simple Field code like %{issue.description}.

However, since you can also use more complex functions in JWT that work with multiple objects, this simple notation is not sufficient for those use cases. To name a few examples

Whenever Jira Workflow Toolbox has to handle (or iterates over) multiple elements of a list (or sources), those elements are referred to as seeds. Depending on the type of list, those are referred to as 

Seed issues

Issue lists can be specified by JQL queries, issue list expressions, or (in some post functions or automation actions) the selection of explicit options, e.g. Issues under Epic.

When dealing with issue lists, the notation for accessing values of each element is %{seed.issue.someField}, e.g. %{seed.issue.summary}

Workflow functions and automation actions

You might face seed issues when trying to create/update/transition multiple issues.

Create issue post function or Create issue action

Given a custom JQL that returns three issues

Creating issues based on this JQL, the post function will run three times, where the following values will be returned throughout those three runs

Run%{seed.issue.key}%{seed.issue.summary}
1DEMO-1Issue A
2DEMO-2Issue B
3DEMO-3Issue C

In general, using the seed notation, the nth run returns the field values of the nth issue from this list.

This works exactly the same when choosing the Issue list mode, e.g. given the expression parser function linkedIssues() returns the same issues like shown before, the result 

Further workflow functions and automation actions using seed issues

Expression parser functions

List functions like mathOnIssueList() or textOnIssueList()

(warning) tbd.

Seed texts

Text lists can either be static, e.g. ["firstElement", "secondElement", "thirdElement"], or composed dynamically by using the toStringList() expression parser functions, e.g. toStringList(%{issue.components}) or toStringList(%{issue.%{issue.cf123456}}) (where the custom field with the ID 123456 is a multi option custom field).

When dealing with text lists, the notation for each element %{seed.text}.

Workflow functions and automation actions

Create issue post function

Given the example of a static list above, the post function will run three times and the following values will be returned throughout those three runs

Run%{seed.text}
1firstElement
2secondElement
3thirdElement

Given a dynamic example, having selected the components Frontend and Backend on an issue, the post function will run two times returning the following values for each run

Run%{seed.text}
1Frontend
2Backend

After adding a third component Interface, the post function will run three times returning the following values for each run

Run%{seed.text}
1Frontend
2Backend
3Interface

That said, composing a summary with an expression like

"Summary of " + %{seed.text} + " Issue"

would result in three issues, named

Further workflow functions and automation actions using seed texts

Expression parser functions

List functions like mathOnStringList() or textOnStringList()

(warning) tbd.

Seed numbers

Number lists can either be static, e.g. [1, 2, 3], or composed dynamically by using the toNumberList() expression parser function.

Single numbers can either be static, e.g. 3,  or calculated by using expression parser functions.

When dealing with number lists, the notation for each element is %{seed.number}.

Workflow functions and automation actions

Create issue post function or Create issue action

Given a static example with the numeric value being 3 in order to create three issues, the following values will be returned for each run

Run{seed.number}
11
22
33

That said, composing a summary with an expression like

"Summary of Issue #" + %{seed.number}

would result in three issues, named

Further workflow functions and automation actions using seed numbers

Expression parser functions

List functions like mathOnNumberList() or textOnNumberList()

(warning) tbd.