Live training: next batches coming soon. Join the waitlist:Waitlists open:Developer Training →Developer →Copilot Studio Training →Copilot Studio →

Power Apps: Set a Dropdown Default Value to a Variable (and Make It Stick)

You point a drop-down’s Default at a variable, change the variable, and the drop-down ignores you. Or it shows New when you expected something else, with no error to explain why.

In this tutorial, we’ll cover the Power Apps set dropdown default value to variable pattern on a real Service Requests app: where to set the variable, why a blank or misspelled value quietly falls back to the first item, and how Reset re-applies a new default after the user has picked something.

Quick answer: Set the drop-down’s Default property to a variable such as varDefaultStatus, then give it a value with Set(varDefaultStatus, "In Progress") in the screen’s OnVisible or a button’s OnSelect. If the user has already picked a value, add Reset(ddStatusVar) after the Set so the control goes back to the new default.

What You Need Before You Start

We use the classic Drop down control here, the one most apps still have. If you’ve never added one, our Power Apps dropdown control guide covers the basics. You’ll need:

  • A Microsoft 365 account that can create canvas apps
  • A SharePoint list with a Choice column (ours is Status with New, In Progress and Closed)
  • About 15 minutes to build one test screen

Our sample list is Service Requests on the /sites/SPGuides site. It has 623 items with Title, Status, Priority, Requester and DueDate columns. Every result in this post comes from that list:

SharePoint list Service Requests with Title, Status and Priority columns

Build the Demo App Step by Step

Skip this part if you already have an app connected to the list. Otherwise, these steps take a couple of minutes; our guide to create a canvas app from a SharePoint list goes deeper.

1. Sign in to make.powerapps.com. The Home page shows the Start with design options:

Power Apps maker portal Home page with the Start with design options

2. Select Create in the left pane, then Create from blank (Canvas app):

Power Apps Create page with the Create from blank canvas app option

3. In Start with a blank canvas, pick Tablet. Power Apps Studio opens on an empty screen:

Start with a blank canvas dialog with the Tablet layout selected

4. Select Add data, search for SharePoint and pick the SharePoint connector:

Add data pane in Power Apps Studio with the SharePoint connector

5. Paste your site URL under Connect to a SharePoint site and select Connect. Then check Service Requests under Choose a list and select Connect again:

Choose a list panel with the Service Requests list checked

6. Add a screen with New screen > Blank. To rename it, select the screen and use the pencil next to its name in the Properties pane. We called ours scrDropdownDefault.

Two basics you’ll use in every step. The property dropdown sits left of the formula bar (marked fx) and picks which property you’re editing. Press Play at the top right to run the app, or hold Alt and click a button while you edit. Save with Ctrl+S.

Step 1: Add the Drop-down and Point Default at a Variable

From Insert, add a Drop down and rename it ddStatusVar. Set its Items property to the Status choices. Our Power Apps Choices function guide explains what this returns:

Choices('Service Requests'.Status)

Now pick Default in the property dropdown and type the variable name. A variable is a named value the app keeps in memory; this one doesn’t exist until a Set formula creates it:

varDefaultStatus
Power Apps Studio with ddStatusVar selected and Default set to varDefaultStatus

Mine already shows In Progress because of the OnVisible formula in Step 2. We also added a label under the drop-down so you can see the variable and the selection side by side:

"varDefaultStatus = " & varDefaultStatus & "   |   Selected = " & ddStatusVar.Selected.Value

Step 2: Give the Variable a Value in OnVisible

Select the screen in the Tree view, pick OnVisible and enter the formula below. OnVisible runs every time someone opens the screen. Set creates a global variable; our comparison of global vs context variables in Power Apps explains when to use each:

Set(varDefaultStatus, "In Progress")

Here’s the first gotcha. Right after I typed this, OnVisible hadn’t run yet, so the variable was blank. A blank Default doesn’t leave the drop-down empty: it shows the first item, New:

Blank varDefaultStatus makes the Power Apps drop-down show the first item New

That matches Microsoft’s docs: unless empty selection is allowed, a drop-down always has a selected item, the Default or the first one. Once OnVisible ran, the label read varDefaultStatus = In Progress | Selected = In Progress:

Screen OnVisible sets varDefaultStatus to In Progress and the drop-down shows it

Step 3: Change the Default From a Button

Add a button with the text Set to Closed. Its OnSelect property changes the variable, and the drop-down follows because Default reads it:

Set(varDefaultStatus, "Closed")

In Preview, one click switched both the variable and the drop-down to Closed:

Preview after Set to Closed with varDefaultStatus and the drop-down both Closed

Now the second gotcha. We added a Set to Open button, but Open isn’t one of the Status choices:

Set(varDefaultStatus, "Open")

Power Apps didn’t complain. The variable held Open, the drop-down quietly showed New, and the label read varDefaultStatus = Open | Selected = New. If a default “doesn’t work,” check the spelling and case against your Items first:

Variable set to Open, which isn't a Status choice, so the drop-down shows New

Step 4: Re-Apply the Default With Reset

