Supported Formulas

Formulas will update reactively (automatically) if they reference reactive components and include any of the following formula operators:

  • +
  • *
  • /
  • =
  • <>
  • <
  • >
  • <=
  • >=
  • &
  • Ident
  • Mod
  • Max
  • Min
  • Round
  • Isnumber
  • Isnull
  • Isblank
  • And
  • Not
  • Or
  • Abs
  • Sqrt
  • Ceiling
  • Floor
  • Mceiling
  • Mfloor
  • Log
  • Exp
  • Ln
  • Text
  • Value
  • Len
  • Left
  • Mid
  • Right
  • Begins
  • Contains
  • Trim
  • If
  • Case
  • Nullvalue
  • Blankvalue
  • Date
  • Day
  • Month
  • Year
  • Today
  • Now
  • Hour
  • Minute
  • Second
  • Weekday
  • Upper
  • Lower
  • Find
  • Datevalue
  • Datetimevalue
  • Ispickval

Additional Support Considerations

  • Global variables such as Custom Labels / Custom Settings/ /$Organization/$Profile (etc) are not reactive, but $Flow is
  • Cross-object references in formulas that reference fields on the same screen are not reactive
  • Self references in a formula where a formula references the field that the formula is bound to can create issues. If you need to prepend or append text to an input, see the section on Appending / Prepending Text
  • When referencing a conditionally visible component that is currently hidden, its value will be set to null. Plan for this scenario in your formulas when referencing a component that could potentially be hidden.

Appending / Prepending Text

    • If you want to append text to the existing text in an input, you need to first check for the presence of what you are trying to add to prevent potential infinite recursion. In the example below, the goal is to prepend the string ‘ESCALATED’ to an existing string when a set of conditions are true. To prevent a runaway situation where the string keeps getting added, the formula checks to see if the string already has the ESCALATED string.
        IF(
OR(
AND( {!escalateCase} = true,
ISBLANK({!Lets_See_some_Appended})),
AND( {!escalateCase} = true,
NOT(BEGINS({!Lets_See_some_Appended},"[ESCALATED]")))
),
"[ESCALATED]" + {!Lets_See_some_Appended},
{!Lets_See_some_Appended})
  • Because the BEGINS function treats blank values as TRUE, when using it you may need to account for scenarios where the input you’re evaluating is blank.
  • SUBSTITUTE isn’t supported in the supported functions list for reactivity (meaning you cannot remove text), if you are adding text to an input like the above example, that means you are stuck with that [ESCALATED] text regardless of that checkbox being checked. Keep this experience in mind when creating your flows.

DISPLAY DIFFERENCES

  • The appearance of Date Times and Dates may change when reactively updated.
  • When referencing a DateTime field from a Date Time or DateTime field from a data table and mapping to a Text field using a formula, the reactive values are displayed in UTC format. See this and this.
  • When mapping a DateTime field to Text, the value will be converted to GMT and stay converted if navigating between screens. If mapped to a DateTime field, the locale will be preserved.
    • Examples
    • image.png