Tool Identities
Map users across different tools to a unified identity.
Table of contents
Overview
Game development teams use many different tools - Perforce for version control, Jira for tasks, Slack for communication. Each tool has its own user system. Tool Identities let you map these separate accounts to a single person, giving you a complete picture of who did what across your entire pipeline.
The Problem
Without identity mapping:
- John commits as
jdoein Perforce - John’s Jira account is
john.doe@company.com - John’s Slack handle is
@johnd
ButterStack sees these as three different people, fragmenting the asset lineage.
The Solution
Tool Identities link these accounts:
ButterStack Identity: John Doe
├── Perforce: jdoe
├── Jira: john.doe@company.com
├── Slack: U123456 (@johnd)
├── Discord: 987654321
└── Jenkins: john.doe
Now all activity is attributed to a single person.
How It Works
Automatic Matching
ButterStack automatically attempts to match identities based on:
- Email address - Same email across tools
- Username patterns - Similar usernames (jdoe, j.doe, john.doe)
- Full name - Matching display names
Manual Linking
For accounts that can’t be auto-matched, manually link them in the project settings:
- Go to Project Settings > Team Members
- Find the person
- Click Link Identity
- Select the tool and enter the account identifier
Identity Sources
| Tool | Identity Field |
|---|---|
| Perforce | Username (e.g., jdoe) |
| Git/GitHub | Email or username |
| Jira | Account ID or email |
| Linear | User ID |
| Trello | Member ID |
| Slack | User ID (e.g., U123456) |
| Discord | User ID (numeric) |
| Jenkins | Username |
Benefits
Complete Attribution
See all of a person’s activity in one place:
- Commits they made
- Tasks they completed
- Builds they triggered
- Assets they modified
Accurate Analytics
Team metrics reflect actual individuals, not fragmented accounts:
- Commits per person
- Build success rates by author
- Time from task to deployment
Simplified Notifications
Notify the right person regardless of which tool originated the event. A failed build in Jenkins can ping the correct person in Slack.
API Access
List Identities
GET /api/v1/projects/:project_id/identities
Get Identity Details
GET /api/v1/projects/:project_id/identities/:identity_id
Link Account
POST /api/v1/projects/:project_id/identities/:identity_id/link
{
"tool": "perforce",
"account_id": "jdoe"
}
Best Practices
- Review Auto-Matches - Periodically check that automatic matches are correct
- Onboard New Members - Link all tool accounts when someone joins the team
- Clean Up Departed Members - Mark identities as inactive when people leave
- Use Consistent Naming - Encourage consistent usernames across tools to improve auto-matching