Jump to a Section
  • Assign If

    Assign a value based on the true or false result of a conditional statement. (If you have more than two potential output values, see Lookup.)

    Input Fields

    • value a: the value to be compared
    • comparison: what comparison to make (see table below)
    • value b: the value to compare against
    • value if true: the value to assign to the output field if the comparison is true
    • value if false: the value to assign to the output field if the comparison is false

    IMPORTANT: Be sure to set the type of value a and value b 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.

    Output Fields

    • output: the value generated based on the true or false result of the conditional statement
    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).
  • Continue If

    Continue or halt the Flow based on the result of a true or false conditional test. Use Return Error If instead if you want to halt the Flow with an error when the condition is true.

    Input Fields

    • value a: the value to be compared
    • comparison: what comparison to make (see table below)
    • value b: the value to compare against
    • message: an optional value to return when the condition is false and the Flow stops

    IMPORTANT: Be sure to set the type of value a and value b 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.

    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).

    Output Fields

    No output fields.

  • If/Else

    Use an If/Else conditional statement to determine the steps that should be followed by the Flow.

    When the condition you specify is evaluated, depending on whether the result is true or false, the Flow follows a specific sub-path of Action and Function cards prior to returning optional Outputs, and then continues with the rest of the Flow.

    The If/Else card has three sections:

    • Condition: Specifies the comparison (a true/false statement)
    • Branches: Specifies the Actions and Functions to execute based on the result of the condition.
    • Output Fields: Specifies the optional Outputs for the If/Else card, after the proper path has run.

    Condition: Defining a Comparison Statement on an If/Else Card

    • value a: the value to be compared
    • comparison: what comparison to make (see table below)
    • value b: the value to compare against

    Click Done to advance to the next step. Afterwards, click on the condition to return to this step.

    NOTE Be sure to set the type of value a and value b 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.

    Table of Relational Operators
    Operator Use Case
    equal to Compares two texts, numbers, dates or true/false to see if they have the same value
    not equal to Compares 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 Compares two texts, numbers or dates to see if the first has the same or lesser value than the second.
    greater than Compares two texts, numbers or dates to see if the first has a greater value than the second.
    less than Compares two texts, numbers or dates to see if the first has a lesser value than the second.
    a multiple of Compares two numbers to see if value a is an exact multiple of value b. For example, 12, 0 and -4 are all multiples of 4, but 2, 3 and 7 are not.
    in Compares two texts to see if value a is a part of value b. For example, “test” is in “this is a test”, but there is no “i” in “team”)
    not in Compares 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. For example, 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 This operator works only for text and objects.
    is not empty Checks to see if value a is not empty. NOTE This operator works only for text and objects.

    Branches: Defining Branch Paths on an If/Else Card

    You can specify the Action and Function cards to execute based on the outcome of the comparison. The two branching paths are shown when you click “Done” after defining the Condition.

    Actions and Functions within the upper orange container in the Branches tab are executed in sequential order if the conditional statement provided by the Input Fields returns true. Likewise, Actions and Functions within the lower blue container are executed in sequential order if the conditional statement returns false.

    You can include any number of Actions within each container. It is also possible to nest an If/Else within another If/Else, which can enable you to create many different branching paths, all with their own set of Actions.

    Output Fields: Adding Output Fields to an If/Else Step

    The Create Outputs button allows you to add optional Output fields to the entire If/Else step. Their values are assigned after either of the two branches has completed, before moving onto the next Action or Function in the Flow.

    To add a new output field:

    • Click the “Create outputs” button if the outpane box is not visible at the right.
    • Type the desired name in the Outputs box at the right.
    • Choose the proper type (e.g. Text or Number) for the output.
    • Provide the value for the output for the case where the true branch was run and for the case where the false branch was run. You can drag/drop from the corresponding branch or click inside the box to choose from the outputs of the steps that ran within that branch.
  • If/ElseIf

    Specify different actions to run based on multiple if and else if conditions (similar to Switch or Case in some programming languages). To specify different actions based on a single condition, you can use If/Else instead.

    The function give you something that looks more like a container than a card, allowing you to specify:

    • Conditions - the list of conditions (true/false statements) that determine which branch to run.
    • Branches - the Actions and Functions to execute based on which condition is first met; otherwise, the Else branch runs.
    • Outputs (optional) - output fields that can be used in subsequent steps of the Flow. The value assigned to each output depends on which branch was run.

    Conditions

    When you create a new If/ElseIf, the first step is to define your Conditions. Conditions are true/false expressions, such as Sales > 1000. As with similar cards like If/Else and Continue If, conditions are expressed using three inputs each: value a, comparison, and value b. The values can be mapped fields (e.g. an output from an action card) or constants you type in. See below for a chart the different comparison choices.

    When your Flow runs, the conditions are tested starting at the top and the corresponding Branch (a set of actions and functions that you provide) will run for the first (and only the first) condition that is true. If none are true, then the Else branch is run.

    When you’re ready to define the actions for when a condition is met, click the “+” button to the right of that condition. Alternatively, you can navigate to different branches using the dropdown at the top left: choose the condition that corresponds to the branch or click “Edit Conditions” to edit or add new conditions.

    IMPORTANT: Be sure to set the type of value a and value b 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.

    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).

    Branches

    Each branch contains the actions and functions you wish to execute when its corresponding condition is true. Add cards to this container just as you would in a Flow.

    Use the dropdown at the top left of the When container to navigate to a different branch or to edit or add new conditions.

    NOTE: Return and Continue-If behave differently when inside an If/ElseIf branch as opposed to inside an If/Else branch. Think of If/ElseIf branches as anonymous child Flows – and just as with a child Flow, a Return returns you to the parent rather than halting. A Return or Continue-If (when false) proceeds to the step immediately after the If/ElseIf.

    Output Fields (Optional)

    You can drag outputs from cards that run before the If/ElseIf into a condition or branch inside the If/ElseIf, but you cannot drag outputs from inside a branch to cards that are run after the If/ElseIf. This is because an output from inside a branch will be undefined any time a different branch is run. The way to get around this is to use the optional Outputs feature.

    You access the Outputs by clicking View Outputs, which can be found on the top-right of the If/ElseIf container. This opens up a pane that appears to the right of all branches. Click to add a new output – you can type the name and choose the type. Beneath each output you define will be one input for each If or Else If condition you’ve defined for your If/ElseIf plus one for the Else condition. You specify a different value to use for each output by dropping in an output from the corresponding branch.

    The Outputs in this pane can be mapped to subsequent steps in the Flow.

  • Lookup

    Convert one value to another using a lookup table, e.g. one web service code to another web service code, a department name to a contact email, etc.

    Input Fields

    • Value: _(text)_ The value you want to look up
    • Lookup Table:  Click the bottom row to add new rows. Click the x at the left of a row to delete a row.
      • When Value Is: _(column - text)_ The possible input values
      • Then Result Is: (column - same type as Result output) The corresponding results for each value
    • Otherwise Result Is: (same type as Result output) The result to use if there are no matches in the lookup table

    Output Fields

    • Result: The result of the lookup. If an exact match is found for Value in the When Value Is column, then Result is set to the corresponding value in the Then Result Is column; otherwise, Result is set to the Other Result Is value. Defaults to type text. If you change the type, then it also automatically changes the type for the Then Result Is column and the Otherwise Result Is input.

    See Also

    For advanced scenarios, consider also:

    Tables - best for large lookup tables, tables that are frequently changing, and/or tables that are shared by multiple Flows.

    Object - Construct and Get - for lookup tables where the potential values for the result are not known in advance (i.e. are set by outputs when the Flow runs). Build the object at runtime using Construct and then use Get to do the lookup. (Alternatively, you can also do this using nested If/Else or successively linked Assign If functions.)