Script Chef: Removing Inactive Collaborators

Hello Transifex Community!

If you manage large translation teams (especially if you’re working with volunteer linguists), you’ve probably dealt with the challenge of inactive collaborators cluttering your roster. Over time, teams accumulate translators and reviewers who haven’t contributed in months or even years. Manually reviewing activity reports and removing them one by one is tedious work.

This script simplifies the entire process of identifying and removing inactive team members.

What It Does

The script analyzes team activity and helps you clean up inactive members. It identifies translators and reviewers who haven’t contributed within your specified timeframe and removes them from your teams.

Requirements

  • Python 3.6+
  • requests library
  • Transifex API token
  • Team management permissions

How It Works

Setup

Install the required library:

pip install requests

Then run the script:

python remove_inactive_collaborators.py

The script uses an interactive menu system to guide you through the process.

Using the Script

1. Authentication
Enter your Transifex API token when prompted:

Step 1: Authentication
Enter your Transifex API token: ••••••••••

2. Organization & Team Selection
Select your organization and choose whether to process all teams or a specific one:

Select an organization:
  [1] My Awesome Company (my-awesome-company)
Choice [1-1]: 1

Select team scope:
  [1] All teams in organization
  [2] Specific team
Choice [1-2]: 1

3. Inactivity Threshold
Define how long a user must be inactive before removal:

Select inactivity period:
  [1] 1 month
  [2] 3 months
  [3] 6 months
  [4] 1 year
  [5] Custom (days)
Choice [1-5]: 3

4. Role Filter
Choose which roles to check:

Select roles to check for inactivity:
  [1] Translators only
  [2] Reviewers only
  [3] Both Translators and Reviewers (default)
Choice [1-3]: 3

5. User Exclusions
Optionally exclude specific users from removal:

Enter usernames to exclude (one per line, empty line to finish):
Username (or press Enter to finish): important_translator
Username (or press Enter to finish): 

Results

The script displays inactive users in a table:

Inactive Users Found: 15

Username             | Role                 | Last Activity       
-----------------------------------------------------------------
inactiveUser1       | translator           | Never (no data)
dormantReviewer2    | reviewer             | Never (no data)
... and 13 more

Results are saved to a timestamped CSV file.

Removal Options

After identifying inactive users, you can:

  1. Dry-run: Preview what would be removed without making changes
  2. Delete users: Proceed with removal (requires typing “DELETE” to confirm)
  3. Cancel: Save the list for later review

You can edit the CSV file before deletion to exclude specific users.

Safety Features

  • CSV Export: Review the full list before deletions
  • Dry-run Mode: Test without consequences
  • Explicit Confirmation: Must type “DELETE” to proceed
  • Editable CSV: Modify the list before running removals
  • Role Awareness: This script removes specific team-level roles only (Translator/Reviewer). Users with elevated roles like Organization Admin, Project Maintainer, Language Coordinators, or Team Managers will not be affected.

Feedback

Have suggestions for improvements? The community would love to hear about:

  • Features you’d like to see added
  • How the script worked for your organization
  • Any issues you encountered

Share your experience in the Transifex community forum.