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.
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.
How to find the internal column name
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.
When the Internal Name doesn’t work in a Filter Query
(1) 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:
(2) ⚠ 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.
(3) If a column name starts with a symbol character
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.