Introduction
When building apps in Power Apps, one of the most common confusions developers face—especially beginners—is choosing between User() and Office365Users(). Both functions return user information, but they behave very differently and are meant for different scenarios.
In this article, we’ll break down what each function does, when to use which, performance differences, delegation concerns, and best practices for production apps.
User() Function
The User() function returns three main properties of the currently signed-in user.
Properties
User().FullName
Returns the display name of the signed-in user.
User().Email
Returns the email address (UPN) of the signed-in user.
User().Image
Returns a link to the user’s profile photo. In some organizations, this may be blank.
Key Points
Fast – It works quickly because it does not use any connector or API call.
No permissions needed – You can use it without any special access.
Only current user info – It only returns details of the logged-in user.
DisplayName and Email are always available – The display name and email are always returned, but the profile photo may sometimes not load.
Office365Users() Function
To use the Office365Users() function in Power Apps, you first need to add the Office365Users connector to your app. This connector allows you to retrieve user information from the Microsoft 365 organization directory, such as user profiles, photos, and reporting details.
Available Functions
Office365Users.MyProfile()
Gets the full profile of the currently logged-in user.
Office365Users.UserProfileV2(email)
Gets profile details of any user using their email.
Office365Users.SearchUser({searchTerm:"name"})
Searches for users in the organization.
Office365Users.UserPhoto(email)
Gets the profile photo of any user.
Office365Users.DirectReports(email)
Shows the list of people who report to a specific user.
Key Points
Connector required – You must add the Office365Users connector to your app.
Permissions may be needed – Access depends on environment and admin settings.
Works for any user – You can get details of other users in the organization.
Slower than User() – It takes more time because it calls an API.
Not delegable – Some queries may have delegation limits.
Which One Should You Use and When?
| If your requirement is | Use |
|---|
| Logged-in user’s name/email/photo | User() |
| Searching employees | Office365Users() |
| Finding user job title/manager/department | Office365Users() |
| Offline support | User() |
| Fastest performance | User() |
| Organization-wide directory | Office365Users() |
Conclusion
Both User() and Office365Users() are powerful tools in Power Apps, but they serve different purposes.
If you only need the current user, go with User() — it is fast, simple, and more reliable.
For anything involving other users, directory search, or organizational data, use Office365Users().
Using both wisely helps you build faster, cleaner, and scalable apps.