This post was Last Updated:
- Why do we need to know the internal name?
- A SharePoint column has two names*
- How to find the internal column name
- When the Internal Name doesn’t work in a Filter Query
- Tip for creating column names
1. Why do we need to know the internal name?
In order to reference a column or field in SharePoint Online you often need to know its internal name. While the default display name and the internal name are often identical or similar, they can also be very different. The difference isn’t always consistent.
For example a column with a display name of “Employee ID Number” could have the spaces removed and have the internal name “EmployeeIDNumber“, or the spaces could be replaced with a hexadecimal equivalent, such as “Employee_x0020_ID_x0020_number“.
2. A SharePoint column has two names*
- Display Name is the name you set when you create a new column. This is the visual name that the user sees when they are working with SharePoint list items or documents via forms or view. You can change the Display name.
- Internal Name – Internal names are set when you create a new column. You cannot change the internal name later. The internal name is not always same as the display name. Internal names are used to get field values and can be used in trigger conditions and workflows.
3. How to find the internal column name
Field (column) names are case-sensitive. This is that behind the scenes Power Automate uses JSON and JSON column names are case sensitive. Learn more here: Why you need to know (some) JSON!
Method 1: Column Settings
You can easily find the internal name by editing the column and viewing the last part of the URL.
(1) Click on the settings icon
(2) Click List settings:
(3) Click on the column name:
The internal name will be at the end of the URL after ‘Field=’:
Unfortunately, there are instances where the internal name that we get with this method does not work with queries. You will need to try the other methods below until you find one that works. See below: When the Internal Name doesn’t work in a Filter Query
Method 2: Hover-over dynamic content in Power Automate
You can also view the internal name by hovering over Power Automate Dynamic content:
Method 3: Peek Code in Power Automate
You can use Peek code to view the internal name. You can also copy and then paste internal name.
4. When the Internal Name doesn’t work in a Filter Query
(1) Column Names are cAsE sEnSiTiVe
Field (column) names are case-sensitive. This is behind the scenes Power Automate uses JSON and JSON column names are case sensitive. Learn more here: Why you need to know (some) JSON!
For example, the SharePoint column Title must be entered exactly as Title or your flow will generate an error.
If we run the flow below using title instead of Title, the flow fails with an error:
Power Automate generates the error “Column ‘title’ does not exist”.
If we re-run the flow with the correct column name of Title, the flow runs successfully:
(2) Filter based on Person or Group column
The ‘Person or Group’ column contains a user object and is made up of a collection or group of attributes:
The OData filter query can’t filter on the user object but it can filter on some of the attributes. The example below shows how to filter using the user attributes. Note that the attribute names are case sensitive. For example the email must be upper case E and M:
(3) Filter query based on a filename within a Document Library
For this filter query we need to use the Document Library’s internal name FileLeafRef – which gives us the name of the file including its extension.
For example, the filter query in the Get Files action above selects file names beginning with ‘Current_Crew_Projection_‘:
The following the filter query selects file names equal to ‘color-wheel.pdf’
FileLeafRef eq 'color-wheel.pdf'
(4) ⚠ Error when using the Internal Name : Column Name Does not Exist!
Here is another example where using the internal name of a column does not work in Power Automate. In this particular case a user had a column name called JV2:
Using the column settings URL (Method 1) to find the internal name of JV2, we find that the internal name is _x004a_V2 :
However, this internal name _x004a_V2 did not work when used with Power Automate (e.g. in filter queries). The user was getting the error “Column ‘_x004a_V2’ does not exist” even though the internal name was correct.
It seems we need to use one of the other methods in order to obtain a useable internal name: Method 2 or Method 3. These methods expose the “correct” or useable internal name OData_x004a_V2 as we see below:
|SharePoint Column Name||Internal Name||Useable Name|
I’m still not sure why the internal name of the JV2 column doesn’t reflect the name we find when using the column settings method. The name JV2 could be a reserved internal name used within the SharePoint database, so SharePoint substitutes the user-entered name based on some algorithm in order to avoid a naming conflict?
See Power Automate Community Forum for the original post: ODATA query issues with field names.
(5) If a column name starts with a symbol character
5. Tip for creating column names
(1) Use the Add column option in the SharePoint list or library and SharePoint will create a clean name for you:
(2) Avoid symbols characters in your column names, such as !Don’t%Do&This#. See SharePoint Naming Guidelines for further guidance.
SharePoint Online often requires the internal name of a column or field to be known in order to reference it. The internal name is set when a column is created and cannot be changed later. The display name of a column can be changed and may differ from the internal name. Internal names are used for getting field values or used trigger conditions. The internal name can be found using various methods such as editing the column in column settings, hovering over dynamic content in Power Automate, or using Peek Code in Power Automate. Column names are case sensitive and some types of columns like Person or Group have a collection of attributes that can be filtered on. The internal name of a filename within a document library is FileLeafRef. Error “Column name does not exist” may occur if the column name is not entered correctly or if the internal name is not used correctly.