Inviting your team & assigning roles

Add users, pick the right role, understand the seat impact on your plan.

3 min readLast updated 13 Apr 2026

Invite the rest of your team as named users with the right role. This article covers the invite flow, the role choice, and how seat counts interact with your subscription.

Overview

Every person who logs into CargoSurge is a User — they have their own email, password, MFA device, and audit-log trail. Users are assigned a role that determines which modules they see and what they can do inside those modules.

Roles available today (see Roles & Permissions Matrix for the full table):

  • TENANT_ADMIN — full control of the tenant. Can change subscription, users, integrations. Limit to 1–3 people max.
  • ADMIN — almost-full access; typically operations managers.
  • MANAGER — department leads with approval authority but not system settings.
  • OPERATOR — day-to-day ops users (quotations, bookings, shipments). Most common role.
  • SALES — CRM-heavy view; can quote but not invoice.
  • ACCOUNTANT — full finance access; read-only elsewhere.
  • FORWARDING_OPERATOR / ROAD_OPERATOR / WMS_OPERATOR — module-scoped operator roles for large teams where people only touch one module.
  • VIEWER — read-only across the tenant.
  • DRIVER — mobile-app-only access; they can't log into the web app.

Before you start

  • Decide who needs MFA. The answer for most roles is yes. Admins require it; everyone else strongly recommended.
  • Know your plan's seat limit. Tenant subscription page shows users_used vs user_limit + extra_users_purchased. Going over the limit either blocks new invites (Starter/Team) or triggers automatic seat purchases (Pro+).
  • Drivers and portal users don't count as web-app seats — they have their own limits.

Step-by-step — inviting a user

  1. Go to Settings → Users from the admin sidebar. You'll see the current user list with roles, status, and last-login timestamps.
  2. Click + Invite User (top right).
  3. Enter the person's full name, work email, and pick their role from the dropdown. If you're unsure, start with OPERATOR — you can upgrade the role later; downgrades are easier than cleaning up after a too-permissive role.
  4. Optionally assign branch scope if your tenant has multiple branches — this restricts the user's visibility to bookings/invoices/etc. tied to that branch.
  5. Click Send Invite. The user gets an email with a one-time setup link, valid for 7 days.
  6. On click, they set their password, set up MFA, and land in the app.

Common pitfalls

Seat counting — how your plan handles growth

Your plan has a base max_users (e.g. Team = 10 users). Each additional active user beyond that counts as an "extra seat" and is billed at the plan's extra_user_price on the next monthly invoice.

Drivers, portal users, and subcontractors do NOT count as web seats. They have their own separate pricing under plan addons.

If you try to invite a user that would push you over a hard cap (Starter's 5-user ceiling), the invite is blocked with a clear error pointing to the Change Plan flow.

Removing a user

Settings → Users → {user} → Deactivate. This revokes their session, blocks future logins, but keeps their historical records intact for audit purposes. You can reactivate later if needed.

Fully deleting a user is restricted to platform support because it breaks audit-log referential integrity. Deactivate is almost always what you want.

Was this article helpful?