---
schema_version: "1"
id: ccce99462664ae385bc60b49132019bb426d11e73a629629fc124d09af38c839
title: Dependent Picklists Screen Input Component
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/flow_ref_elements_screencmp_dependentpicklists.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp_dependentpicklists.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 67fb8b51de3fa058f620c93e1fe3c4e0159af260cc4106bbac46678148a54fd9
description: Display picklists in a flow screen in which the options for one picklist depend on the selected value of another picklist. The Dependent Picklists screen component determines which options to display in each picklist by using an existing field dependency in your org. A field dependency connects two picklist fields on the same object.
products:
  - Flow Builder
  - Salesforce Platform
release: "264"
---
# Dependent Picklists Screen Input Component

Display picklists in a flow screen in which the options for one picklist depend on the selected value of another picklist. The Dependent Picklists screen component determines which options to display in each picklist by using an existing field dependency in your org. A field dependency connects two picklist fields on the same object.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;"><a href="https://help.salesforce.com/s/articleView?id=platform.flow_ref_supported_editions.htm&amp;release=264.0.0&amp;type=5" title="Learn about the editions and user interfaces that support Flow Builder. Some Flow Builder features integrate with other Salesforce products that require additional licenses.">View supported editions.</a></td></tr></tbody></table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png)

Note This screen component requires Lightning runtime.

## Configure the Dependent Picklists Component

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png)

Tip Before you add a Dependent Picklists screen component to your flow, define field dependencies for the appropriate picklist fields in your org.

You can select resources from the flow, such as variables or global constants, or you can manually enter a value.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:24%">
          <col style="width:76%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e80">Attribute</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e83">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">API Name</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The API name of the component.</p>
              <p style="margin-bottom:0;">An API name can include underscores and alphanumeric characters without spaces.
                It must begin with a letter and can’t end with an underscore. It also can’t have
                two consecutive underscores.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Disabled</strong>
            </td>


            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>If set to true, the user can’t
                modify the value. The default value is false.</p>
              <p style="margin-bottom:0;">This attribute accepts a resource
                with a Boolean value.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Object API Name</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The API name of the object. The picklist fields that you identify in Picklist 1 API
                Name, Picklist 2 API Name, and Picklist 3 API Name must be associated with this
                object.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value resources. The value is treated as
                text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 1 API Name</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The API name of the first picklist field. For the specified object, this picklist
                field must be the controlling field in a field dependency between Picklist 1 and Picklist 2.
              </p>
              <p style="margin-bottom:0;">This attribute accepts single-value resources. The value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 1 Label</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The label for the first picklist field.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value
                resources. The value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 1 Required</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>If set to <code>$GlobalConstant.True</code>, the running user
                must enter a value.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value Boolean resources.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 1 Value</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The default selection for the first picklist field. Configuring this attribute
                pre-selects an option for the field.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value resources. The
                value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 2 API Name</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The API name of the second picklist field. For the specified object, this picklist
                field must be the dependent field in a field dependency between Picklist 1 and Picklist 2.
                If you display a third picklist field, Picklist 2 must be the controlling field in a field
                dependency between Picklist 2 and Picklist 3. </p>
              <p style="margin-bottom:0;">This attribute accepts single-value
                resources. The value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 2 Label</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The label for the second picklist field. </p>
              <p style="margin-bottom:0;">This attribute accepts single-value
                resources. That value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 2 Required</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>If set to <code>$GlobalConstant.True</code>, the running user
                must enter a value.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value Boolean resources.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 2 Value</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The default selection for the second picklist field. Configuring this attribute
                pre-selects an option for the field.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value resources. The
                value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 3 API Name</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The API name of the third picklist field. For the specified object, this picklist
                field must be the dependent field in a field dependency between Picklist 2 and Picklist 3.
              </p>
              <p style="margin-bottom:0;">This attribute accepts single-value resources. That value is treated as
                text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 3 Label</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The label for the third picklist field.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value
                resources. The value is treated as text.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 3 Required</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>If set to <code>$GlobalConstant.True</code>, the running user
                must enter a value.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value Boolean resources.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e80 ">
              <strong class="uicontrol">Picklist 3 Value</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e83 ">
              <p>The default selection for the third picklist field. Configuring this attribute
                pre-selects an option for the field.</p>
              <p style="margin-bottom:0;">This attribute accepts single-value resources. The
                value is treated as text.</p>
            </td>

          </tr>
        </tbody>
      </table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_note.png)

Note If your org has a namespace, add the namespace to the beginning of the object's API name, and each picklist API Name. For example, if you have a custom object called Insurance\_Agent\_\_c, and your org's namespace is Acme, enter Acme\_\_Insurance\_Agent\_\_c.

## Store the Dependent Picklists Component’s Values in the Flow

The flow stores values automatically. If you store values manually, store the attribute’s output value in a variable.

To store values manually, select **Manually assign variables (advanced)**.

All attributes are available to store in flow variables. Most likely, you must store one of these attributes.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:24%">
          <col style="width:76%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e363">Attribute</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e366">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e363 ">
              <strong class="uicontrol">Picklist 1 Value</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e366 ">
              <p>What the user selected for the first picklist field.</p>
              <p style="margin-bottom:0;">You can store this value in a
                single-value Text variable or a Text field on a record variable.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e363 ">
              <strong class="uicontrol">Picklist 2 Value</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e366 ">
              <p>What the user selected for the second picklist field.</p>
              <p style="margin-bottom:0;">You can store this value in a
                single-value Text variable or a Text field on a record variable.</p>
            </td>

          </tr>
          <tr class="">
            <td data-label="Attribute" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e363 ">
              <strong class="uicontrol">Picklist 3 Value</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e366 ">
              <p>What the user selected for the third picklist field.</p>
              <p style="margin-bottom:0;">You can store this value in a
                single-value Text variable or a Text field on a record variable.</p>
            </td>

          </tr>
        </tbody>
      </table>

