Shopify now lets merchants create admin and Point of Sale users, suspend existing accounts and reactivate users in bulk with a CSV file. The feature can save hours during seasonal hiring, store expansion or offboarding, but it is not a general-purpose account editor. The safest approach is to export the current user list, start from Shopify’s sample template, separate account creation from status changes, test a small batch and re-import only users whose rows failed.
The import is available from Settings > Users > Import in Shopify Admin. Shopify introduced the bulk workflow on August 21, 2026. The interface calls these records “users,” while many merchants still search for “staff accounts,” so this guide uses both terms where helpful.
Last reviewed: September 1, 2026. User permissions affect access to orders, customers, payouts and store settings. Review the current Shopify Help Center instructions and test the file with non-sensitive accounts before applying a large change.
What Changed With Shopify Bulk Staff CSV Import?
Shopify’s user-management import lets an eligible administrator upload one CSV file to process many account actions. It supports new admin users, new POS-only users, suspension of existing admin or POS users and reactivation of suspended users. New POS users can receive store and location access as part of the import, with an optional unique POS PIN.
This is useful when the number of accounts makes manual entry slow or inconsistent. Typical cases include:
- onboarding a seasonal retail team before a promotion;
- opening new stores or POS locations;
- adding an operations team across several stores;
- suspending accounts after a contract or employment period ends;
- reactivating returning staff without rebuilding accounts;
- standardising role and location assignments during expansion.
The feature is an administrative accelerator, not a replacement for permission design. Decide which roles should exist and what each role needs before building the file. If your organisation is also introducing wholesale teams, define their operational access separately from customer-facing B2B permissions using our Shopify B2B setup guide.
What the CSV Can and Cannot Change
| Action | Supported? | Important condition |
|---|---|---|
| Create a new admin user | Yes | Use a unique email and an existing role or eligible group |
| Create a new POS user | Yes | Use the Point of sale user type and valid location access |
| Suspend an existing user | Yes | The user ID and current account data must match |
| Reactivate a suspended user | Yes | Set the status to Active and identify the existing user |
| Create a new role, group or location | No | Create the resource in Shopify before the import |
| Change an existing user’s role or store access | No | Edit the existing user manually in Shopify Admin |
| Change a user from POS-only to admin | No | User type cannot be changed by CSV |
| Change an existing POS PIN | No | Manage the PIN through the supported Shopify interface |
| Set or update two-factor authentication requirements | No | Manage security settings separately |
| Delete users in bulk | No | Use suspension for immediate access removal when appropriate |
The distinction between creating and editing matters. Creation rows can define roles, stores and POS locations. Status-change rows should not include role, group, store, location or PIN values. Trying to use one file as a general update tool produces avoidable failures.
What to Prepare Before Importing Users
1. Export the current user list
An export provides existing user IDs, statuses, roles, stores and other account information. Keep the file as a private audit record and use it to identify the correct accounts for suspension or reactivation. Shopify sends export download links by email, and those links expire after seven days.
2. Download Shopify’s current sample template
Open Settings > Users > Import and download the sample CSV. Do not rebuild the header row from memory. Shopify validates header names and file structure, so an outdated template can fail even when the visible user data appears correct.
3. Create roles, groups, stores and locations first
The import matches these values to resources already present in Shopify Admin. Names must match exactly. A spelling difference, extra space or old location name can reject the affected user.
4. Separate account actions
Use one controlled file for new accounts and another for suspensions or reactivations. This makes review easier and prevents creation-specific fields from leaking into status-change rows.
5. Define a file owner and reviewer
One person prepares the file and another verifies emails, roles, stores and locations before upload. This simple separation reduces the risk of granting broad access to the wrong person.
The Most Important Shopify User CSV Columns
| Column | Creation use | Status-change use |
|---|---|---|
id |
Leave blank for a new user | Required; use the existing Shopify user ID |
user_type |
Use Admin or Point of sale |
Must match the existing type |
email |
Required for admin; optional for POS | Required for admin and when stored for POS |
given_name and family_name |
Leave blank for admin; required for POS | Optional for admin, required for POS |
status |
Leave blank | Use Suspended or Active |
role_name |
Use an existing eligible role unless assigning a group | Leave blank |
group_name |
Optional and available only to eligible Plus organisations | Leave blank |
store_name |
Required where the organisation structure needs it | Leave blank |
pos_location_name |
Use for access to named POS locations | Leave blank |
all_current_and_future_locations |
Use TRUE or FALSE for POS access |
Leave blank |
pin |
Optional 4–6 digit POS PIN; unique within a store | Leave blank |
Treat every column as an instruction, including blank cells. Copying data from an export into an import without understanding the create and status-change rules can turn useful reference information into invalid update commands.
How to Create Admin Users With a CSV
For each new admin user, leave id blank, set user_type to Admin and enter a unique email address. Assign an existing role and, when required, the exact store name. Leave status, phone, given name and family name blank. The new admin user remains pending until they accept the invitation and complete their account details.
Do not prefill personal profile fields
Shopify’s current rules require first name, last name and phone to remain blank when creating admin users. Those values are completed by the invited person. Prefilling them can cause the row to fail.
Use least-privilege roles
Do not solve uncertainty by assigning the broadest role. A merchandiser might need products and collections but not payouts. A customer-service user might need orders and customers but not billing. If too many apps or integrations have also accumulated privileged access, combine the staff review with our Shopify app access and performance audit.
How to Create Shopify POS Users With a CSV
Set user_type to Point of sale, enter the user’s given and family names and assign either an existing role or an eligible group. Configure location access for every row that grants POS permissions.
Specific locations
Enter the exact pos_location_name and set all_current_and_future_locations to FALSE. Use a separate row for each role-location combination.
All current and future locations
Set all_current_and_future_locations to TRUE and leave pos_location_name blank. Do not mix a named location with TRUE on the same row.
POS PINs
A PIN can contain four to six digits and must be unique to one user within a store. The same user can have a different PIN in another store. Treat PINs as sensitive operational data: limit access to the working file and remove temporary copies after the import has been validated.
Retail teams migrating inventory workflows after Stocky’s shutdown should coordinate access changes with the operational plan in our Stocky migration checklist.
Multiple Roles, Stores and POS Locations
Shopify represents each role, store and location combination with its own CSV row. To make several rows belong to the same new user, repeat the same identification values consistently.
- For admin users, keep the email and
user_typeidentical on every row. - For POS users, keep user type, first name, last name, email and phone consistent on every row.
- Use the exact existing role, store and location names.
- Use one row per role and location combination.
- Leave
idblank on every row for a new user.
If identification values differ, Shopify can interpret the rows as separate people and create duplicate POS users. This is one of the highest-risk errors in a large file because successful rows should not be uploaded again when correcting failures.
Groups on Shopify Plus
User groups are available only to eligible Shopify Plus organisations. A row can assign either a direct role or a group, not both. If someone needs a group and another direct role, use separate rows and preserve the same identification values.
How to Suspend or Reactivate Existing Users
Export current users first, then create a focused status-change file. Enter the existing user ID, matching user type and required identification fields. Set status to Suspended for an active or inactive account, or to Active for a suspended account.
Leave role, group, store, location, all-locations and PIN columns blank. The import changes status; it does not redesign the user’s permissions.
Why suspension is safer than waiting
When access should end, suspension is an immediate administrative control. Do not postpone it until a later role clean-up. Build an offboarding list with a named owner, effective time and post-import verification step.
Returning staff
Before reactivation, review whether the old role and location access remain appropriate. The CSV can reactivate the account, but it cannot update the existing role or access assignment. Make required permission changes manually before or immediately after reactivation.
A Safe Shopify User Import Workflow
- Export: save the current user list in an approved private location.
- Template: download the current sample CSV from the Import page.
- Resources: confirm every role, group, store and location already exists.
- Separate: keep creation rows separate from suspension and reactivation rows.
- Review: verify emails, user types, roles and location scope with a second person.
- Test: import a small representative batch before the full team.
- Read results: separate successful users from failed users.
- Correct carefully: re-import only rejected users and every row belonging to each rejected user.
- Validate: confirm account status, role, store and location access in Shopify Admin.
- Record: document who prepared, reviewed and uploaded the file.
- Clean up: remove unnecessary working copies containing emails, phone numbers or PINs.
Do not automate a sensitive import before the manual process is reliable. Shopify Flow is useful for many store processes, but user-import validation should remain a controlled administrative workflow. For safer automation opportunities elsewhere, see our Shopify Flow AI examples.
Common Shopify User CSV Import Errors
Invalid or missing headers
Start again from Shopify’s current sample file. Do not rename columns for readability.
A role, group, store or location does not match
Compare the value character by character with Shopify Admin. Create missing resources before retrying.
An existing email is used for a new admin
New admin emails must be unique. Decide whether the record should be a reactivation rather than a creation.
Admin profile fields were filled on creation
Leave phone, first name, last name and status blank for a new admin user.
POS rows create duplicate users
Check that identification values are identical across all rows for the same person. A blank email on one row and an email on another can split the records.
The full original file was uploaded again
Do not re-import users that succeeded. Upload only rejected users after correction, including every row that belongs to each rejected user.
A status-change row includes access fields
For suspension or reactivation, remove role, group, store, location and PIN values.
If the documented error remains after the file and user record have been checked, collect the exact error message and affected rows before escalating. Our guide explains how to prepare a useful Shopify Support escalation.
Security and Offboarding Controls
- Use least-privilege roles instead of a generic all-access role.
- Require a second-person review for payout, billing and user-management access.
- Keep creation and offboarding files in an approved restricted location.
- Do not email CSV files containing POS PINs without an approved secure process.
- Suspend access at the agreed offboarding time.
- Review active, pending and inactive users after every large import.
- Review two-factor authentication separately because the import cannot configure it.
- Export user activity logs for periodic audits where appropriate.
- Delete temporary working copies after validation and retention requirements are met.
Bulk import makes user administration faster; it does not make broad access safer. The business outcome should be fewer manual mistakes and faster removal of unnecessary access, not simply more accounts created at once.
For hands-on help designing roles, validating a multi-store setup or resolving a difficult import, contact SmallDeskApps through the Shopify support blog.
Frequently Asked Questions
Where is Shopify’s bulk user import?
In Shopify Admin, go to Settings > Users and select Import. Download the current sample CSV before preparing your file.
Can I create admin and POS users in bulk?
Yes. The import supports new admin users and new Point of Sale users. Their required fields and profile rules differ.
Can the CSV change an existing user’s role?
No. Existing users can be suspended or reactivated through the CSV, but role, group, store and location changes must be managed separately.
Can I delete Shopify users in bulk?
No. Bulk deletion is not supported. The import can suspend eligible existing users to remove access.
Can the CSV set two-factor authentication?
No. Two-factor authentication requirements and status must be managed through Shopify’s separate security controls.
Why did several rows for one user fail together?
Shopify treats all rows belonging to one user as a unit. If one row fails, all rows for that user are rejected. Correct the issue and re-import every row for that rejected user.
Should I upload the full file again after fixing an error?
No. Re-import only rejected users. Re-uploading users that already succeeded can create duplicates or return account-already-exists errors.