This is the gotcha that sends people to the forums. With the variable already Closed, I picked In Progress myself, then clicked Set to Closed again. Nothing happened: the label showed varDefaultStatus = Closed | Selected = In Progress.

Clicking Set to Closed again keeps the user's In Progress pick in the drop-down

Default is only the starting value until the user picks something. Microsoft’s Reset docs say input controls reset when their Default property changes, and setting Closed to Closed isn’t a change. The fix is to reset the control yourself, right after the Set:

Set(varDefaultStatus, "Closed");
Reset(ddStatusVar)
Set to Closed button OnSelect with Set and Reset(ddStatusVar) in the formula bar

Reset works only in behavior formulas such as OnSelect, and it’s the same tool we use to clear a text input in Power Apps. Clicking the button now brings the drop-down back to Closed every time:

After Set plus Reset the drop-down shows Closed again in Preview

Step 5: Default to the Current User

Variables aren’t the only dynamic default. A second drop-down, ddAssignee, lists two team queues plus the signed-in person:

["Help Desk Queue", User().FullName, "Network Team"]

Its Default is the user’s display name, which we cover with Email and other fields in our post on getting current user details in Power Apps:

User().FullName

Signed in as the app owner, the drop-down opened on Bijay Kumar Sahoo. Each user sees their own name, because the value must also be in Items:

Power Apps drop-down ddAssignee defaulting to the signed-in user's full name

Step 6: Default From the Selected Gallery Item

The last pattern needs no variable at all. A gallery, galDdv, shows the first four requests by ID:

FirstN(Sort('Service Requests', ID, SortOrder.Ascending), 4)

A third drop-down, ddFromGallery, uses the same Status Items, with Default reading the selected row. Our guide to setting a default selected item in a gallery covers picking a different first row:

galDdv.Selected.Status.Value

It showed New for Laptop replacement #1000, the first row. After I selected Password reset #1005, it switched to Closed:

Drop-down default following the selected gallery item Password reset #1005 Closed

Dropdown Default Cheat Sheet

Here’s what each case did on our Status drop-down (Items: New, In Progress, Closed):

What you doWhat the drop-down shows
Default = varDefaultStatus, variable blankNew (first item)
OnVisible: Set(varDefaultStatus, “In Progress”)In Progress
Button: Set(varDefaultStatus, “Closed”)Closed
Set to “Open” (not in Items)New, no error
Same value again after the user picked anotherThe user’s pick stays
Set(…); Reset(ddStatusVar)Closed, every time
Default = User().FullNameSigned-in user’s name
Default = galDdv.Selected.Status.ValueThe selected row’s Status

Common Mistakes to Avoid

  • Expecting blank to mean empty. A blank variable shows the first item. For a truly empty start, follow the separate blank-default steps linked below.
  • Setting a value that isn’t in Items. Case and spelling must match a choice exactly, or you get the first item with no warning.
  • Setting the same value twice. Default didn’t change, so nothing resets. Add Reset after the Set.
  • Calling Reset from outside a gallery or form. Microsoft’s docs say you can’t reset controls inside a Gallery or Edit form from outside them.
  • Relying on OnStart. OnStart doesn’t block screens from loading by default, so a variable set there may arrive late. OnVisible runs each time the screen opens.

If you need the drop-down to start with nothing selected, we walk through it in set a Power Apps dropdown default value to blank.

Does This Work With the Modern Dropdown Control?

Yes, with one difference to watch. Microsoft’s docs say the updated modern Dropdown sets its first selection through Default; earlier versions called it DefaultSelectedItems. Learn’s example passes a record, such as {Value: "United States"}.

We built this demo with the classic control, so test the modern one in your own app. Our Power Apps modern dropdown control tutorial shows the rest of its properties.

Next Steps

Once the variable pattern works, the usual next job is pulling the default from a saved record instead of a button. We show that in set a dropdown default from a SharePoint list. For more patterns, browse our Power Apps tutorials.

We’d keep these handy while you wire up the rest of the form:

Frequently Asked Questions

Why doesn’t my Power Apps dropdown change when the variable changes?

Usually the user already picked a value and you set the variable to the value it already had, so Default never changed. Add Reset(YourDropdown) after the Set. Also check the value exists in Items; otherwise the drop-down shows its first item.

Can I set a dropdown default variable in App OnStart?

A global variable from OnStart works in Default, but OnStart doesn’t block screens from loading by default, so the variable may not be ready yet. We set it in the screen’s OnVisible, which runs every time the screen opens.

What does Reset do to a dropdown?

Reset puts the control back to its Default value and discards what the user picked. It works only in behavior formulas such as OnSelect. See the Microsoft Learn Reset function reference for the full rules.

How do I default a dropdown to the current user?

Include User().FullName in the drop-down’s Items and set Default to User().FullName. Each person who opens the app sees their own name selected.

Does the modern Dropdown use Default or DefaultSelectedItems?

The updated modern Dropdown uses Default; DefaultSelectedItems was the earlier name. The Dropdown modern control page lists the renamed properties.