🔍How to find the internal name of a SharePoint column

This post was Last Updated:


CONTENT

  1. Why do we need to know the internal name?
  2. A SharePoint column has two names*
  3. How to find the internal column name
  4. When the Internal Name doesn’t work in a Filter Query
  5. Tip for creating column names
  6. Summary
  7. Notes

1. Why do we need to know the internal name?

A column with a display name of "Employee ID Number" could have an internal name of 
Employee_x0020_ID_x0020_number.

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 nameEmployeeIDNumber“, or the spaces could be replaced with a hexadecimal equivalent, such as “Employee_x0020_ID_x0020_number“.

A Table showing Employee ID number display name.
A Table showing Employee ID number column’s display name.

2. A SharePoint column has two names*

  1. 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.
  2. 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

Image showing the settings icon
Select Settings.

(2) Click List settings:

Image showing where to find SharePoint List Settings
Select List Settings

(3) Click on the column name:

SharePoint List Settings page from where we can select a column for editing
Select the column name

The internal name will be at the end of the URL after ‘Field=’:

The internal name of the column will be at the end of the URL after ‘Field=’:
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:

Hover-over dynamic content in Power Automate to show the internal name
Hover-over dynamic content in Power Automate to view the column’s internal name

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.

Using Peek Code in Power Automate to show the internal column name

Peek code in Power Automate
Peek code example screen
You can also copy and then paste the internal name from the Peek Code view

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:

Image showing: JSON field (column) names are case-sensitive. The SharePoint column Title must be entered exactly as Title or your flow will generate an error.

Power Automate generates the error “Column ‘title’ does not exist”.

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:

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 'Person or Group' column contains a user object and is made up of a collection or group of attributes:
Example: a SharePoint column called Owner of type Person. The column is made up of a collection of attributes such as Display Name, Email address and Job Title etc.

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:

Filtering on the user attributes. Note the format for the email address attribute which is Owner/EMail
Filtering on the user attributes. Note that the attributes names are case sensitive.
Example filter query using the email attribute.
Example filter query using the email attribute.
Attribute names and person column
Filtering on the user attributes. Click on the image above to see a full size screenshot.

(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 following filter query selects file names beginning with 'Current_Crew_Projection_'

For example, the filter query in the Get Files action above selects file names beginning with ‘Current_Crew_Projection_‘:

startswith(FileLeafRef,'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:

SharePoint list showing a column named JV2
SharePoint list with a column named JV2

Using the column settings URL (Method 1) to find the internal name of JV2, we find that the internal name is _x004a_V2 :

Editing the column JV2 and viewing its internal name
The internal name will be at the end of the URL after ‘Field=’: _x400a_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:

Using the Hover-over method to get the "correct" internal name of column JV2
Getting the internal name use the Hover-over method
SharePoint Column NameInternal NameUseable Name
JV2_x0004a_V2OData_x004a_v2

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

If a column name starts with a symbol character you need to use one of the other methods in order to obtain a useable internal name: Method 2 or Method 3.

if a column name starts with a symbol character Use one of the other methods in order to obtain a useable internal name
Column names starting 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:

Tip for creating column names

(2) Avoid symbols characters in your column names, such as !Don’t%Do&This#. See SharePoint Naming Guidelines for further guidance.

Don't do this when naming columns

6. Summary

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.

7. Notes

SharePoint Naming Guidelines – The documentation actually mentions three types of column names: (1) Display name, (2) Internal name and a third called the (3) Multilingual alternatives for your display names.

Power Automate filter based on Person or Group column by Tom Riha.

One thought on “🔍How to find the internal name of a SharePoint column

Add yours

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Website Built with WordPress.com.

Up ↑

%d bloggers like this: