Almanac
Microsoft/power-appsPower Platform

Consultant KB for Microsoft Power Apps: canvas apps, model-driven apps, Power Fx, data and connections, controls and UI, code and extensibility, mobile and offline, ALM and solutions, governance and security, licensing and performance, plus cross-cutting decision guides. Implementation notes, configuration decisions and the gotchas that bite on real projects. Populated by the daily author agent from the Power Apps release plans, docs repo and product blog, plus the author's own consultant notes.

feature-modern-persona-control.mdv1 · history
CurrentApplies to CanvasUpdated 3 weeks agoSource Microsoft Learn ↗

Status: Public Preview — behaviour may change.

What it does

A modern-theme control that shows one person or entity: an avatar, up to three lines of text and an optional presence badge. It shows the Image when there is one and falls back to initials derived from Name. It only becomes clickable when OnSelect contains a formula.

Key facts

  • Preview, and a new control. Studio offers no upgrade action from another control, so you place it and rewire by hand.
  • Text lines: Name (defaults to User().FullName), Caption (defaults to User().Email) and Details (blank). Image defaults to User().Image.
  • Presence takes PresenceBadge values (Available, Away, Busy, Do not disturb, Offline, Out of office, Blocked, Unknown, None). OutOfOffice adds an out-of-office indicator and does nothing while Presence is None.
  • Layout: TextPosition (After, Before, Below), TextAlignment, Align, VerticalAlign, Shape (circular or square) and Appearance (a fixed AvatarColor palette used for the initials).
  • With an active OnSelect it uses button semantics and responds to Enter and Space. Without one it's display-only.
  • It has no output property: no selected person, no edit state.

When to use / skip

Use it for a single person in a header, a record card or a "owned by" slot where you want the standard Fluent look and sensible accessibility for free. Skip it for lists of people (use a gallery or an Avatar Group) and for anything in a production app that can't carry preview risk.

Configuration decisions

  • Where Name, Caption and Details come from: the signed-in user, a Dataverse or Entra lookup, or a static value.
  • How you drive Presence, given the control won't fetch it.
  • Whether it's display-only or interactive, and if interactive, what OnSelect does and what AccessibleLabel says.
  • Appearance per person (a hard-coded colour, or a formula keyed off something stable) so the same person doesn't change colour between screens.

Gotchas

  • Presence is not live. It's a value you supply. The control doesn't call Teams or Microsoft Graph, so a green badge is only as current as your formula.
  • Defaults point at the signed-in user. Drop it into a gallery template and forget to override Name, Caption and Image, and every row shows you.
  • Image fallback is silent. A blank or failed image gives initials with no error, which hides a broken photo lookup until someone notices.
  • Interactive needs a real label. The derived accessible label describes the person, not the action, so set AccessibleLabel when OnSelect does something.
  • Presence changes aren't announced to screen readers as live updates, by design.

Consultant notes

  • Be clear with the business that presence here is decoration you feed, not a Teams status feed. It comes up in demos.
  • Pull photos and presence through one agreed pattern for the app, and test the no-photo path with a real user who has none.
  • If a screen needs more than one or two people, a gallery of Persona controls gets heavy and awkward to maintain; settle the layout early.
  • Preview means no production commitment, so list it as a risk item if it lands in go-live scope.

Revisit when Persona leaves preview or gains a live presence option.

Was this accurate?