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

# Search, edit, and manage your camp members in PlayaOS

> Search, filter, and edit member profiles — update roles, apply tags, view full activity history, export the roster, and track changes in the audit log.

The Members page gives you a live view of confirmed members in your camp's portal. From here you can edit profiles, change roles, organize members with tags, and export the full roster.

<Info>
  Applicants and newly registered profiles are managed from [**Admin → Accounts**](/admins/managing-accounts) instead. The Members page focuses on people who have been granted a role in your camp.
</Info>

## Searching and filtering the members list

Navigate to **Admin → Members**. The table loads with all profiles for the current camp year.

Use the search bar to find members by name or email. You can also filter by:

* **Role** — `member`, `admin`, `super_admin`
* **Status** — `active`, `inactive`, `rejected`

Filters combine, so you can find all active members with a specific role, or all inactive members regardless of role.

## Editing a member's profile

<Steps>
  <Step title="Open the member record">
    Click a member's row in the table, or navigate to **Admin → Members → \[name]**.
  </Step>

  <Step title="Edit any field">
    Click **Edit Profile** to update any field — name, phone, emergency contact, dietary restrictions, arrival and departure dates, T-shirt size, and more.
  </Step>

  <Step title="Save changes">
    Click **Save**. All changes are logged to the member's audit trail automatically.
  </Step>
</Steps>

<Note>
  As an admin, you can override any field a member has set themselves. This is useful when correcting data submitted via the application form or when a member can't log in.
</Note>

## Changing a member's role

From the member detail page, use the **Role** dropdown to assign a new role. Available roles are:

| Role          | Access level                            |
| ------------- | --------------------------------------- |
| `member`      | Member dashboard                        |
| `admin`       | Admin portal                            |
| `super_admin` | Full admin access + manage other admins |

<Warning>
  Promoting a member to `admin` or `super_admin` counts against your plan's admin seat limit. You'll see an error if you're at the limit.
</Warning>

Role changes sync to the authentication system immediately, so access changes take effect on the member's next page load.

## Adding and removing member tags

Tags let you group members for filtering, shift assignments, and broadcast targeting. To manage tags:

1. Go to **Admin → Member Tags** to create and color-code tags for the camp year.
2. From a member's profile, use the **Tags** section to add or remove tags.

Common uses for tags: first-timers, team leads, kitchen crew, infrastructure team, scholarship recipients.

## Viewing a member's full history

Open any member's profile and scroll to the **Activity** section to see:

* **Payments** — every dues transaction, whether paid via Givebutter or recorded manually.
* **Shifts** — all shift signups and assignments, with statuses.
* **Documents** — which required documents have been signed and when.
* **Profile edits** — a log of every change made to their profile, who made it, and when.

## Exporting the member roster to Google Sheets

Click the **Export** button at the top of the Members page. This syncs the current member data to a Google Sheet with columns for name, email, phone, shelter type, arrival, departure, dietary restrictions, and more.

<Tip>
  The export reflects the live data at the moment you click. Run it again at any time to get an updated snapshot. This is useful for on-playa operations when you want an offline backup.
</Tip>

## Checking the audit log for changes

The audit log at **Admin → Audit** records system-wide events including emails sent, webhooks received, and profile modifications.

For changes to a specific member's profile, open their profile page and look at the **Edit History** tab — this shows a field-by-field diff of every change, who made it, and the exact timestamp.

<Info>
  The audit log tracks changes made by admins. Member self-edits are also recorded, so you can always see who last updated a field.
</Info>

## Adding a member manually

Use the **Add Member** form at the top of the Members page to create a profile directly. This is useful for adding someone who isn't going through the standard application flow. Fill in their name, email, phone, role, and status, then click **Add Member**. They'll receive an invite to set up their account.

## Bulk importing members from a CSV

Click **Import Members** at the top of the Members page to create many profiles at once from a CSV — useful when migrating from a spreadsheet or onboarding a returning cohort.

<Steps>
  <Step title="Download the template">
    In the import modal, click **Download Template** to get a CSV with the expected columns: `email`, `first_name`, `last_name`, `phone`, `playa_name`, `role`, and `status`. `email`, `role`, and `status` are required for every row.
  </Step>

  <Step title="Upload and preview">
    Upload your filled-in CSV. PlayaOS validates each row and highlights any problems — missing required fields, invalid email formats, or duplicates that already exist in the roster. Fix issues in the CSV and re-upload, or proceed with only the valid rows.
  </Step>

  <Step title="Run the import">
    Click **Import N Members** to create accounts. You'll see a summary showing how many profiles were created and which rows failed, with a per-row reason for each failure.
  </Step>
</Steps>

### How failures are handled

* **Partial imports succeed.** If some rows fail (for example, an invalid email or an address already taken), the remaining valid rows are still imported. You get a summary listing exactly which rows failed and why, so you can correct them in the CSV and re-run the import with just those rows.
* **Failed rows leave no traces.** If profile creation fails after the sign-in account was already provisioned, PlayaOS automatically removes the orphaned sign-in account so re-importing the same email in a corrected row works cleanly.
* **Existing sign-in accounts are reused.** If a row's email already has a sign-in account (for example, from a previous camp), PlayaOS links the new profile to the existing account instead of failing the row.

<Note>
  Rows that fail because a profile with the same email already exists in this camp are reported as `profile already exists`. Use the [Accounts page](/admins/managing-accounts) to review or clean up the existing records before re-importing.
</Note>

## Finding members with unsure travel dates

Navigate to **Admin → Logistics → Unsure Travel Dates** to see every active member who has not yet confirmed both an arrival and a departure date on their profile. Because shift eligibility and meal headcounts are calculated from these fields, chasing down missing dates is one of the most high-leverage things to do before the event.

The list shows each member's name, email, and which specific dates are missing (arrival, departure, or both). Use it as a to-do list for follow-up emails — members who appear here won't see any shifts in their portal and won't be counted in kitchen headcounts until their dates are set.

<Tip>
  All dates in member profiles are still edited from the member detail page. This logistics view is read-only — it surfaces who needs a nudge, and you can click through to any member to fill in their dates directly.
</Tip>
