Team Collaboration
LangCTL supports team collaboration with role-based access control, allowing you to work together on translations while maintaining security and organization.
Team Roles
Role Hierarchy
LangCTL uses four permission levels:
| Role | Permissions |
|---|---|
| Owner | Full access: manage billing, delete organization, all admin powers |
| Admin | Manage team, projects, translations, settings (cannot delete org or manage billing) |
| Member | Create and edit translations, export, view team |
| Viewer | Read-only access to projects and translations |
Role hierarchy: Owner > Admin > Member > Viewer. Higher roles inherit all permissions from lower roles.
Permission Matrix
| Action | Owner | Admin | Member | Viewer |
|---|---|---|---|---|
| View translations | ✓ | ✓ | ✓ | ✓ |
| Export translations | ✓ | ✓ | ✓ | ✓ |
| Edit translations | ✓ | ✓ | ✓ | ✗ |
| Create/delete keys | ✓ | ✓ | ✓ | ✗ |
| Publish translations | ✓ | ✓ | ✓ | ✗ |
| Import translations | ✓ | ✓ | ✓ | ✗ |
| Use AI translation | ✓ | ✓ | ✓ | ✗ |
| Create projects | ✓ | ✓ | ✗ | ✗ |
| Delete projects | ✓ | ✓ | ✗ | ✗ |
| Invite team members | ✓ | ✓ | ✗ | ✗ |
| Remove team members | ✓ | ✓ | ✗ | ✗ |
| Manage API keys | ✓ | ✓ | ✗ | ✗ |
| View audit logs | ✓ | ✓ | ✗ | ✗ |
| Manage billing | ✓ | ✗ | ✗ | ✗ |
| Delete organization | ✓ | ✗ | ✗ | ✗ |
Inviting Team Members
From Dashboard
- Navigate to Team section
- Click “Invite Member”
- Enter email address
- Select role (Admin, Member, or Viewer)
- Optional: Add personal message
- Click “Send Invitation”
[IMAGE: invite-team-member.png - Screenshot of invite member form]
Invitation Process
When you invite someone:
- Email sent automatically to the invited address
- Invitation link valid for 7 days
- Recipient clicks link to accept
- Creates account or signs in (if existing user)
- Added to organization with assigned role
Invited users can accept invitations even if they already have a LangCTL account. They’ll be added to your organization alongside their existing organizations.
Invitation States
Track invitation status in the team panel:
- Pending: Invitation sent, not yet accepted
- Accepted: User joined the organization
- Expired: 7 days passed without acceptance
- Revoked: Invitation cancelled before acceptance
[IMAGE: invitation-status.png - Screenshot showing different invitation states]
Managing Team Members
View Team Members
The team page shows:
- Name: Member’s display name
- Email: Member’s email address
- Role: Current permission level
- Status: Active, Invited, or Inactive
- Joined: Date added to organization
- Last Active: Most recent activity timestamp
Change Member Role
Owners and Admins can modify roles:
- Find member in team list
- Click role dropdown
- Select new role
- Confirm change
You cannot change your own role. Another Owner or Admin must modify your permissions.
Remove Team Members
To remove someone from your organization:
- Click context menu (⋮) next to member
- Select “Remove from Organization”
- Confirm removal
What happens when someone is removed:
- Loses access to all organization projects
- Cannot view or edit translations
- Retains own account (if they have other organizations)
- Activity history is preserved in audit logs
Resend Invitation
For pending invitations:
- Find pending invitation
- Click “Resend”
- New email sent with fresh 7-day expiration
Revoke Invitation
Cancel pending invitations:
- Find pending invitation
- Click “Revoke”
- Invitation link becomes invalid
- Recipient cannot accept
Team Size Limits by Plan
| Plan | Maximum Members |
|---|---|
| Free | 1 (owner only) |
| Pro | 5 members |
| Team | 20 members |
| Enterprise | Unlimited |
When you reach your plan’s member limit, you must remove existing members or upgrade your plan before inviting new ones.
Team Activity
Activity Feed
View what your team is working on:
- Translation changes
- Published keys
- Project creation/updates
- Exports and imports
- Member invitations
- Role changes
[IMAGE: team-activity-feed.png - Screenshot of activity feed]
Member Activity
Click any team member to see their specific activity:
Sarah Chen (Admin)
Joined: March 15, 2024
Last Active: 2 hours ago
Recent Activity:
- Published 24 keys in "Mobile App" project
- Exported Spanish translations (iOS format)
- Edited 12 translations in auth module
- Invited [email protected] as Member
Statistics:
- 487 translations edited
- 145 keys created
- 32 exports generated
- 8 imports completed Collaboration Features
Real-Time Updates
See what your team is doing in real-time:
- Live indicators show who’s viewing/editing
- Presence badges on translation keys
- Activity notifications for important changes
[IMAGE: real-time-collaboration.png - Screenshot showing live presence indicators]
Conflict Prevention
LangCTL prevents editing conflicts:
- Shows who’s currently editing a key
- Warns before overwriting recent changes
- Auto-saves to prevent data loss
- Last-write-wins with conflict notification
Use modules to divide work among team members. Assign different people to different modules to avoid conflicts.
@Mentions (Coming Soon)
Tag team members in comments:
@sarah Can you review the Spanish translations for the auth module?
@john These error messages need to be shorter for mobile UI.
Best Practices
Assign Appropriate Roles
Use Viewer role for:
- Stakeholders who need visibility
- External reviewers
- Marketing team reviewing content
- Clients or partners
Use Member role for:
- Translators
- Content writers
- Junior developers
- Contractors
Use Admin role for:
- Team leads
- Senior developers
- Project managers
- Trusted long-term team members
Use Owner role for:
- Business owners
- Billing contacts
- Technical leads
- Maximum 1-2 people
Organize by Modules
Assign team members to specific modules:
Sarah: auth module (login, signup, forgot password)
John: dashboard module (main UI, stats, reports)
Maria: marketing module (landing page, emails)
This reduces conflicts and creates clear ownership.
Use Drafts for Review
Workflow for team collaboration:
- Member creates/edits translations as drafts
- Member notifies admin when ready
- Admin reviews draft translations
- Admin publishes approved translations
- Admin exports for deployment
Regular Communication
- Use activity feed to stay synchronized
- Check “What’s new” before starting work
- Communicate about bulk operations
- Notify team before major imports/exports
Audit Logs
Viewing Audit Logs
Owners and Admins can access complete audit logs:
- Go to Settings > Audit Logs
- Filter by:
- User
- Action type
- Resource (project, key, etc.)
- Date range
- Export logs for compliance
[IMAGE: audit-logs.png - Screenshot of audit log interface]
Logged Actions
LangCTL tracks:
- Translation changes (before/after values)
- Key creation/deletion
- Project modifications
- Team member changes
- Role updates
- API key generation
- Export/import operations
- Settings changes
Audit Log Entry
Timestamp: 2024-04-15 14:32:18 UTC
User: [email protected] (Admin)
Action: update_translation
Resource: translation_key (home.welcome)
Project: Mobile App
Changes:
Language: es
Old Value: "Bienvenido"
New Value: "¡Bienvenido!"
Metadata:
IP: 192.168.1.100
User Agent: Chrome 123.0
Session ID: abc123... Audit logs help with:
- Debugging translation issues
- Tracking who made changes
- Compliance requirements (SOC 2, GDPR)
- Security investigations
- Team accountability
Audit logs are retained for 90 days on Free/Pro plans, 1 year on Team plan, and unlimited on Enterprise plan.
Configure what notifications you receive:
- Daily Digest: Summary of team activity
- Real-Time: Immediate notifications for important events
- Weekly Report: Project progress and statistics
- None: Disable all email notifications
| Event | Who Receives |
|---|---|
| Invitation sent | Invited person |
| Translation changed | Watchers of that project |
| Project created | All admins |
| Export completed | Person who initiated |
| Import completed | Person who initiated |
| Bulk operation failed | Person who initiated |
| Quota exceeded | All admins and owner |
| Payment failed | Owner only |
Users can belong to multiple organizations:
- Use org switcher in top navigation
- Each org has separate projects and team
- Billing is per-organization
- Roles can differ across organizations
Your Organizations:
1. Acme Corp (Owner)
- 3 projects, 5 members
- Pro plan
2. Startup Inc (Member)
- 1 project, 2 members
- Free plan
3. Client Project (Admin)
- 5 projects, 12 members
- Team plan Troubleshooting
Cannot Invite Team Member
“Member limit reached”:
- You’ve hit your plan’s member limit
- Remove inactive members
- Or upgrade plan
“Email already invited”:
- Pending invitation exists
- Resend invitation or revoke and create new one
Invitation Not Received
- Check spam/junk folder
- Verify email address is correct
- Resend invitation
- Try different email address
Cannot Remove Team Member
- Ensure you have Owner or Admin role
- Cannot remove yourself
- Cannot remove last owner
Lost Access After Role Change
- Contact organization owner or admin
- They can restore your role
- Check if you were removed from org
Security Best Practices
Principle of Least Privilege
Grant minimum necessary permissions:
- Start with Viewer role
- Upgrade to Member when needed
- Admin only for team leads
- Owner only for 1-2 people
Regular Audits
Monthly security review:
- Remove inactive members
- Verify roles are appropriate
- Check audit logs for anomalies
- Revoke unused API keys
Onboarding/Offboarding
When someone joins:
- Send invitation with appropriate role
- Share onboarding documentation
- Assign to specific projects/modules
- Monitor initial activity
When someone leaves:
- Remove from organization immediately
- Revoke any API keys they created
- Review their recent activity
- Reassign their responsibilities
Next Steps
- Subscription & Usage - Upgrade for more team members
- Collaboration Features - Advanced team features
- Module Organization - Organize work by module
- Publishing Workflow - Team review process