Changes to Workflows? Displaying arrays instead of a single value for JSONPath filtered results

We have several email notifications being generated via Workflows. These notifications contain several different inline variables which are being generated with JSONPath filters.

$.trigger.changes[?(@.attribute == ‘manager’)].newValue.name

The notifications displayed normally in the emails through 2/3/21.
ex. New Manager: Joe Smith

Starting 2/4/21 the values started showing up with Array brackets.
ex. New Manager: [Joe Smith]

Anyone else noticing this change? Did I miss a notification about the change?

Recently, there have been some enhancements to the jsonpath implementation of Workflows, supporting more of the Jayway extended operators. Before, an array with a single item would be returned as that single item. As a result of the enhancement, filtered results will always return an array now. Engineering is aware of this issue and is working on a fix to return it to the previous behavior.

We are experiencing similar issues, when can we expect the fix?

You all could’ve made a PSA in order to notify this issue instead of having to ask “Why is this not working?” in the developer forum. It broke our whole user invitation process. We need a fix ASAP.

Do you have any plans to add an action to handle variables within the workflows?
instead of making your own implementation of classpath, keep the standard one but give us the functionality to get these values, for example if the output is an array, in this action you could get one of the elements based on some condition.

I apologize for the delay in releasing an announcement. The announcement has been posted here: Workflows JSONpath Issue: Array brackets always present when using filters

Our engineers are hard at work on fixing this, and we will keep the announcement post up to date with the latest information.

A fixed has been deployed. Please let us know if you experience any issues.

1 Like

Have you ever thought of adding an Action that supports Transforms? The functionality is very limited, and it could help us to have more options to manipulate the data, not having to resort to hacky ways.
These implementations could be broken again in the future since the operation of the original library is not respected, as in this case it should return an array. If we had some way to process these arrays, we could extract the values.