> ## Documentation Index
> Fetch the complete documentation index at: https://docs.member.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Manage hub members in the admin

> See who belongs to a hub, filter the list, change a member's role, remove or add back a member, and open a member's record with its billing, history, and achievements.

The **Members** page in the admin lists everyone who belongs to one hub. From it you look people up, open a member's billing, history, and achievements, change a member's role, and remove a member from the hub or add them back. Warning and banning happen in the hub itself.

## Open the Members page

Select **Hubs** in the admin sidebar, then **Manage** on a hub's card. Select **Members** in the hub sidebar. The page is team-scoped: you need access to the team that owns the hub, and the page shows "You do not have access to members" and "Ask the team owner or a hub admin for access." when you do not. See [Getting started in the admin](/guides/admin-getting-started#4-open-or-manage-a-hub) for the hub workspace and [Tenancy](/concepts/tenancy) for how teams and hubs fit together.

The page is titled **Members** and has three tabs: **All members**, **Achievements**, and **Attributes**. The tab you pick is kept in the page address (`?tab=`). This guide starts with **All members**; the other two are described under [Achievements](#achievements) and [Attributes](#attributes).

## Filter the list

The sliders button at the end of the tabs row narrows the list. It opens a menu with three choices:

| Choice | Shows |
| - | - |
| **All members** | Everyone who has not left, including banned and suspended members. This is the default. |
| **Team** | Members who hold a role beyond ordinary member, such as an admin or moderator. |
| **Removed** | Members who were taken out of the hub or left on their own. |

When you pick **Team** or **Removed**, the button shows the choice by name with a cross. Select the cross, choose **All members**, or select **Show everyone** on an empty result to go back. The choice is kept in the page address (`?filter=`).

There is no search box and no sorting on this page yet.

When a filter has no rows, the page says **Nobody here** with a hint, such as "Admins and moderators show up here. Open a member to change their role." for **Team**, or "Members taken out of the hub show up here, so they can be added back." for **Removed**. With no members at all, it says **No members yet**: "People who join the hub show up here."

### When the list stops early

The admin checks members a page at a time. For **All members** and **Team**, it may need to read through several pages before it finds rows to show, so you can briefly see a loading state. If it stops before it has checked everyone, it says so rather than claiming nobody matches:

* **No matches in the members checked so far** with a **Load more members** button. Select it to keep looking.
* **We couldn't load every member** with a **Retry** button. Select it to start the check again.

When some rows are already showing, the same stall appears as a warning above the list, "We couldn't load every member. The list stopped advancing, so some may be missing.", with a **Retry** button. A "Could not refresh members. What you see may be out of date." warning means the list may be out of date; select **Retry** to refresh it. When more pages exist, a **Load more** button sits under the list, and it becomes **Retry** with "Couldn't load more members." if a page fails. If the first load fails, the page shows **Couldn't load members** with a **Retry** button.

## Read the list

Each row has three columns and a menu:

| Column | What it shows |
| - | - |
| **Member** | "Member since" and the date they joined. |
| **Role** | **Owner**, **Admin**, or **Moderator** for people with an elevated role, and nothing for an ordinary member. A status badge (**Suspended**, **Banned**, or **Removed**) appears here when the member is not active. |
| **Last active** | When the member was last seen, in words such as **Today**, **Yesterday**, "3 days ago", or "2 weeks ago", or a dash when there is none. |

Member names and email addresses are not available in this view yet, so rows are labelled by join date. Select a row to open the member's record.

## Change a role, remove, or add back

The **options** menu at the end of a row appears when you point at the row, and always on touch screens. It is turned off for a moment while a change to that member is saving.

* **View member** opens the record panel.
* **Admin**, **Moderator**, and **Member** set the member's role. The current role is marked. A toast confirms, for example "Role changed to admin". Role choices are not offered for the hub's owner or for a removed member.
* **Remove from hub** asks you to confirm in a dialog, "Remove Member since ... from this hub?", which explains that "They lose access to the hub right away. You can add them back later from Removed." Select **Remove from hub** to confirm. A toast says "Removed from the hub". The owner cannot be removed.
* **Add back to hub** appears for removed members, and the toast says "Added back to the hub".

If a change fails, a red line above the list says "Could not update ... Try again."

## Open a member's record

Select a row to open the member's record in a side panel. It is titled "Member since" and the join date, shows the status badge, and has four tabs: **Overview**, **Billing**, **History**, and **Achievements**.

**Overview** shows the membership record:

* **Role** (shown as **Member** for an ordinary member)
* **Status**
* **Joined**
* **Last seen**
* **Onboarded**
* **Terms accepted**, only when the member has accepted the terms

A dash means no value is recorded.

**Billing** has two lists:

* **Subscriptions**, with the plan name, price and billing interval, renewal date, and a status badge. It shows **No subscriptions.** when there are none.
* **Orders**, with the total, the date, and a status badge. It shows **No orders.** when there are none.

Each list shows a first batch. Select **Load more subscriptions** or **Load more orders** for the rest. If a batch fails to load, the button becomes **Retry**.

**History** has two sections:

* **Activity**: **Logins**, **Last login**, **Searches**, and **Last search**. A member who has never signed in or searched shows **No activity recorded yet.**
* **Membership**: **Joined the hub**, **Finished onboarding** when it applies, and **Status** (**Removed from the hub**) for removed members.

**Achievements** lists the badges the hub offers, with this member's state on each: **Awarded**, **Revoked**, or **Not awarded**. Three actions are shown only where they can work:

* **Grant** gives a hand-awarded badge to a member whose status is active. A badge that is awarded automatically cannot be given by hand, and banned, suspended, or removed members cannot be granted badges.
* **Revoke** takes an awarded badge back. It asks you to **Confirm revoke** on the row first.
* **Restore** brings back a revoked badge.

To say what it knows, a row may show **Not checked yet** with a button to check more, **Could not check** with a retry, or **No access**. The admin never claims a badge is not awarded until it has checked every record.

If the member you opened is far down the list, for example from a shared link, the panel keeps looking for them. It can stop with **Load more members** or a **Retry** warning, in the same way as the list. It only says the member was not found after it has checked everyone.

## Open the member's profile in the hub

At the bottom of the panel, **Open profile in hub** opens the member's profile on the member-facing hub in a new tab. It is not shown for removed members, or when the admin has no hub address configured.

## Warnings and bans

The admin does not warn or ban a member. Do those in the hub itself, from the member's profile. Use **Open profile in hub** to get there. See [Community workflow](/guides/community-workflow) for how moderation works.

## Achievements

The **Achievements** tab lists the badges this hub offers. The table has **Achievement**, **Type**, **Points**, and **Status** columns. The type is **Milestone** (earned on its own once a member reaches a rule, for example a number of logins) or **By hand**. The status is **Live**, **Secret**, **Inactive**, or a warning such as **Not set up** or **Needs attention** for a milestone rule that is not running. The sliders button filters by **All**, **Milestone**, **By hand**, or **Inactive**.

* **New achievement** (in the tabs row) opens a panel for a badge you give by hand: a **Name**, a **Description**, the badge's shape, outline color, and content (text or an icon), **Points**, **Secret until earned**, and **Email the member**. Once saved, the badge is offered in this hub, and you give it to a member from their record.
* A row's menu has **View details**, a read-only panel that explains how the badge is earned, and **Remove from this hub**. Members keep a removed badge on their profile.
* Achievements are not edited or archived here. Without anything yet, the tab says **No achievements yet**.

If the achievement catalog cannot be read, a warning says titles and points are hidden, and rows read "Achievement (details unavailable)".

## Attributes

The **Attributes** tab sets how this hub uses the team's contact attributes. Names, types, and options are set once, for every hub, under **Contacts › Attributes**. The table lists the attributes added to this hub, with four settings for each:

| Column | What it controls |
| - | - |
| **Asked at signup** | **No**, **Optional**, or **Required** at sign-up. |
| **Shows on profile** | Whether the attribute appears on the member's profile. |
| **Member can edit** | Whether the member can change their own value. |
| **Searchable** | Whether members can search by it. |

**Add attribute** (in the tabs row) adds one of the team's attributes to this hub, or opens **New attribute in Contacts**. A row's menu removes it from this hub. Each change saves right away and a toast confirms it. With nothing added yet, the tab says **No attributes yet**.

## Related

* [Member journey](/guides/member-journey): how a visitor becomes a member.
* [Manage contacts in the admin](/guides/admin-contacts): the team-wide list of people, with tags and attributes.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.