A flow is triggered by an HTTP request whose JSON body sometimes contains customer.address.city and sometimes omits the address object entirely. The flow must read the city when present and continue with a null value when it is missing, without the action failing. Which expression should the developer use?
Select an answer to reveal the explanation.
Short Explanation
The question mark is your seatbelt: if a property isn't there, you get null instead of a crash. Put it before every level that might be missing, and the expression just shrugs and keeps going. The trap is wrapping an unsafe lookup in coalesce, which fails before coalesce ever runs.
Full Explanation
Workflow expressions support a safe-navigation operator: placing a question mark before a bracketed property name returns null when that property does not exist instead of raising an error. Chaining the operator at each level means a missing customer, address, or city all evaluate to null, which the flow can then test or replace. Plain bracket access without the operator throws a runtime error when any level is missing, because the expression tries to read a property from a null or absent object, and the action fails. Wrapping that unsafe access in coalesce does not help: the arguments are evaluated before coalesce runs, so the failing property access errors out first, and passing null as the fallback adds nothing even when the lookup succeeds. Dot notation with JavaScript-style optional chaining is not workflow expression syntax; the language uses bracket access with the question-mark operator, and the property path written that way does not evaluate as intended. Exam caveat: the safe-navigation operator applies to object properties; indexing into an array that may be empty needs a separate check such as testing the length or using first. Operational check: send two test requests, one with the address object and one without, and confirm both runs succeed and the second shows a null city in the run history.