One of my colleagues recently started working with Dataverse in Power Automate and asked me a simple but important question: “How do I get the value from a Choice column in Dataverse using Power Automate?”
They were used to working with SharePoint, where we usually access a Choice column value using something like trigger()?[‘ColumnName’]?[‘value’]. But you will face an error if you try the same approach with Dataverse.
That’s because Dataverse stores Choice columns differently; they don’t return the label directly. Instead, they return an internal integer value (like 100000000), which is just the ID of the selected choice option.
In this tutorial, I will explain how to get the value of a choice column from Dataverse using Power Automate with a few examples.
Get Choice Column Value from Dataverse Using Power Automate
Let’s say you have a Dataverse table called Training Registrations with the following columns:

When someone registers for a course using a Power App (which saves the data to Dataverse), a flow should automatically trigger when a new item is created in the Training Registrations table.
The flow should extract and format the Course Name and Training Mode (both are Choice columns) and send an email confirmation to the employee with their registration details.
To do this, follow the steps below:
- Open Power Automate and create an automated cloud flow with a trigger “When a row is added, modified, or deleted”. Then provide the following parameters:
- Change Type: Added
- Table name: Training Registrations
- Scope: Organization

- Then add a compose action to store the course name and provide the following parameters:
triggerOutputs()?['body/_cr0e5_coursename_label']

- Again, add a compose action to store the Training Mode and provide the following expression:
triggerOutputs()?['body/_cr0e5_trainingmode_label']

- Last, add a Send an Email (V2) action to the confirmation email to the employee and provide the below parameters:
- To: Provide the Email address from the dynamic content.
- Subject: Provide the subject as Training Registration Confirmation.
- Body:
Hi @{triggerOutputs()?['body/cr0e5_name']},
Thank you for registering for the @{outputs('Compose')} training.
Mode: @{outputs('Compose_1')}
Date: @{triggerOutputs()?['body/cr0e5_registrationdate']}
We’ll send you the joining details soon.
Best regards,
Training Team

- Save the flow, and add one item to the Dataverse table. For this example, I created a modern-driven add only for adding the data.

- After the flow runs successfully, go to Outlook, and you can see the confirmation email, which contains the choice column value, not the number.

This way, you can get the choice column value from the Dataverse table if working with an Automated cloud flow.
Get Value of Dataverse Choice Column Using Power Automate Manual Trigger
In this example, I will show how to get Dataverse choice values using a manual trigger. Here, I will use the same Dataverse table, Training Registrations.
- Go to Power Automate and create a new instant cloud flow by manually triggering a flow trigger.
- Add the List Rows action from the Dataverse connector, and select the table name as Training Registrations.

- Then, add a select action and provide the parameters below to extract only the necessary column details from the Dataverse Table.
- From: Provide the list row body/value using dynamic content.
- Map: Click the T (Text mode) icon and define the structure to extract key column details. Use the following JSON mapping:
{
"Full Name" : @{item()?['cr0e5_name']},
"Email Address" : @{item()?['cr0e5_emailaddress']},
"Registration Date" : @{item()?['cr0e5_registrationdate']},
"Course Name" : @{item()?['cr0e5_coursename@OData.Community.Display.V1.FormattedValue']},
"Training Mode" : @{item()?['cr0e5_trainingmode@OData.Community.Display.V1.FormattedValue']}
}

- Now, save the flow -> Click Test (top-right corner) -> Select Manually and click Test again. Then click Run flow after the flow runs successfully. Select the Select action and check the output section.

At this point, you might have a question like in the first example, I used this expression to get the Course Name:
triggerOutputs()?['body/_cr0e5_coursename_label']
But now I am using this one instead:
item()?['cr0e5_coursename@OData.Community.Display.V1.FormattedValue']
Let me explain:
When you use a trigger like “When a row is added, modified, or deleted (automated flow) Power Automate gives you the full data of the newly created or updated row directly in the trigger body. For Choice columns, it automatically includes a special property with the suffix _label
That’s why we use:
triggerOutputs()?['body/_cr0e5_coursename_label']
This gives you the friendly label of the selected Choice (e.g., “In-person” instead of a number like 100000000).
When you use the “List rows” action (in manual or scheduled flows), Dataverse returns the raw data. By default, Choice fields come as numeric values (the internal IDs). Dataverse includes an extra formatted value for each field to get a friendly text. You need to reference it correctly.
That’s why we use:
item()?['cr0e5_coursename@OData.Community.Display.V1.FormattedValue']
So, the best way to get user-friendly text like “Power BI” instead of the option number is to check the dynamic content or output JSON to find the right label field, especially when using custom schema prefixes like cr0e5_.
Related Power Automate tutorials:
- Power Automate Dataverse Add New Row
- Export Dataverse Table to Excel Using Power Automate
- How to work with dataverse formula column
- Get Dataverse Created by in Power Automate
- Update a Row in Dataverse Using Power Automate

Hey! I’m Bijay Kumar, founder of SPGuides.com and a Microsoft Business Applications MVP (Power Automate, Power Apps). I launched this site in 2020 because I truly enjoy working with SharePoint, Power Platform, and SharePoint Framework (SPFx), and wanted to share that passion through step-by-step tutorials, guides, and training videos. My mission is to help you learn these technologies so you can utilize SharePoint, enhance productivity, and potentially build business solutions along the way.