Why XpertAdmin exists
Bulk admin work shouldn't take all week.
The old way: 1,000 users, one form at a time. Days of clicking, typos and timeouts.With XpertAdmin: fill one sheet, click Run, and every row reports back.
Sheets add-on for Google Workspace™ admins
Update 1,000 Google Workspace users in one run.
Onboarding, offboarding, group changes, aliases and audits, all from a Google Sheet. Fill in rows, click Run, and XpertAdmin writes the result back to every row.
Try it free for 15 days. No GAM, no command line, no service account.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | primaryEmail | givenName | familyName | orgUnitPath | Status |
| 2 | emma.clarke@xpertadmin.com | Emma | Clarke | /Sales | OK: created · 18:24:07 |
| 3 | james.walker@xpertadmin.com | James | Walker | /Engineering | OK: created · 18:24:07 |
| 4 | olivia.b@xpertadmin.com | Olivia | Bennett | /Finance | ERROR: Entity already exists · 18:24:08 |
| 5 | t.hughes@xpertadmin.com | Thomas | Hughes | /Engineering | OK: created · 18:24:08 |
| 6 | sophie.t@xpertadmin.com | Sophie | Turner | /HR | OK: created · 18:24:09 |
| 7 | daniel.r@xpertadmin.com | Daniel | Reed | /Sales | OK: created · 18:24:09 |
Problems it solves
The admin jobs that eat your week, done from one sheet.
Each one below is a task Workspace admins repeat all year. Here is what it looks like today, and what it looks like with XpertAdmin.
Onboarding
A new batch of joiners starts on Monday
The problem
In the Admin console every new account is its own form: name, email, password, organisational unit, then a separate trip to each group. A hiring wave or the start of a school term turns into an afternoon of the same clicks.
With XpertAdmin
- Paste the joiner list into the Create Users sheet and click Run.
- Names, passwords and organisational units are set in one pass.
- Add everyone to their groups from the Add Members sheet straight after.
- Every row reports OK or the exact error, so nobody gets missed.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | primaryEmail | givenName | familyName | orgUnitPath | Status |
| 2 | liam.foster@xpertadmin.com | Liam | Foster | /Sales | OK: created |
| 3 | ava.morgan@xpertadmin.com | Ava | Morgan | /Support | OK: created |
| 4 | noah.price@xpertadmin.com | Noah | Price | /Engineering | OK: created |
Offboarding
Someone leaves and access has to end today
The problem
A leaver needs their account suspended and their group memberships removed, often across several screens. Under pressure it is easy to miss a group, and a former employee keeps receiving company mail.
With XpertAdmin
- Suspend a list of leavers in one run, not one account at a time.
- Export every group’s members, filter to the leavers and remove them all.
- Unsuspend from the same sheet if someone was suspended by mistake.
- The Status column is your record of what was done and when.
| A | B | |
|---|---|---|
| 1 | primaryEmail | Status |
| 2 | oliver.grant@xpertadmin.com | OK: suspended · 09:02 |
| 3 | chloe.dawson@xpertadmin.com | OK: suspended · 09:02 |
| 4 | harry.ellis@xpertadmin.com | OK: suspended · 09:03 |
Bulk updates
A reorganisation changes 300 titles, departments and OUs
The problem
Job titles, departments and organisational units all change together after a reorg. Editing each user by hand is slow, and re-importing a full CSV risks overwriting fields you never meant to touch.
With XpertAdmin
- Export all users, change only the cells that need changing, and run Update Users.
- Blank cells are left alone, so nothing you didn’t edit gets wiped.
- Move people between organisational units in the same run.
- Rows already marked OK are skipped if you run it again.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | primaryEmail | title | department | orgUnitPath | Status |
| 2 | emma.clarke@xpertadmin.com | Sales Lead | Sales | /Sales/EMEA | OK: updated |
| 3 | james.walker@xpertadmin.com | Platform | /Engineering | OK: updated | |
| 4 | daniel.reed@xpertadmin.com | Team Lead | OK: updated |
Groups
Nobody is sure who is in which group
The problem
Group memberships drift over the years. Mailing lists keep former staff, shared drives stay open to people who moved teams, and answering who can see what means opening groups one at a time.
With XpertAdmin
- Export the members of one group, or of every group, into a single sheet.
- Filter and sort it like any spreadsheet to spot who shouldn’t be there.
- Add members, remove members, or change roles between Owner, Manager and Member in bulk.
- Create or delete groups from a list.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | groupEmail | memberEmail | role | Status |
| 2 | sales@xpertadmin.com | emma.clarke@xpertadmin.com | OWNER | OK: role changed |
| 3 | sales@xpertadmin.com | liam.foster@xpertadmin.com | MEMBER | OK: added |
| 4 | support@xpertadmin.com | oliver.grant@xpertadmin.com | MEMBER | OK: removed |
Aliases
A rebrand or a new domain means new addresses for everyone
The problem
When a company renames itself, merges or adds a domain, every user needs an extra address so old and new mail both arrive. Adding aliases user by user doesn’t scale past a handful of people.
With XpertAdmin
- Add aliases for the whole company from a two-column list.
- Remove old aliases the same way once the transition is over.
- Export all existing aliases first to check for clashes.
| A | B | C | |
|---|---|---|---|
| 1 | primaryEmail | alias | Status |
| 2 | emma.clarke@xpertadmin.com | emma@xpertadmin.co | OK: alias added |
| 3 | james.walker@xpertadmin.com | james@xpertadmin.co | OK: alias added |
| 4 | sophie.turner@xpertadmin.com | sophie@xpertadmin.co | ERROR: Entity already exists |
Audits
An auditor wants a list of every account, today
The problem
Security reviews, licence true-ups and compliance audits all start with the same question: who has an account, which are suspended, and who is in which group. Pulling that together by hand takes days.
With XpertAdmin
- Export all users, groups, group members, aliases and recently deleted users, each into its own sheet.
- Share the sheet with the auditor, or keep a dated copy as a record.
- Exports are unlimited on every plan, including the free trial.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | primaryEmail | orgUnitPath | suspended | isAdmin |
| 2 | emma.clarke@xpertadmin.com | /Sales/EMEA | FALSE | FALSE |
| 3 | oliver.grant@xpertadmin.com | /Support | TRUE | FALSE |
| 4 | thomas.hughes@xpertadmin.com | /IT | FALSE | TRUE |
Safety
One wrong bulk change can hit hundreds of people
The problem
Bulk tools are powerful in both directions. A wrong column or a stray row can suspend or delete the wrong accounts, and scripts rarely ask before they act.
With XpertAdmin
- Dry run checks every row’s required fields without changing anything.
- Delete and remove jobs only start after you type DELETE.
- Deleted users can be exported and restored within Google’s 20-day window.
- Every row records what happened, with a timestamp.
This removes the accounts listed in the Delete Users sheet. Type DELETE to continue.
DELETENo command line
GAM works, if you have time to learn it
The problem
Command-line tools like GAM can do almost anything, but they need installing, a Cloud project, API setup and exact command syntax. Many admins only need bulk changes a few times a month and don’t want to relearn the commands each time.
With XpertAdmin
- Install from the Google Workspace™ Marketplace and open any Google Sheets™ spreadsheet.
- Pick a task from the sidebar; the sheet gets the right columns.
- Large jobs run in chunks with automatic retries, so long lists finish.
gam csv users.csv gam create user ~email firstname ~first lastname ~last password ~pw org ~ou
Who it’s for
Built for the people who run Google Workspace.
IT teams
Handle joiners, leavers and reorganisations without a ticket queue of one-by-one console changes.
Schools and colleges
Create a whole intake of student accounts at the start of term, move year groups between OUs, and suspend graduates in one run.
Managed service providers
Use the same sheets across every client domain you look after, with a status record for each change.
What you can do
Every routine directory job, one sheet per task.
Each operation gets its own template with the right columns. Export first, edit the cells you need, then run.
Users 8 operations
- Export all users
- Bulk create
- Bulk update (only filled cells change)
- Suspend and unsuspend
- Delete
- Export and restore deleted users
Aliases 3 operations
- Export all aliases
- Bulk add
- Bulk remove
Groups 7 operations
- Export groups
- Bulk create and delete
- Export members, one group or all
- Add members
- Change roles: Owner, Manager, Member
- Remove members
Built for real batches
Safe to run on thousands of rows.
Status column
Every row reports back
Each row gets OK or ERROR with a timestamp. Rows already marked OK are skipped, so you fix the errors and click Run again.
Dry run
Check before you change
Validate required fields on every row without touching the directory.
Type DELETE
Guarded deletes
Delete and remove jobs only start after you type DELETE to confirm.
Chunked runs
No 6-minute timeouts
Large jobs run in short chunks that pick up where the last one stopped, so tens of thousands of rows finish.
Auto-retry
Handles API limits
Calls that hit Directory API quota or 503 errors are retried with backoff.
Admin install
Deploy domain-wide
Install for yourself, or push it to your admin team from the Admin console.
How it works
From install to first bulk change in minutes.
Step 1
Install
Add XpertAdmin from the Google Workspace™ Marketplace and open any Google Sheets™ spreadsheet as a super admin or delegated admin.
Step 2
Export
Pull your users, aliases or groups into a sheet. Exports are read-only.
Step 3
Edit rows
Change the cells you need, or fill in a template for new users and groups.
Step 4
Run
Click Run in the sidebar. Watch the Status column fill in and re-run any rows that failed.
Watch the demos
See XpertAdmin work, start to finish.
Four short videos with narration and subtitles, about 7 minutes in total. Start with the overview, or jump to the task you need.
Part 1 · Overview & getting started
Install, grant access, first exportSecurity and privacy
Your directory data never leaves your Google account.
XpertAdmin runs on Google Apps Script inside your own Workspace. It calls the Admin SDK Directory API directly and writes results to your Sheet. We do not copy, store or see your users, groups or aliases.
The only thing our license server receives is the email address of the admin running it. We store it with that admin’s plan and trial dates, so we can check which plan they are on.
Pricing
Priced per admin, per year.
You only pay for the admins who run XpertAdmin. Start with a 15-day free trial, no card needed. After 15 days, choose Standard or Professional to keep using XpertAdmin.
Free
- Free for 15 days, then choose a paid plan
- Writes up to 25 rows per run
- Unlimited exports
- All users, alias and group operations
- No card needed
Most popular
Standard
- Unlimited operations
- Full access to the user, group, member and alias tools
- Chunked runs for large batches
- Self-service, no support included
Professional
- Everything in Standard
- Early access to new modules and features
- Email support, reply within 48–72 hours
Prices in USD, billed yearly. Need enterprise pricing, invoices, or licences across several client domains as an MSP? Contact us.
FAQ
Common questions
Any Google Workspace super admin, or a delegated admin with rights to manage users and groups. Non-admins can install it but will see a message that admin access is required.
Admin SDK access to users and groups, access to the current spreadsheet only, the ability to show a sidebar, an outbound request to check your license, and your email address to identify your account.
Each row records its own result. Fix the rows marked ERROR and click Run again. Rows already marked OK are skipped.
Google keeps deleted users for 20 days. Use Export deleted users, then Restore deleted users to bring them back within that window.
Yes. The Free plan runs for 15 days and needs no card. During that time you can export without limit and write up to 25 rows per run, with every user, alias and group operation available. When the 15 days are up, runs and exports pause until you choose Standard or Professional.
Yes. It uses the same Admin SDK Directory API that every Workspace edition provides, so schools can create and manage student and staff accounts the same way.
No. You install it from the Google Workspace™ Marketplace, approve the permissions once, and it runs as you, with your admin rights.
For day-to-day user, alias and group work, yes. It gives you the same bulk operations in a Sheet, with no command line to install.
Get your afternoons back.
Install free from the Google Workspace™ Marketplace. Try it free for 15 days, no card needed.
Support
Contact us
Email support is included with the Professional plan, and we reply within 48–72 hours. Include your domain and a description of the problem.
support@xpertadmin.comInclude the Status message from the row that failed. It usually tells us exactly what went wrong.
Privacy policy
What we access and store
Last updated 20 October 2026
- XpertAdmin reads and writes Google Workspace directory data (users, aliases, groups, group members) only when you run an operation.
- That data is processed inside your Google account by Apps Script and written only to the spreadsheet you are using.
- Our license server stores the email address of each admin who opens XpertAdmin, with their trial dates and plan. For paid licences it also stores the company name and order ID. Never your directory data.
- We do not sell, share or use your data for advertising or model training.
- Read the full privacy policy
Terms of service
Using XpertAdmin
Last updated 20 October 2026
- Licences are per admin, per year, and renew unless cancelled. You can cancel at any time.
- You are responsible for the changes you run against your directory. Use Dry run and test on a small batch first.
- The software is provided as is, without warranty of any kind. XpertAdmin accepts no liability for changes made to your directory or for any loss arising from its use.
- Refunds are available within 14 days of a paid purchase.
- Read the full terms