# My condition on a choice column always goes to No

> For the full documentation index, see https://250highstreet.com/llms.txt

> Why a Power Automate condition on a SharePoint Choice column always goes to No, and how to check the real value, the exact text and the internal name.

Short answer: compare the Value part of the choice, not the whole choice. Our advice, not a Microsoft rule: in a condition, pick the dynamic content named like "Status Value" or use triggerOutputs()?\['body/Status/Value'\], and match the text exactly, including any number prefix like "3 Closed".

The paths and names below are our advice, not a Microsoft rule, unless a sentence says Microsoft. Look at a real run first. Exact names may differ on your screen.

## The example I will use

Say a team has a SharePoint list called Support requests. It has these columns:

- Title (the column every list has)
- Priority (Choice: 1 High, 2 Medium, 3 Low)
- Status (Choice: 1 Open, 2 Waiting, 3 Closed)
- Tags (Choice, allows multiple selections: Billing, Shipping, Returns)

The number prefixes are part of the choice text, so a flow that looks for "High" will not match "1 High". This is the first thing to check.

The goal: when a request is changed so that Status is "3 Closed", the flow sends a note. When it is created with Priority "1 High", the flow alerts the team.

## Why the condition goes to No

Check these five reasons. Each one is a mismatch between what you typed and what the flow holds.

1.  The text does not match. You typed "Closed" but the choice reads "3 Closed".
2.  The capitals do not match. You typed "closed" but the choice reads "Closed".
3.  You compared the whole choice, not its text. A Choice value arrives as a bundle with a Value part inside, so the whole bundle never equals plain text.
4.  The expression uses a name that does not exist. The name on your screen and the internal name of the column can differ.
5.  The column allows several choices. Then the value is a list, and a plain "equals" check does not fit a list.

## Step 1. Look at a real run first

Before you change the condition, see what your flow really receives.

