Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Get position of specific value block in {{webResponse}}

Svante Gustafsson Björkegren
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 16, 2025

Hey community,

I am trying to get one specific element in an array returned in a {{webResponse}} in Automation. I have found the method .get() which requires the number of the position of the element and it works fine. 

The position is different by the runs which means that I need this to be dynamic. My first try was to use a smart value as the position, like:

{{webResponse.body.data.get({{myPosition}})}}

but the get-function does not support smart values like this.

My example is this: I have the following webResponse returned in my automation:

{
"data":
[
{
"id": "A",
"name": "foo"
},
{
"id": "B",
"name": "bar"
},
{
"id": "C",
"name": "baz"
}
]
}

In my automation I now want to get the name attribute for the element having id == "B", i.e. "bar"

Is there a way to get that specific element from the webResponse using any filtering or parsing so that I can use the element in later actions such as:

{{webResponse.body.data."id==B".name}} => "bar"

Looking forward to hear back from you!

Cheers,

// Svante

2 answers

1 vote
Bill Sheboy
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 17, 2025

Hi @Svante Gustafsson Björkegren 

Short answer: the inline, list function get() requires a number, and it cannot take a Created Variable directly.  There are several workarounds, assuming your myPosition is a Created Variable.

 

Force the correct number typing for the get() function.  There are two versions of the get() function: one for inline, list iteration and one for lookup tables.  The list version suffers a known limitation where many functions cannot use a Created Variable as a number parameter, even when converted using asNumber.  The problem seems to be the value type stays "text" in the function call, even though it is converted to a number.  (Aside: the newer get() function for lookup tables does not have this limitation.)

As I described in this article, there is a workaround to force the type as a number by ensuring the first thing the get() "sees" is a number.  This may be done by adding another, empty created variable, such as with:

  • action: Create Variable
    • name: varNull
    • smart value: {{null}}
  • action: Create Variable
    • name: myPosition
    • smart value: whatever you are doing to set this value
  • Something that needs the record from the webresponse
{{webResponse.body.data.get(varNull.length().plus(myPosition.asNumber))}}

How that works is:

  1. Creating the varNull variable with an unknown smart value, {{null}}, creates an empty string
  2. We get the length of the empty string, which is 0, and so the first type entering the get() function is a number (specifically, an integer)
  3. We add to that your variable, and this time the asNumber function works because math functions such as plus() can correctly handle the conversion of text to number

I recommend trying this approach before the other two.

 

Branch and test with a condition (as @Tomislav Tobijas suggested with the link to that article).  This approach may not help if the parallel processing / asynchronous behavior of branches does not fit with your rule structure.

 

Dynamic list searching using a regular expression.  This approach is likely not needed with the number get() you are trying, and is more relevant for complex searches of list data with text.  Please see this article I wrote to learn more about this technique.

 

Kind regards,
Bill

1 vote
Tomislav Tobijas
Community Champion
August 17, 2025

Hey @Svante Gustafsson Björkegren ,

You might want to check this resource: JSON Queries in Jira Automation 

Based on the article above, maybe something like this would work:

  1. Use an "Advanced branching" action on {{webResponse.body.data}}

  2. Inside the branch, add a condition: If {{item.id}} equals "B".

  3. In the "Then" branch, use {{item.name}} (which will be "bar" in your example).

I believe we constructed something like this a while back, but I've lost track of that automation to check it out 😅

Bonus, here's another feature request that might be relevant to the use case: AUTO-1682: Add support for find() and filter() functions in automation smart values 

Cheers,
Tobi

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
CLOUD
PRODUCT PLAN
FREE
TAGS
AUG Leaders

Atlassian Community Events