Executive summary
- What: Shopify admin now accepts a CSV upload that creates admin and Point of sale user accounts, assigns POS PINs, and suspends or reactivates existing users in a single pass.
- Why: staff provisioning at scale stops being a per-person click path through the admin, and offboarding gains a reviewable file behind it.
- Who: store admins, retail operations leads, and IT owners at multi-store or high-turnover organizations, especially Plus orgs already using groups.
What changed
Under Settings, Users, Import in Shopify admin there is now a CSV importer with a downloadable sample template. One file can create new admin users, create POS-only users with assigned PINs, and flip existing accounts between Active and Suspended. Assignments are expressed one per row, so a user who needs three roles across two stores occupies several rows carrying the same identifying columns.
The boundaries matter as much as the capability. The importer cannot delete users, cannot change an existing user's PIN, type, role, group, location, or store access, and cannot create roles, groups, or locations that do not already exist. On create rows for admin users you leave name and phone blank on purpose: those fields get filled when the person accepts the invite, and populating them makes the row fail. New admin users sit in Pending until they accept, while new POS users are Active immediately.
Why it matters
For a single store with nine staff this is a convenience. For a Plus organization it is an operational change. The store_name column means one file can address every store in the org, and groups, which are a Plus-only construct, let a single row carry a bundle of roles rather than enumerating them. That collapses the usual multi-store onboarding sprawl into one artifact you can review before anything takes effect.
The offboarding side is the underrated half. Suspension is the control that actually cuts access, and the gap between someone leaving and someone losing their login is a real risk window. Doing it in one upload shortens that window from days to minutes. It also makes access reviews tractable: export your users, review the sheet, re-upload the suspensions, and keep the file as evidence. If you want a second pair of eyes on role and group mapping before the first production import, that is a short engagement.
Role-specific impact
- Marketers: limited direct impact, though onboarding for campaign contractors and agency staff who need scoped admin access during a launch window gets noticeably faster.
- Developers: there is no new API surface here, this is admin-side only. Relevant if you maintain internal provisioning tooling: the CSV is now the supported bulk path, so weigh it before building further against user management APIs.
- Store admins: this is your change. Own the template, keep role, group, store, and location names matching admin exactly, and validate before upload, because mismatches fail per row rather than blocking the whole file.
Use-case example
Real-world scenario
A 40-location specialty retailer hires roughly 220 seasonal associates each October. Provisioning them individually, with POS PIN and location assignment, runs about four minutes each, close to fifteen hours of admin work spread across store managers. Built as a CSV, the same work becomes a template exercise plus one import: budget around two hours including a five-user pilot. In January the reverse holds, and 220 suspensions land in a single upload instead of trickling in over two weeks.
Implementation checklist
- Export your current users to CSV first, so you hold the IDs and a rollback reference before changing anything.
- Download the sample template from Settings, Users, Import and work from it rather than an improvised sheet.
- Confirm role names, group names, store names, and POS location names match Shopify admin character for character.
- On create rows for admin users, leave given_name, family_name, and phone blank so the invite collects them.
- Use one row per role, location, or store assignment for the same person, repeating the identifying columns on each.
- Pilot with five users, confirm status and actual access in admin, then run the full file.
- For offboarding, submit id, user_type, email, and status Suspended only, leaving role, group, and store columns blank.
- File the CSV with your access-review evidence so the change has a paper trail.
FAQ
Q: Can we delete users through the import?
A: No. The importer covers create, suspend, and reactivate only. Deletion stays a manual action, and suspension is usually the better control anyway because it preserves the audit trail attached to that account.
Q: Can we change an existing user's role or store access in the same file?
A: No. Role, group, location, and store columns are rejected on suspend or reactivate rows. Make those changes in admin directly, or if the reassignment is substantial, suspend the account and create the new access separately.
Resources
Importing users in bulk using a CSV file
Need guidance? Talk to Makro.