Skip to Content
Roles & permissionsImporting users

Importing Users

Invite many people to your tenant at once. You need the tenant:members:invite permission (the owner and admin roles have it).

Go to Settings → Members → Import users. There are two ways to add people.

Upload a CSV file

The file has the columns firstname, lastname, email and role.

  1. Download the template from Settings → Members → Import users (Download template on the Upload CSV tab).
  2. Replace the example row with one row for each person, up to 50 people per file. email and role are required. firstname and lastname are optional.
  3. Use one of these roles: admin, member, viewer. You cannot give a role with more permissions than your own. You cannot import an owner.
  4. Save the file as CSV and click Choose file next to CSV file.

The column names are not case-sensitive. FlowState ignores other columns.

The name is stored only for a person who does not have a FlowState account yet. It shows on the Members page after they accept. FlowState never changes the name of an existing account.

Paste addresses

  1. Click the Paste addresses tab.
  2. Paste the email addresses. You can separate them with commas, semicolons, spaces, or new lines.
  3. Select one role. Every pasted address gets this role.

Preview and import

  1. Click Preview. FlowState checks each row and changes nothing yet.

  2. Read the status of each row:

    StatusMeaning
    ReadyFlowState will invite this person.
    InvalidThe email address, the role, or a name is not correct. The reason is shown.
    DuplicateThe same address is in the list more than once. Only the first one is used.
    Already a memberThis person is already a member of the tenant.
    Already invitedThis person already has a pending invite.
    Over limitAn invite limit stops this row (see below).
  3. Click Import. FlowState starts the import in the background. The card shows the progress and then the result of each row. You can stay on the page or come back to it later. Each person gets the same invite email as a single invite.

A row that fails does not stop the other rows.

Limits

  • 50 people in one file or paste (one import).
  • One import at a time in one tenant.
  • 5 imports in one tenant in one day.
  • 50 pending invites in one tenant.
  • 5 invites to the same address in 7 days.

The limit of 10 single invites in one hour does not apply to an import, and an import does not use it up. When a limit stops a row, the row shows the reason. Import the remaining rows later.

Use it from an AI assistant

The MCP tool import_invites(rows, dry_run, idempotency_key) does the same import. Set dry_run to true to preview. A real import returns a job_id: read the result with get_invite_import_job(job_id). Use the same idempotency_key when you retry an import; you get the same job_id back.