1. Understanding People Search & Filter in Power Apps
Finding the right records quickly is essential in business applications, especially when dealing with large datasets. A People Search & Filter interface allows users to search for Microsoft Entra ID (Azure AD) users, select one or more people, and instantly filter related records such as tasks, projects, or tickets assigned to those users.
In this tutorial, you’ll learn how to build a modern People Search experience in Power Apps using the Office 365 Users connector. Selected users are stored in a collection and displayed in a clean horizontal gallery, while the selected people dynamically filter data stored in either Dataverse or SharePoint. The solution provides an intuitive way for users to narrow down information without manually searching through long lists.
Whether you’re building project management, task tracking, or employee management applications, this approach creates a faster, more interactive user experience while keeping the interface clean and responsive.
2. Understanding the User Search Interface
The solution consists of several Power Apps controls that work together to create a smooth people-search experience.
At the center of the application is a Modern Table Control, which displays records from your data source, such as project tasks stored in Dataverse or SharePoint. This table becomes the primary view that users filter by selecting people.
A Modern Text Input control allows users to type a name or email address. Instead of searching immediately after every keystroke, the control uses the TriggerOutput property set to Delayed, allowing Power Apps to wait until the user pauses typing before performing the search. This improves performance and provides a smoother user experience.
Search results are displayed inside a User Browse Gallery, which retrieves matching users from Microsoft Entra ID through the Office 365 Users connector. Users can simply click a person from the results to add them to the filter.
Selected users are stored inside a Power Apps Collection, which acts as temporary memory during the session. This collection is then displayed inside a Horizontal Gallery, often called a refiner panel, where each selected person appears with their profile picture, display name, and a remove button. Users can remove any selection at any time, allowing the filtered data to update automatically.
Together, these controls create an intuitive search and filtering interface that is both responsive and easy to use.
3. Building the User Search Experience
The user search process begins when someone enters a name or email address into the search box. The User Browse Gallery uses the value from the text input to query the Office 365 Users connector, returning matching Microsoft Entra ID users based on the search text.
To improve responsiveness, the search input is configured with TriggerOutput = Delayed. This prevents Power Apps from sending search requests after every keystroke and instead waits until the user pauses typing. The result is a faster application with fewer unnecessary connector calls.
When a user selects a person from the search results, the selected record is added to a Power Apps collection using the Collect() function. Immediately afterward, the search input is reset so the search results disappear, giving users a cleaner interface and allowing them to begin a new search if needed.
The selected users are then displayed inside the horizontal refiner gallery. Each card typically contains the user’s profile photo, display name, and a remove icon. Selecting the remove icon uses the Remove() function to delete that person from the collection, instantly updating the filter and refreshing the displayed data.
This collection-based approach makes it easy to manage multiple selected users while providing a modern, interactive filtering experience that can be reused across many Power Apps solutions.
4. Filtering Data with Dataverse
Dataverse provides the most efficient way to implement multi-user filtering because it supports delegable queries, allowing Power Apps to process filters on the server instead of retrieving records locally. This makes the solution suitable for applications that work with large datasets.
The tutorial demonstrates filtering a Project Tasks table where each task contains an Assigned To lookup linked to Microsoft Entra ID users. Instead of filtering for a single user, the application compares the email address of the assigned user with the collection of selected people using the in operator.
A common implementation pattern is to first check whether any users have been selected. If the collection is empty, the application displays all tasks. Once users are selected, the table is filtered so only records assigned to those people are shown. This approach keeps the interface simple while maintaining excellent performance.
Another major advantage of Dataverse is that the in operator is fully delegable. Unlike SharePoint, Power Apps can execute the filter directly on the server, making it a reliable solution for enterprise applications with thousands of records. If you’re building scalable business applications that require dynamic people filtering, Dataverse is the recommended choice.
5. Filtering SharePoint Data & Best Practices
While the same user selection experience can be implemented with SharePoint, filtering a Person column introduces delegation limitations. The in operator is not delegable for SharePoint person fields, meaning Power Apps cannot efficiently process dynamic multi-user filters against large lists.
To overcome this limitation, the tutorial demonstrates a practical workaround by allowing users to select a maximum of three people. Instead of using the in operator, the filter explicitly compares the SharePoint Assigned To email address against each selected user. Although this approach works well for smaller lists, it is not suitable for unlimited user selections or very large datasets.
To improve usability, the application dynamically updates the search box once the maximum number of users has been selected. The search input can be disabled, and the placeholder text changes to inform users that the maximum number of selections has been reached. This prevents invalid selections while keeping the interface intuitive.
Best Practices
- Use Dataverse whenever your application requires scalable multi-user filtering.
- Limit the number of selected users when working with SharePoint person columns to avoid delegation issues.
- Configure TriggerOutput = Delayed on the search input for smoother performance.
- Store selected users in a collection to simplify filtering and UI updates.
- Use Collect(), Remove(), and Reset() together to keep the search experience responsive and synchronized.
- Test your filtering logic with realistic data volumes to identify delegation warnings before deploying your app.
Following these practices helps create a responsive People Search & Filter experience while ensuring the solution performs well across both Dataverse and SharePoint environments.
6. Conclusion
Creating a People Search & Filter in Power Apps provides a clean and efficient way to filter records based on selected users from Microsoft Entra ID. By combining the Office 365 Users connector, collections, modern controls, and responsive galleries, you can build an intuitive filtering experience that improves both usability and productivity.
If your app uses Dataverse, you can take advantage of delegable filtering for better scalability and performance. For SharePoint, it’s important to understand delegation limitations and design your filtering logic accordingly, especially when supporting multiple user selections.
By implementing the techniques covered in this guide, you can create a responsive, user-friendly interface that makes it easier for users to search, refine, and manage data while following Power Apps best practices.