Admin: Configure workspace invites

Create invite links, set auto-approve, manage join requests, and secure your workspace.

Admin invite configuration

As admin, you control who can join your workspace and how invite links work.

Creating invite links

Admin → Members → "Invite Team" button

First time: Creates persistent workspace invite link automatically.

Link properties:

  • Code: 32-character random string (cryptographically secure)
  • Expiration: Never expires (persistent) by default
  • Max uses: Unlimited by default
  • Role assignment: Member (all invitees join as Members)
  • Created by: You (admin user)

Link format: `` https://app.teamwins.com/invite/xK7mN9pQ2wR8sT4vU6yZ3aB5cD1eF0gH ``

Security:

  • Server-side generation (clients can't forge codes)
  • Unique across all workspaces
  • URL-safe characters only

Auto-approve vs manual approval

Key workspace setting: Settings → Advanced Settings → "Auto-approve join requests"

Two approval paths:

Path 1: Auto-Approve (immediate join) Happens when:

  • ✅ Workspace setting "Auto-approve join requests" = ON, OR
  • ✅ Invite was created by workspace admin/owner

Result: User joins instantly, becomes active Member immediately.

Path 2: Manual Approval (join request) Happens when:

  • ❌ Team member (non-admin) created invite link AND
  • ❌ Workspace setting "Auto-approve join requests" = OFF (default)

Result: User submits join request, appears in pending queue, admin must approve.

Critical insight: Admin-created invites ALWAYS auto-approve, regardless of workspace setting. This ensures admins can onboard people quickly.

Managing join requests

Pending join requests appear in "Invite Team" popover:

  • Requester name and email
  • Days pending (e.g., "3 days ago")
  • Actions:

- "Welcome!" button → Approve (creates active Member) - "Decline" button → Reject (user notified, can't reapply with same code)

Typical workflow: 1. Review requester email domain (is it @yourcompany.com?) 2. Verify they should have access (ask around if unsure) 3. Click "Welcome!" if legitimate 4. Click "Decline" if spam/unauthorized

Batch approvals: Select multiple join requests, click "Approve All" (future feature—currently one-by-one).

Email invites vs link invites

Shareable link invites (generic):

  • One link, many users
  • Can't target specific people
  • Good for: Company-wide rollout, public Slack channels

Email invites (admin-initiated):

  • Admin enters specific emails
  • System generates per-email invite codes
  • Email sent with personalized message
  • Good for: Key stakeholders, targeted rollout, C-suite

Both methods use same underlying invite system, just different targeting.

Workspace settings affecting invites

Setting 1: Auto-approve join requests

  • Location: Settings → Advanced Settings → Discoverability
  • Default: OFF (manual approval required)
  • Effect: When ON, all invite links (admin or team member) auto-approve joins

Setting 2: Incognito mode (invite-only)

  • Location: Settings → Advanced Settings → Discoverability
  • Default: OFF (workspace may appear in search)
  • Effect: When ON, workspace hidden from public discovery
  • Does NOT affect invite functionality—invites work either way

Recommendation:

  • Internal teams: Enable auto-approve for faster onboarding
  • Sensitive/client workspaces: Keep manual approval for security
  • Incognito: Enable if workspace is confidential

Advanced invite features (API-only)

Not available in UI currently, but supported via API:

Max uses:

  • Limit invite link to N uses (e.g., 50 people max)
  • Once limit reached, link becomes invalid
  • Useful for: Limited-access beta, specific cohort

Expiration time:

  • Set invite to expire after X hours
  • Use case: Temporary access, event-specific invites

Custom role assignment:

  • Assign Reviewer or Admin role on join
  • Currently fixed to Member in UI

To use these features: Contact support or use direct RPC calls (technical users only).

Future UI: Admin panel to configure max uses, expiration, and default roles.

Revoking invites

Not currently available in UI.

Workaround: 1. Go to Settings → Advanced Settings 2. Toggle "Auto-approve join requests" OFF 3. Old invite links now require manual approval 4. Decline any unwanted join requests

Or:

  • Generate new invite link (delete old one from Slack/docs)
  • Change workspace discoverability to Incognito

Future feature: "Revoke Invite" button to deactivate specific invite codes.

Tracking invite usage

What you CAN see:

  • Total member count (Members page)
  • Who joined and when (Members page)
  • Pending join requests (Invite popover)

What you CAN'T see currently:

  • Which specific invite code each user used
  • How many people clicked invite link (vs actually joined)
  • Invite code analytics (clicks, conversions)

Future enhancement: Invite analytics dashboard showing code usage stats.

Security best practices

Do:

  • ✅ Share invite links only in private channels (not public Twitter/LinkedIn)
  • ✅ Enable manual approval for client-facing workspaces
  • ✅ Review join requests within 24 hours
  • ✅ Remove ex-employees from Members page promptly

Don't:

  • ❌ Share invite link publicly if workspace has sensitive data
  • ❌ Auto-approve joins for external partner workspaces
  • ❌ Leave join requests pending for weeks (poor UX)

Incident response: If unauthorized person joins: 1. Go to Members page 2. Find user → Click "..." menu → "Remove from Workspace" 3. User loses access immediately 4. Generate new invite link if breach suspected

Tips for scaling

Onboarding 10-50 people:

  • Send email invites to key stakeholders
  • Share generic link in Slack for rest of team
  • Enable auto-approve to reduce admin overhead

Onboarding 50-200 people:

  • Add invite link to HR onboarding checklist
  • Create Slack bot with invite link in welcome message
  • Monitor join requests daily

Onboarding 200+ people:

  • Consider SSO integration (SAML) for auto-provisioning
  • Disable manual approval (too much overhead)
  • Set up webhooks for join notifications (API)

FAQs

Can team members create invite links? No—only admins can create invite links. Team members can share existing link.

How do I create role-specific invites? Not available in UI. Use API to create Reviewer/Admin invite codes, or promote users after they join.

Can I see who sent each invite? Sort of—created_by field shows which admin created the invite link. Email invites show sender.

What happens if admin who created invite leaves company? Invite still works—links aren't tied to creator's account status.

Can I edit an existing invite link? No—create new invite link if you need different settings. Old link remains valid unless revoked (future feature).

Next steps

EncryptionEncryption in transit & at rest
SSOGDPREU/US data residencyPowered by Vercel & Supabase