Find

Find the first item in a list that meets a specified condition. (To find based on more complex criteria, use Find Custom)

Input Fields

  • list(list of objects): the list to start with

  • operator(drop down menu): what comparison to make (see table below)

  • path(text): leave blank when searching within a list of text, numbers, or date/time. When searching within a list of objects, path is the name of the key that holds the value you want to compare. Use a period to specify a path to an object inside another object (e.g. "customer.id").

  • comparison: the value to compare against

IMPORTANT: Be sure to set the type of the input list and comparison to reflect how you would like the comparison to be done. For instance, the operator "greater than" compares numbers based on numeric value but text based on alphabetical sort order. So the number comparison 80 > 9 is true, but the text comparison "80" > "9" is false.

Use Find Custom if you require more options to determine if the item is a match. Use Filter or Filter Custom to find all of the elements in a list the match a criteria.

Output Fields

  • item(object): the first item in the list that meets the specified criteria.

  • index(number): the location of the found item in the original list, where 0 is the first item in the list. Returns -1 if there is no match.

Table of Relational Operators

Operator

Use Case

equal to Compare two texts, numbers, dates or true/false to see if they have the same value
not equal to Compare two texts, numbers, dates or true/false to see if they have different values
greater than or equal Compare two texts, numbers or dates to see if the first has the same or greater value than the second.
less than or equal Compare two texts, numbers or dates to see if the first has the same or lesser value than the second.
greater than Compare two texts, numbers or dates to see if the first has a greater value than the second.
less than Compare two texts, numbers or dates to see if the first has a lesser value than the second.
a multiple of Compare two numbers to see if value a is an exact multiple of value b. (e.g. 12, 0 and -4 are all multiples of 4, but 2, 3 and 7 are not.)
in Compare two texts to see if value a is a part of value b. (e.g. “test” is in “this is a test”, but there is no “i” in “team”)

not in

Compare two texts to see if value a is not part of value b.

has key

When value a is an object and value b is text, tests to see if the object has a key with the specified name. (e.g. true if value a is {“test”:123} and value b is “test”)

doesn't have key

When value a is an object and value b is text, tests to see if the object does not have a key with the specified name.

is empty

Checks to see if value a is empty; ignores value b. What defines “empty” varies by type. Note: Only works for Text and Object. (Numbers, Dates, T/F, are viewed as empty).

is not empty

Checks to see if value a is not empty. Note: Only works for Text and Object. (Numbers, Dates, T/F, are viewed as empty).

Examples

If the input list is [1,22,30,4,35,46] and operator is "greater than", path is left blank, and comparison is 30, then the result item is 35 (the first number in the list greater than 30) and index is 4.

If the input list is [{"name":"Bob","department":"Sales"}, {"name":"Sarah","department":"Engineering"}] and operator is "equal to", path is "department", and comparison is "Engineering", then the result item is {"name":"Sarah","department":"Engineering"} and index1, the first object in the list, in index position 1, where department is "Engineering". If you ran the same check but with comparison "Marketing" then the result item would be {} and index-1 since no objects match.

See Also

About lists

Functions

About the elements of Okta Workflows