Add team members
Wizard step 9 — invite your sales agents and managers, understand seats and roles, and manage the team afterwards.
Add team members
This is wizard step 9: "Who will use the CRM?". Invite the people who sell for you — each gets their own login, their own leads, and (optionally) the Android app. This step is optional: you can skip it and invite the team any time from Settings → Team.
Who this is for
- Workspace owners and admins.
- Managers onboarding new sales agents mid-year.
Difficulty: Easy · Time: 3–5 minutes · Prerequisites: none. The step works before any other setup and can be re-run later.
Step by step
1. Add rows for your people
-
In the step, click + Add team member for each person and fill:
Field Notes Name Shown across the CRM (lead activities, reports, assignment) Email Where the invitation is sent — double-check it Phone Optional, used for their mobile app identity and call matching Role Sales Agent (works leads day to day) or Manager (sees the whole team's work) -
Send invitations.
-
What happens: each person gets an email invitation with a link to set a password and join your workspace. The invitation is valid for 7 days.
-
Expected result: the step's seat line updates (for example "3 of 5 seats used"), and the wizard marks the step done once your workspace has more than one user.
All seats in use? If the plan's seat limit is reached, the step shows "All seats are in use" and new invitations are blocked. Remove a member or upgrade the plan (your account manager can help), then invite again.
2. What people see
- Sales Agents land in the regular CRM: their leads, pipeline, calls, WhatsApp, follow-ups.
- Managers additionally get team-wide views: all leads, assignment controls, agent reports.
- The full picture is in Roles & who does what.
3. Manage the team afterwards
Open Settings → Team for the single team hub:
- see seats used vs available,
- invite more members (same flow as the wizard),
- suspend an account (they can no longer sign in),
- reset a password,
- remove a member.
Team members and the mobile app Inviting someone is enough — their CRM login works immediately. To get them on the phone app, see Mobile app setup.
Expected result
- Every invited person appears in Settings → Team (pending until they accept).
- At least two users exist in the workspace, so the wizard step settles.
- New leads can now be routed to real people (Lead assignment & follow-ups).
Common mistakes
- Typo in the email. Invitations go to whatever address you type; if a person says "I never got it", verify the address first.
- Inviting someone who is already a member. The CRM refuses duplicates with a friendly "already a member" message rather than double-counting your seats.
- Choosing Manager for everyone. Manager is for people who need team-wide visibility; agents get everything they need for their own leads.
- Skipping the phone field. It is optional, but without it call matching on the Android app is less precise.
- Confusing the invitation email with a marketing email. It comes from your CRM's configured SMTP; check spam if not received.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Invitation email never arrives | Wrong address, or spam filtering | Verify the address; check spam; your admin can re-invite |
| "All seats are in use" | Seat limit reached | Remove a member or upgrade the plan |
| "…is already a member" | The email belongs to an existing user | No action needed — ask them to log in (or use password reset) |
| Invitation link expired | Invitations last 7 days | Invite again from the wizard or Settings → Team |
| Person can log in but sees nothing | They are a member with no leads assigned yet, or they accepted a different workspace | Check assignment rules and their workspace |
Technical details
- Service:
App\Services\InvitationService::invite($tenant, $actor, $email, $role)— creates aninvitationsrow withexpires_at = now + 7 days, sends the email, and refuses duplicates (re-invite of an existing member). - Roles written by the wizard:
member(Sales Agent) ormanager(Manager); the workspace owner remainsadmin. - Seats:
App\Services\PlanService::seatLimit($tenant)resolves plan-first (tenant override → planlimits.max_seats→ legacy column → 5;-1means unlimited).tenant.seat_counttracks usage and is recalculated when invitations are accepted or members removed. - Users belong to the workspace via
users.tenant_idplus thetenant_userspivot; all CRM data is scoped to the tenant automatically. - Team hub:
App\Filament\Pages\Settings\TeamSettingsPage(Settings → Team) — invite, suspend, reset password, remove.
Related guides
- Lead assignment & follow-ups — routing new leads to these people
- Roles & who does what · Roles & permissions (RBAC)
- Mobile app setup · Sales agent guide
Was this page helpful?
Thanks — noted. ✦