StaffMember
A staff member belonging to a business. Combines the staff directory (name, email, bio) with optional login access (user + permissions).
Fields
idID!namePersonName!pronounsStringOptional free-form pronouns to display alongside the staff member's name.
initialsString!Initials derived from the staff member's name (e.g. "JD" for "Jane Doe").
bioStringResolved for the given locale, falling back to English. Defaults to the viewer's locale.
Arguments (1)
localeLocaleprofileImageImageProfile picture for the staff member. Falls back to the linked user's avatar when the staff member has no dedicated image set, so clients don't need to read both fields.
metadata[MetadataEntry!]!All structured metadata stored on this staff member, one entry per key. Per-business social/external links live under the sessions.social.* keys.
upcomingSessions[ActivitySession!]!The next sessions this staff member appears on, for their public profile. Resolves the same roster a session itself does (ActivitySession.staff): sessions they are assigned to directly, plus sessions of activities they are assigned to — sessions generated from a recurring schedule carry no staff rows of their own, so an assignment-only read misses most of a regular instructor's week.
Public-safe regardless of viewer: only sessions of public activities, never appointment bookings, never cancelled or already-ended ones. Soonest first; first is clamped to [1, 20].
Arguments (1)
firstIntactivities[Activity!]!Public activities this staff member is assigned to, ordered by name and capped at 20. What a public profile shows when nothing is on the schedule: a business that runs on appointments has no public sessions at all (its bookings are private), but its practitioners still have services to show.