1.  Open [https://make.powerautomate.com](https://make.powerautomate.com) and open your flow.
2.  Add one test item to your list with Priority set to "1 High" and Status set to "3 Closed".
3.  Open the run history for the flow and open the trigger step, then the condition step.
4.  Find Priority and Status in the output. Note the exact text of the Value part, with its number, spaces and capitals.
5.  Copy that text. Paste it into your condition instead of typing it.

Pasting beats typing, because a number prefix or a double space is easy to miss by eye. For a flow that turns itself off, see "[Why Power Automate turned your flow off, and how to turn it back on](/guides/power-automate-flow-turned-off-automatically/)".

## Step 2. Compare the Value part, not the whole choice

When you click in the left box of a Condition and choose from dynamic content, pick the token that shows the text of the choice, named like "Priority Value". Do not pick the one that stands for the whole choice bundle.

If you use an expression, you point at the Value part. Our advice, not a Microsoft rule, is that it looks like this for a trigger on your list:\
equals(triggerOutputs()?\['body/Status/Value'\], '3 Closed')

Microsoft's expressions page describes equals as "Returns true if two values are equal." Its example is:\
equals(parameters('parameter1'), 'someValue')\
Confirm the path in your own run history from Step 1, because your tokens may be named differently.

Microsoft's expressions page says that to use an expression on the Condition card you edit it "in advanced mode". The exact name of that switch may differ in the designer you use.

## Step 3. Match the capitals

Microsoft's functions reference says this about contains: "This function is case-sensitive." The same page describes equals as "Check whether both values, expressions, or objects are equivalent." The equals entry on that page does not say whether it is case-sensitive.

In a Microsoft Q&A thread on a drop-down trigger condition, one reply says: "It is case sensitive there." The asker tried several spellings. So treat capitals as part of the match and paste the text from the run.

One way to start: if people may type the text by hand somewhere else, compare in lowercase on both sides. Microsoft lists toLower as a function that returns "a string in lowercase format". An example, our advice:\
equals(toLower(triggerOutputs()?\['body/Status/Value'\]), toLower('3 Closed'))

## Step 4. Use the internal name of the column

A column has a display name and an internal name. When you rename a column, the internal name can stay the same, and spaces turn into codes. In a Microsoft Q&A thread on a column named Risk Status, one reply says "flows cannot have spaces in fields" and shows the space written as \_x0020\_ in the expression:\
equals(triggerBody()?\['Risk_x0020_Status'\]?\['value'\],'closed')\
That answer also says to open List settings, click the column, and read the internal name at the end of the page address after field=. In that thread one column's internal name turned out to be field_10, and the expression had to use that.

So if your condition mentions Status but the real internal name is something else, the flow reads an empty value and the condition goes to No. Steps:

1.  Open your list in SharePoint and open its list settings (exact names may differ).
2.  Click the column name.
3.  Look at the page address and read what follows field=.
4.  Use that name in the expression.

In the same thread, one person's internal name held \_x00e9\_ in place of an accented letter. Copy the name, do not retype it.

## Step 5. Trigger conditions need the same care

A trigger condition is an expression on the trigger itself, so the flow only starts when it is true. The expression has the same rules as above: right path, right name, right text. The Q&A asker above wanted a flow that starts only when a single column is set to Closed, tried several spellings and wrote: "It is starting to feel like trigger conditions are too much of a headache to be useful."

Microsoft's trigger troubleshooting page says to open the trigger card, "select the Settings tab", and locate "Trigger conditions". Our advice, not a Microsoft rule:

1.  Get the flow working first with a normal Condition card after the trigger.
2.  Once it works, move the same expression into the trigger condition.
3.  Test with one item that should start the flow and one that should not.

If a trigger condition keeps failing, leave it out and use the Condition card. The flow starts for every change, but the result is easier to see in the run history.

## Step 6. Choice columns that allow several values

When a Choice column allows several selections, the value is a list, one entry for each selected choice. An "equals" check against one piece of text does not fit a list.

Microsoft's contains description reads: "Check whether a collection has a specific item. Return true when the item is found, or return false when not found." That fits a list. Our advice, not a Microsoft rule: first look at the list in the run history, because each entry may be a bundle with its own Value part. If the entries are bundles, one way to test is to turn the list into text and check whether the text holds your word:\
contains(string(triggerOutputs()?\['body/Tags'\]), 'Billing')\
This checks text, so it would also match a longer choice that contains "Billing" inside it. If you have such names, give choices clearly different words.

## What to avoid

- Do not type the choice text from memory. Paste it from a real run.
- Do not drop the number prefix in the flow if the choice has one.
- Do not compare the whole choice bundle to plain text.
- Do not guess the column name. Read the internal name from the page address.
- Do not rename choices in the list without opening the flow. A renamed choice stops matching old text.
- Do not test only with items that should match. Test one that should not match as well.
- Do not set up a trigger condition before the plain Condition card works.

## A quick checklist

1.  Run the flow with one test item and open the run history.
2.  Copy the exact Value text, with number and capitals.
3.  Compare the Value part, not the whole choice.
4.  Check the internal name of the column.
5.  For several choices, use contains on the list.
6.  Test one item that should match and one that should not.

## When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: \$5,000 for one, built in 2 weeks. See "[What a SharePoint tracker costs to build](/guides/what-a-sharepoint-tracker-costs/)". Bring one example of the problem to a free call.

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: [Tools I built](/portfolio/)

## FAQ

### How do I set a trigger condition on a SharePoint Choice column?

Open the trigger card, select the Settings tab and find Trigger conditions, as Microsoft's trigger troubleshooting page says. Use the Value path and the exact choice text, and get a plain Condition card working first.

### Why does my condition work for some items and not others?

The text on those items may differ by a capital letter, a space or the number prefix. Open the run history for an item that failed and compare its Value text with your condition, letter for letter.

### Do I need the number in front of the choice, like 1 High?

Yes, if the choice text has it. The number is part of the text, so the flow must include it.

### Is equals case sensitive?

Microsoft's functions reference says contains "is case-sensitive". The equals entry does not say. A Microsoft Q&A reply says "It is case sensitive there." Match the capitals to be safe.

### How do I test a Choice column that allows several values?

Look at the run history first. Then use contains on the list or on its text, and test one item with the value and one without it. See "[Power Automate condition to check if a field is empty](/guides/power-automate-condition-field-empty/)" for empty checks.

## Sources

- [Microsoft Learn, Use expressions in conditions in Power Automate](https://learn.microsoft.com/en-us/power-automate/use-expressions-in-conditions)
- [Microsoft Learn, Reference guide to workflow expression functions in Azure Logic Apps and Power Automate](https://learn.microsoft.com/en-us/azure/logic-apps/workflow-definition-language-functions-reference)
- [Microsoft Q&A, Trigger condition based on drop down choice column in SharePoint list](https://learn.microsoft.com/en-us/answers/questions/683521/trigger-condition-based-on-drop-down-choice-column)
- [Microsoft Learn, Troubleshoot common problems with Power Automate triggers](https://learn.microsoft.com/en-us/troubleshoot/power-platform/power-automate/flow-run-issues/triggers-troubleshoot)

## Related guides

- [Power Automate condition to check if a field is empty](/guides/power-automate-condition-field-empty/)
- [My trigger condition does not work](/guides/power-automate-trigger-condition-not-working/)
- [Run a flow only when one column changes](/guides/power-automate-trigger-when-specific-column-changes/)

Source: https://250highstreet.com/guides/power-automate-choice-column-condition-not-matching/