![Tip](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_tip.png)

Tip By default, screen components that run on Lightning runtime version 58 and prior have no memory. If a user enters a value, and then does one of the following, the value is lost.

- Navigates to another screen and returns to the component’s screen.
- Pauses the flow then resumes it.
- Navigates to the next screen and triggers an input validation error.

Setting the attribute enables a flow to remember the value. The flow stores the value automatically. If you store values manually, store the attribute’s output value in a variable.

## Set the Component Visibility

Specify the logic that determines when the flow displays the component.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:24%">
          <col style="width:76%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e461">Option</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e464">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e461 ">
              <strong class="uicontrol">When to Display Component</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e464 ">
              <p>Configure when the component is displayed by using conditional logic. </p>
              <p>You can set the components to:</p>
              <dl>

                <dt style="font-weight:bold;padding-top:.25rem;">Always</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Always display the component.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">When all conditions are met (AND)</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Display the component when all of the conditions that you define are met.
                  Define at least one condition.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">When any condition is met (OR)</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Display the component when at least one of the conditions that you define is
                  met. Define at least one condition.</dd>


                <dt style="font-weight:bold;padding-top:.25rem;">When custom conditional logic is met</dt>

                <dd style="padding-left:1.5rem;padding-bottom:.5rem;">Display the component when the condition logic that you define is met.
                  Define at least one condition and specify condition logic.</dd>

              </dl>
            </td>

          </tr>
        </tbody>
      </table>

## Validate Input

Provide a formula that evaluates whether what the user entered is valid and the error message to display if invalid.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:24%">
          <col style="width:76%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e552">Option</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e555">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e552 ">
              <strong class="uicontrol">Error Message</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e555 ">Specify the error message that appears below the component if the user enters
              an invalid value.</td>

          </tr>
          <tr class="">
            <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e552 ">
              <strong class="uicontrol">Formula</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e555 ">
              <p>Provide a formula expression that returns a Boolean value.</p>
              <p>If the formula expression evaluates to <samp>true</samp>, the
                input is valid. If the formula expression evaluates to
                <samp>false</samp>, the error message appears below the
                component.
              </p>
              <p style="margin-bottom:0;">If the user leaves the field blank and the field isn’t required, the flow doesn’t
                perform the validation. If the user leaves the field blank and the field is
                required, the flow shows the default error message and not your custom error
                message.</p>
            </td>

          </tr>
        </tbody>
      </table>

## Specify the Behavior of Values on Revisited Screens

Specify what this component does when a user enters a value, navigates to a previous screen, and then returns to the screen with this component.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
        <colgroup>
          <col style="width:24%">
          <col style="width:76%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e626">Option</th>
            <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d38347e629">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e626 ">
              <strong class="uicontrol">Use values from when the user last visited this screen</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e629 ">The component retains the values that the user specified and doesn’t update the
              values to reflect changes made on previous screens.</td>

          </tr>
          <tr class="">
            <td data-label="Option" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e626 ">
              <strong class="uicontrol">Refresh inputs to incorporate changes elsewhere in the flow</strong>
            </td>

            <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d38347e629 ">
              <p>The component updates the user-specified values to reflect changes made on
                previous screens.</p>
              <p style="margin-bottom:0;" id="flow_ref_elements_screencmp_dependentpicklists__d2590e119"><a name="flow_ref_elements_screencmp_dependentpicklists__d2590e119"><!-- --></a>If you pause and then
                resume the flow, the flow retains user-specified values only in Checkbox, Checkbox
                Group, Currency, Long Text Area, Multi-Select Picklist, Number, Password,
                Picklist, Radio Buttons, and Text components.</p>
            </td>

          </tr>
        </tbody>
      </table>

![Example](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/images/icon_example.png)

Example

For example, in a Dinner Order flow, users select a specific dessert. Each dessert comes in different flavors, and the flavor options change based on the dessert that the user selects.

On the Guest Order custom object, define two picklist fields: Dessert and Flavor. Next, define a field dependency between Dessert and Flavor, where Dessert is the controlling picklist. Identify which Flavor options apply to each Dessert option.

![A field dependency that maps Flavor options to Dessert options.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_screencmp_dependentpicklist_dependency.png)

In your flow screen, add a Dependent Picklists screen component. Configure the component with these values.

 
| Attribute | Value |
| --- | --- |
| **Object API Name** | Guest\_Order\_\_c |
| **Picklist 1 API Name** | Dessert\_\_c |
| **Picklist 1 Label** | Dessert |
| **Picklist 2 Value** | Flavor\_\_c |
| **Picklist 2 Label** | Flavor |

When a user runs the flow, the options for Flavor change based on what’s selected for Dessert.

![A dependent picklist component at run time, which offers different Flavor options based on what the flow user selects for Dessert.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-platform_automation-264-0-0-production-enus/60568438-ec7e-4665-acd1-7c80dcbe60d5/platform_automation/images/flow/flow_screencmp_dependentpicklist.png)

## Considerations

Screen input component values are set to null when they’re hidden by conditional visibility. But hidden picklists in a Dependent Picklists component aren’t set to null unless the entire Dependent Picklists component is hidden.

#### See Also

- [Standard Flow Screen Components](https://help.salesforce.com/s/articleView?id=platform.flow_ref_elements_screencmp.htm&release=264.0.0&type=5 "Salesforce provides several standard screen components that extend the types of input fields available in screens.")
- [Define Dependent Picklists](https://help.salesforce.com/s/articleView?id=platform.fields_defining_field_dependencies.htm&language=en_US)