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

Key Points

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

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.