Power Automate Get Items Filter Query (OData): Lookup, Person, Choice and Date Filters That Work

Get items' Filter Query is an OData filter on internal column names: Title eq 'Northgate' for text, Project/Title eq 'Northgate Transit Hub' for a lookup, Inspector/EMail eq 'james.smith@contoso.com' for a person, InspectionStatus eq 'Scheduled' for a choice, and InspectionDate ge '2026-10-31' for a date. Put text and dates in single quotes. Use the internal name, not the display name, or you get "Column 'Status' does not exist". Build "today" with convertFromUtc, because utcNow() is a day ahead in the evening in the Americas.

Published:

Last updated: 2026-11-06

The test

A scheduled flow ran four Get items actions against Inspection Requests, which has a Project lookup, an Inspector person column, an InspectionDate date column and a choice column shown as "Status":

Filter QueryResult
Project/Title eq 'Northgate Transit Hub' (Order By InspectionDate asc)Items 3 and 6, in date order
Inspector/EMail eq 'james.smith@cognillo.work'Items 3, 6, 9 and 12
InspectionDate ge '…tomorrow…' and InspectionDate lt '…day after…'Worked, but "tomorrow" was a day late (see below)
Status eq 'Scheduled'BadRequest: Column 'Status' does not exist
Get items on Inspection Requests with Filter Query Project/Title eq 'Northgate Transit Hub' and Order By InspectionDate asc
A lookup filter: the lookup column, a slash, then a field of the target list.

Filter syntax by column type

Column typeExampleNotes
TextTitle eq 'Footing rebar'Also startswith(Title,'Foot'). Double a quote inside a value: 'O''Brien'.
NumberBudget gt 10000No quotes.
ChoiceInspectionStatus eq 'Scheduled'Internal name, value in quotes. No /Value.
Yes/NoProcessed eq 11 or 0.
LookupProject/Title eq 'Northgate Transit Hub' or Project/Id eq 4Any field of the target list that you could show in a view.
PersonInspector/EMail eq 'james.smith@contoso.com'EMail with a capital M; Title for the display name.
DateInspectionDate ge '2026-10-31'ISO date in quotes; add a time (T00:00:00Z) for date-and-time columns.
EmptyDueDate eq nullWorks for most column types.

Combine with and, or and parentheses. Operators are eq, ne, gt, ge, lt, le. contains isn't supported on SharePoint lists; use substringof('rebar',Title) for text, or filter afterwards with a Filter array action.

"Column 'Status' does not exist"

Flow run failed. Action Get_items_3 failed: Column 'Status' does not exist. It may have been deleted by another user. Get items 3 shows BadRequest
The filter used the display name "Status". The column's internal name is InspectionStatus.

The filter needs the internal name, which is fixed when the column is created. A column created as "Inspection Status" and renamed "Status" is InspectionStatus; spaces become _x0020_. To find it, open the column in List settings and read Field= in the URL, or look at the raw outputs of a Get items without a filter.

The date filter that was a day off

The reminder filter was built from utcNow():

InspectionDate ge '@{formatDateTime(addDays(utcNow(),1),'yyyy-MM-dd')}' and InspectionDate lt '@{formatDateTime(addDays(utcNow(),2),'yyyy-MM-dd')}'
Get items 2 Filter Query with two formatDateTime expressions between InspectionDate ge and InspectionDate lt
The filter in the designer: expressions inside quoted text.

The flow ran at 11:36 PM Eastern on October 29, which was already 03:36 UTC on October 30. The raw inputs show what SharePoint got:

Raw inputs of Get_items_2: $filter InspectionDate ge '2026-10-31' and InspectionDate lt '2026-11-01'
"Tomorrow" became October 31, because UTC was already October 30.

Convert to your time zone first:

InspectionDate ge '@{formatDateTime(addDays(convertFromUtc(utcNow(),'Eastern Standard Time'),1),'yyyy-MM-dd')}' and InspectionDate lt '@{formatDateTime(addDays(convertFromUtc(utcNow(),'Eastern Standard Time'),2),'yyyy-MM-dd')}'

Run just after local midnight on October 30, this filter returned the items for October 31, as it should. The full reminder flow is in due-date reminders.

Other limits

  • 100 items by default. Get items returns 100 items unless you set Top Count or turn on Pagination in the action's settings with a threshold.
  • The 5,000-item threshold. On large lists, filter on an indexed column first, or the request fails. See the list view threshold.
  • Limit Columns by View makes the response smaller, which matters with many columns and pagination.

Test the filter with PowerShell first

The same OData filter works against the REST API, so you can try it before putting it in a flow. This is read-only and needs PnP PowerShell 2.x and your own Entra ID app registration.

$ClientId = "<your-app-id>"
$SiteUrl  = "https://contoso.sharepoint.com/sites/Projects"
$List     = "Inspection Requests"
$Filter   = "Inspector/EMail eq 'james.smith@contoso.com'"
$Select   = "Id,Title,InspectionDate,Inspector/EMail"
$Expand   = "Inspector"

Connect-PnPOnline -Url $SiteUrl -Interactive -ClientId $ClientId
$f = [uri]::EscapeDataString($Filter)
$url = "_api/web/lists/getbytitle('$List')/items?`$filter=$f&`$select=$Select&`$expand=$Expand&`$top=500"
(Invoke-PnPSPRestMethod -Url $url).value |
    Select-Object Id, Title, InspectionDate, @{ n = 'Inspector'; e = { $_.Inspector.EMail } } |
    Format-Table -AutoSize

In REST you have to $expand lookup and person columns yourself; Get items does that for you.

Search many lists at once with SharePoint Essentials Toolkit

Get items works one list at a time. When the question is "which items on any list mention this project or this person", the toolkit's Search area reads columns, pages and file contents across every list and site you pick:

SharePoint Essentials Toolkit Search area: Text in file contents, Text on pages and in web parts, Text in columns and metadata, checked out files, and Replace options
Text in columns and metadata finds values in titles, choice, notes and people columns across lists.

Use it to find which lists a flow should cover, then write the filter for each one.

Community Edition is free on up to 20 sites per Microsoft 365 tenant.

Need due-date reminders? See how to send SharePoint due-date reminders with a scheduled flow.

Frequently asked questions

How do I filter Get items on a lookup column?

Use the lookup column, a slash and a field of the target list, for example Project/Title eq 'Northgate Transit Hub' or Project/Id eq 4.

How do I filter Get items on a person column?

Use the person column's EMail field: Inspector/EMail eq 'james.smith@contoso.com'. EMail has a capital M.

Why does my filter say Column does not exist?

The filter used the display name. Filter queries need the internal name, which can differ after a rename. Read it from Field= in the column settings URL.

How do I filter Get items for today's date?

Build the date with convertFromUtc(utcNow(),'your time zone') and formatDateTime(...,'yyyy-MM-dd'), then use ge today and lt tomorrow. Plain utcNow() can be a day off.

Why does Get items return only 100 items?

That's the default. Set Top Count, or turn on Pagination in the action settings with a threshold above the number of items you expect.

Find values across every list, free

SharePoint Essentials Toolkit Community Edition is free. Search columns, pages and files across lists and sites in one job, on up to 20 sites per Microsoft 365 tenant. Get your free Community Edition license key.

About the author. The Cognillo SharePoint Team builds and supports SharePoint Essentials Toolkit and has worked with SharePoint administrators on permissions audits, migrations and cleanup projects since 2012.