Power Apps  

User() vs Office365Users() in Power Apps — What’s the Real Difference?

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

  1. Office365Users.MyProfile()
    Gets the full profile of the currently logged-in user.

  2. Office365Users.UserProfileV2(email)
    Gets profile details of any user using their email.

  3. Office365Users.SearchUser({searchTerm:"name"})
    Searches for users in the organization.

  4. Office365Users.UserPhoto(email)
    Gets the profile photo of any user.

  5. 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 isUse
Logged-in user’s name/email/photoUser()
Searching employeesOffice365Users()
Finding user job title/manager/departmentOffice365Users()
Offline supportUser()
Fastest performanceUser()
Organization-wide directoryOffice365Users()

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.