Dashboard CSV import
A 6-step wizard that takes a CSV of identities and either invites them by email, creates Environment-scoped rows directly, or pre-stages Account-tier directory rows — same outcomes as the per-row dashboard flows, but batched up to 200 rows per request with per-row partial-success semantics.
When to use the CSV wizard
Reach for the wizard when you have a list (exported from an HR system, a spreadsheet of new hires, a previous tenant's user dump) and you want to provision the whole batch in one pass with a human-reviewable preview before anything is written.
The three modes
Step 1 of the wizard locks the mode for the rest of the run. Pick the mode that matches how the identities should land in your Account — and the dashboard surface you opened the wizard from determines which modes are available. Tenant > Identities opens the wizard on the Account-tier mode; Access Control > Identities opens it on the two Environment-scoped modes.
Bulk invite
Environment-scoped. Sends each row an email with a link to set their own password. The identity row, AppMembership, and any optional role + node assignment are created when the recipient clicks Accept. Best when the recipient should choose their credentials, typical for new hires and external collaborators.
Bulk create
Environment-scoped. Writes the identity rows directly. No email is sent. Optionally accepts a password column for a starting password the user can change after first login, plus an optional role_id + node_id pair per row to bundle an assignment. Best for migrations, pre-provisioning ahead of go-live, or federated/SSO identities where authentication won't be a Canopy password.
Account-tier bulk create
Account-tier. Writes directory-only Identity rows to the Account — no role, no node, no Environment context. Required columns: email, first_name, last_name. Optional columns: password, external_id, application_id (links the row to an Application as an AppMembership). Open this mode from Tenant > Identities → Import CSV. Best for federated/SSO directories you want to pre-stage before any Environment touches them.
Walking through the wizard
Open the wizard from the Identities page header → Import CSV. The dialog opens at step 1.
Six steps
#, and shows a summary of rows + columns + delimiter on success. Up to 10 MB and 10,000 rows per file.E-Mail → email, Surname → last_name). Each row carries a status badge: green for matched, grey for ignored. Override any row by picking from the dropdown, or leave columns the wizard didn't recognise on Ignore. Required-field-missing alerts appear at the top until every required field is mapped.identities/bulk-create endpoint (App-scoped) — or identity-invites/bulk-create (Environment-scoped) for invite mode — each with its own idempotency key. Live progress bar plus a Cancel button between batches. Retries on transient network errors (429, 500, 502, 503, 504) with exponential backoff.Common pitfalls
First time setting up?
When you land on a fresh Environment — the dashboard seeds every Account with a Development and Production env at signup, both empty — the Overview page shows a banner that reads "You haven't invited any users or assigned them roles yet." Click Complete Invite & Assign Users Setup to open the Setup Guide on its Invite & Assign Users tab — an interactive slide-out panel that walks you through inviting identities and assigning them roles. Each step links directly to the right page and surfaces contextual help alongside, so you don't have to bounce between docs and the dashboard to figure out where to click next.
What the guide walks you through: