Use Formulas to calculate values based on a submission's fields. Formulas can be used to manipulate text, calculate math values, and evaluate dates. Advanced users can check conditions and generate values.
Getting Started
You can add formula fields from your Form Editor. Drag a Formula field to the page and open it to get started.
Formula functions should be surrounded by {{
and }}
- anything else will be treated as text. You'll need to use a field's variable name to get its value. By default, it's the field name lowercased with underscores instead of spaces. That means Field Name
becomes field_name
.
{{ TITLECASE(primary) }} and {{ TITLECASE(secondary) }}
If the field "Primary" was submitted as "red" and the field "Secondary" was submitted as "blue", the formula above will produce:
Red and Blue
For Multiple Choice fields, use the ELEMENT
function to choose one of the selected options. ELEMENT(field_name, 0)
will select the first option chosen.
Viewing the Formula's Results
If you have a large number of submissions, formula values may not update instantly. The formula above returns the example below. Notice that the "and" was treated as text because it was outside of the {{
and }}
symbols.
Automatic Values
Some values, like created
, updated
, and current_time
, are generated automatically.
created
The date and time that the submission was created. Alias ofcreated_at
.updated
The date and time that the submission was last updated. Alias ofupdated_at
.current_time
The current date and time.
Dates & Times
Use Date formulas to calculate values based on dates and times. In the example below, the formula is IS_ODD( DAY(created_at) )
. DAY(created_at)
selects the day of the month (1-31) from the date the submission was created on. IS_ODD
then checks if the day's number is odd: it returns true
if it is, and false
if it's not.
For submissions where the day of the month is odd, like "05/01/2016", the formula returns true
. For submissions where it's even, like "05/02/2016", the formula returns false
.
Using Conditional Values
Using the IF
function, you can display your own value instead of true
or false
. In the example below, the field "Created on an Odd Day" has been renamed to "Odd Or Even Creation Day". The formula has been changed to:
{{ IF( IS_ODD( DAY(created_at) ), "Odd", "Even" ) }}
IF
has multiple parameters which are separated by commas. The first parameter is the condition. If the condition is true
, it will output the second value "Odd". If the condition is false
, it'll output the third value "Even".
Complex Conditions
The second and third parameters of the IF
function can be functions themselves. For example, the formula below will return either "ODD" or "EVEN".
{{ IF( IS_ODD( DAY(created_at) ), UPPERCASE("Odd"), UPPERCASE("Even") ) }}
The parameters can even be additional IF
functions to create more complex conditions.
{{
IF(
DAY(created_at) <= 14,
IF(
DAY(created_at) <= 7,
"Created in Week 1",
"Created in Week 2"
),
IF(
DAY(created_at) <= 21,
"Created in Week 3",
"Created in Week 4"
)
)
}}
If the day is less than or equal to 14, the first IF
parameter will be run. If not, the second IF
parameter is run.
IF
the day is less than or equal to14
AND
the day is less than or equal to7
- Return
"Created in Week 1"
- Return
AND
the day isNOT
less than or equal to7
- Return
"Created in Week 2"
- Return
IF
the day is NOT less than or equal to14
AND
the day is less than or equal to21
- Return
"Created in Week 3"
- Return
AND
the day isNOT
less than or equal to21
- Return
"Created in Week 4"
- Return
Notes
Formulas should be surrounded by {{
and }}
. Anything else will appear as text.
// Returns "Hello, John", if name is "john".
Hello, {{ TITLECASE(name) }}
Multiple Choice fields return an array of values. To use Text functions like TITLECASE
, you'll need to pick one of the elements. Elements start at 0, not 1, so to get the first value you will need to use ELEMENT(primary, 0)
.
// Returns "Red" if "Red", "Green", and "Blue" are selected for the field "Primary".
{{ ELEMENT(primary, 0) }}
// Returns "Red". If you don't use a second parameter, it will default to 0.
{{ ELEMENT(primary) }}
// Returns "Green"
{{ ELEMENT(primary, 1) }}
Function names are case-insensitive and can have spaces inside the parentheses.
// Returns "HELLO!"
{{ uppercase( "hello!" ) }}
// Returns "Odd" if the field "Number" is odd, and "Even" if it is not.
{{ IF ( IS_ODD( number ), "Odd", "Even" ) }}
Formulas are calculated in the order they appear in the Form Editor. Formulas that come after another formula can reference its value like any other field.
// Returns "BLUE AND AZURE" if the "Colors" formula's value is "Blue and Azure".
{{ UPPERCASE(colors) }}