<!-- https://unlockos.io/manual/members -->

# Member Management Help

## Overview

The **Members** page provides a unified directory of every guest who has interacted with your facility — through a reservation, form submission, or membership subscription. You can search, filter, view detailed profiles, leave internal staff notes, and manage the blacklist.

---

## Features

## Feature 1: Member List — Search, Filter, and Browse

Click **Members** in the side menu to open the directory.

### Search

Type an email address or name (partial match) in the search box. Results update automatically after a 300 ms debounce.

### Filters

| Filter | Description |
|--------|-------------|
| All | Every guest who has interacted with this facility |
| Subscribers | Guests with an active membership subscription |
| Pending subscription | Guests with a membership application awaiting staff approval — includes both apply-first applicants (no payment yet) and paid-plan applicants on plans that require manual review |
| Pending reservation | Guests with a reservation awaiting approval |
| Form only | Guests who submitted a form but have no reservation or subscription |
| Reservation only | Guests with reservation history but no subscription |
| Last 30 days | Guests who had any interaction in the last 30 days |

### Member Card Fields

| Field | Description |
|-------|-------------|
| Avatar | Stable gradient + initial derived from the email address |
| Name | Display name (staff-set) > alias (guest-set) > email — in that priority order |
| Badges | Subscriber (green) / Pending subscription (purple, clock) / Pending reservation (orange, clock) |
| Reservations | Cumulative reservation count at this facility |
| Forms | Number of submitted forms |
| Phone / Nationality | Shown when registered |
| Last seen | Date of the most recent interaction (right side) |

### Pagination

Default page size is 50 rows. When the total exceeds 50, **Previous** / **Next** buttons and a page counter appear.

## Feature 2: Member Detail View

Click a card to open the member's detail page (`/members/:identityId`).

### Header Card

| Field | Description |
|-------|-------------|
| Avatar | Same gradient/initial as the list view for consistent recognition |
| Display name / alias | Display name shown as the primary heading; alias shown as a sub-line |
| Email | Guest's email address |
| Phone / Nationality / Language | Registered attributes |
| Blacklist status | Red badge shown when the guest is currently banned |
| ID hash | 8-character identifier prefixed with `#` (top right) |

### KPI Strip (below the header)

| Metric | Description |
|--------|-------------|
| Lifetime value | Sum of reservations + check-ins + subscriptions (including outstanding AR) |
| First visit | Date of the earliest interaction at this facility |
| Member tenure | Elapsed years and months since the first visit |

### Portal Tiles (count + link)

Four tiles in the middle of the detail page show counts per category and link to the authoritative list.

| Tile | Link destination |
|------|-----------------|
| Check-ins | Check-in history page (pre-filtered by email) |
| Reservations | Check-in history page (pre-filtered to reservation entries) |
| Forms | Forms page (pre-filtered by this member) |
| Subscriptions | Check-in history (subscription filter) and Membership management page — on the Membership management page you can approve or reject pending applications submitted via the apply-first flow |

> **Why links instead of inline lists?** Each list view (check-in history, forms, membership) is the authoritative page for that data. Linking to them with filters already applied avoids duplicate management and keeps the source of truth clear.

## Feature 3: Display Name (Internal)

Staff can set an internal "display name" separate from the alias the guest entered. This name is never shown to guests.

### How to Set

1. Open the member's detail page.
2. Click the pencil icon next to the name.
3. Enter the display name (e.g. Taro Tanaka).
4. Click **Save** (or press Enter).

- Saving with an empty field removes the display name and surfaces the guest alias again.
- Press Escape to cancel.

## Feature 4: Staff Notes (Internal Memos)

The "Staff Notes" section at the bottom of the detail page lets staff add durable internal context about a member. Notes appear in a chat-bubble timeline, newest first.

### Adding a Note

1. Type the note in the text area (up to 4,000 characters).
2. Click **Add**.

Each note shows the author's initial, their email prefix, and the timestamp.

### Deleting a Note

Only the author can delete their own notes. Hover over a note to reveal the × button, then confirm deletion in the prompt.

> **Note:** Staff notes are never shown to guests. Deletion cannot be undone.

## Feature 5: Blacklist Management

Adding a guest to the blacklist blocks them from membership applications, reservations, and check-ins.

### Adding to Blacklist

1. On the member detail page, click **Add to blacklist**.
2. Enter a reason (required).
3. Choose the scope:

| Scope | Effect |
|-------|--------|
| This facility only | Blocks the guest at this facility only |
| Entire organization | Blocks the guest at all facilities under this organization |

4. Click **Add to blacklist** to confirm.

### Removing from Blacklist

Click the **Remove** link inside the red badge in the header card. The ban is lifted immediately.

### Blacklist Tab

The **Blacklist** tab on the Members page lists all active blacklist entries for your facility and organization.

---

## Guest Self-Profile Editing

In the member app (`member.unlockos.io`), guests can edit their own profile fields.

| Field | Description |
|-------|-------------|
| Name (alias) | The guest's self-entered name |
| Phone | Contact phone number |
| Address | Postal address |
| Nationality | Nationality |

Clicking **Edit** opens a modal. Only the changed fields are submitted.

---

## FAQ

### Q: When does a guest appear in the member list?

A guest appears as soon as they make a reservation, submit a form, or apply for a membership at your facility.

### Q: Is the display name visible to guests?

No. The display name (`display_name`) is a staff-only internal field and is never surfaced in any guest-facing app.

### Q: Can all staff members see notes?

Yes. Notes are visible to all staff at the facility. Only the author can delete their own notes.

### Q: Are blacklist reasons communicated to guests?

No. Reasons are only visible in the staff management interface and are never sent to the guest.

### Q: What is the difference between "this facility only" and "entire organization"?

- **This facility only**: The guest can use other facilities in your organization normally.
- **Entire organization**: The guest is blocked at every facility under the same organization.

---

## Related Pages

- [Check-in History](checkin-history.md)
- [Forms](forms.md)
- [Membership Management](membership-plans.md)
- [Blacklist Management](blacklist.md)
