Get Started

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:

RolePermissions
OwnerFull access: manage billing, delete organization, all admin powers
AdminManage team, projects, translations, settings (cannot delete org or manage billing)
MemberCreate and edit translations, export, view team
ViewerRead-only access to projects and translations
ℹ️
Note

Role hierarchy: Owner > Admin > Member > Viewer. Higher roles inherit all permissions from lower roles.

Permission Matrix

ActionOwnerAdminMemberViewer
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

  1. Navigate to Team section
  2. Click “Invite Member”
  3. Enter email address
  4. Select role (Admin, Member, or Viewer)
  5. Optional: Add personal message
  6. Click “Send Invitation”

[IMAGE: invite-team-member.png - Screenshot of invite member form]

Invitation Process

When you invite someone:

  1. Email sent automatically to the invited address
  2. Invitation link valid for 7 days
  3. Recipient clicks link to accept
  4. Creates account or signs in (if existing user)
  5. Added to organization with assigned role
💡
Tip

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:

  1. Find member in team list
  2. Click role dropdown
  3. Select new role
  4. Confirm change
⚠️
Warning

You cannot change your own role. Another Owner or Admin must modify your permissions.

Remove Team Members

To remove someone from your organization:

  1. Click context menu (⋮) next to member
  2. Select “Remove from Organization”
  3. 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:

  1. Find pending invitation
  2. Click “Resend”
  3. New email sent with fresh 7-day expiration

Revoke Invitation

Cancel pending invitations:

  1. Find pending invitation
  2. Click “Revoke”
  3. Invitation link becomes invalid
  4. Recipient cannot accept

Team Size Limits by Plan

PlanMaximum Members
Free1 (owner only)
Pro5 members
Team20 members
EnterpriseUnlimited
⚠️
Warning

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
💡
Tip

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:

  1. Member creates/edits translations as drafts
  2. Member notifies admin when ready
  3. Admin reviews draft translations
  4. Admin publishes approved translations
  5. 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:

  1. Go to Settings > Audit Logs
  2. Filter by:
    • User
    • Action type
    • Resource (project, key, etc.)
    • Date range
  3. 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
Sample Audit Log Entry
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
ℹ️
Note

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
EventWho Receives
Invitation sentInvited person
Translation changedWatchers of that project
Project createdAll admins
Export completedPerson who initiated
Import completedPerson who initiated
Bulk operation failedPerson who initiated
Quota exceededAll admins and owner
Payment failedOwner 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:

  1. Send invitation with appropriate role
  2. Share onboarding documentation
  3. Assign to specific projects/modules
  4. Monitor initial activity

When someone leaves:

  1. Remove from organization immediately
  2. Revoke any API keys they created
  3. Review their recent activity
  4. Reassign their responsibilities

Next Steps