Skip to main content
Admin β†’ Employees (/admin/0) is where you manage every user in your org β€” accounts, roles, managers, custom attributes, bulk imports/updates, deactivation, and exports. Employees tab β€” user management table
Access to this tab requires either the Admin role or a People domain admin role. Several actions on this page are gated by additional feature flags β€” see the action tables below.

The users table

Each row is one user. The table supports server-side search, filter, sort, and column visibility. Use the column picker (checkbox icon in the top bar) to toggle which columns are visible. Users table with column picker open Legacy table also exposes: Position, Job Title, Employee ID, Location, User Type, Hire Date, Deactivation Date, Phone Number. Free-text search across the table is at the top.

Top-bar actions

Buttons appear conditionally based on role and feature flags.

Adding a user

Click Add Users to open the create form. The dialog supports adding multiple users in one go (User #1, User #2, …) and a top-right Send Invitations checkbox controls whether invite emails go out on submit. Add user dialog Fields: * Email or phone is required. When Send Invitations is checked, new users with an email receive a welcome / magic-link email immediately.

The user detail page

Click a user’s name to open their detail page. It has tabs for Skills, Experience, and Requests, an Impersonate button (when allowed), and a three-dot actions menu in the top right. User detail page β€” Requests tab

User actions menu

The three-dot menu in the user detail header exposes the per-user actions: User actions menu with module submenu

Edit user dialog

Same layout as Add Users, with the email field disabled. All other fields (including custom attributes) can be changed. Edit user dialog

Update users from CSV

A 4-step wizard launched from the top bar. Use it to update many users at once (it does not create new users β€” use Add Users for that, or contact support for bulk-create from file).
  1. Upload file β€” .xlsx or .csv.
  2. Map columns β€” match each spreadsheet column to a user field (displayName, primaryEmail, phoneNumber, role, department, location, jobTitle, modules, employeeId, managerId, userType, hireDate, custom attributes).
  3. Migration policy β€” pick how conflicts are resolved (overwrite, skip, append for list-typed fields).
  4. Preview β€” review the diff before applying.
Errors and unchanged rows are surfaced in the preview step.

Bulk deactivate users from Excel/CSV

Use this when you need to deactivate many users at once β€” for example, after an offboarding batch, an acquisition cleanup, or a contractor rotation. It’s faster than opening each user and clicking Deactivate User, and it only requires the list of email addresses. The action is gated by the DEACTIVATE_USERS_EXCEL feature flag (default: blocked) and requires Support level β‰₯ 2 (Juno staff). Look for the person-off icon in the Employees top bar.

What it does

  • Reads email addresses from one column of an .xlsx or .csv file.
  • Matches them to users in your tenant case-insensitively by primaryEmail.
  • Sets inactive: true on each matched, currently-active user (same effect as the per-user Deactivate User action β€” sign-in is blocked, data is preserved, and the user’s effective role becomes BLOCKED).
  • Skips users that are already inactive and reports emails that don’t match any user.
It does not delete users, transfer ownership, or change roles. To remove a user permanently, deactivate first and then use Delete User on the user detail page.

Limits and safeguards

Wizard steps

  1. Upload file β€” drop in an .xlsx or .csv. Juno treats the first row as a header. Optionally check Allow Juno internal emails before uploading.
  2. Pick the email column β€” if the file contains more than one column that looks like emails, select which one to use. Juno skips this step when it detects only one email column.
  3. Preview (dry run) β€” Juno runs a server-side dry run and shows three groups:
    • To deactivate β€” active users Juno will deactivate, with name and email.
    • Already inactive β€” matched users that are already deactivated (no-op).
    • Not found β€” emails with no matching user in the tenant.
  4. Confirm β€” click Deactivate to apply. The result shows deactivatedCount and any failedEmails that errored during the write.

Example file

A single column named email is enough:
Extra columns are fine β€” you’ll pick the email column in step 2.

API reference

The wizard calls two endpoints. Both require an authenticated session with Support level β‰₯ 2. Request body (both endpoints):
Dry-run response:
Apply response extends the dry-run shape with the write outcome:

Custom attributes

Manage Custom Attributes opens a dialog where you can define org-specific user fields. Click + Create New Attribute to add one; use the pencil/trash icons to edit or delete an existing attribute. Manage Custom Attributes dialog Each attribute has a type: Per attribute you can also set:
  • Visible to managers β€” appears on the user record for managers viewing their reports.
  • Editable by managers β€” managers can change the value (otherwise read-only for them).
Custom attributes show up:
  • In the user create / edit form
  • As mappable columns in Update Users from CSV
  • In the row data (if you add the column via the column picker)
Editing or deleting an attribute is done from the same dialog. The page reloads after creation to refresh schema-dependent UI.

Search, filter, and sort

  • Search β€” free-text input at the top, matches name / email / employee fields.
  • Per-column filter β€” filter icon in each column header (autocomplete, date range, group picker, role enum, etc.). See the table above for which columns are filterable.
  • Sort β€” click the sort icon on sortable columns (Permission, Last Activity, Skills, User Status, Department, Company).
  • Column visibility β€” the column-picker icon (top bar) toggles optional columns.
Filters and sort are persisted in the URL β€” share the link to share the view.

Bulk actions

Triggered from the top bar (not from row selection):
  • Send Invitation Email β€” sends to all users in the filtered view who are active and have never logged in.
  • Bulk Delete Users β€” Juno-support tool; uploads a file of user IDs, previews, then deletes.
  • Deactivate Users from Excel/CSV β€” Juno-support tool; uploads an email list, previews matches, then deactivates.
  • Update Users from CSV β€” described above.

Export

Click Export to download the currently filtered view as Excel (default) or CSV. Only visible columns are exported. When the User column is included, the export expands it into: displayName, primaryEmail, employeeId, department, jobTitle, inactive, location, hireDate, managerDisplayName, managerPrimaryEmail, managers. Hidden columns are not exported β€” toggle them on via the column picker first if you need them.

Roles

Numeric values from @juno/constants: Domain admins (People, Content, Budget, etc.) get admin-level access scoped to one domain β€” see Roles & Security.
Last modified on May 24, 2026