# People and workspaces

Trace responsibility from membership to a Slack user and the matching workspace bot.

For shared definitions and source maintenance, see [Core](/systems/core/overview).

## Resolve the person

The schedule links Membership (mirror). The workflow reads its display name, shared membership number and organization. It normalizes the name and matches a Person in Tooling and Access, then follows Identity Binding to a human Tool Account. It filters expired Valid Through values. Valid From is present in the schema but is not checked by the resolver. Duplicate names are a risk because matching selects the first normalized name.

## Choose the workspace

The resolver first tries workspaceByOrganization. If no matching account is found and the person has one human account, it uses that account; otherwise it tries defaultWorkspaceTeamId. This fallback means an organization mapping is not a strict routing boundary. The bot token is then requested for the workspace of the selected human account. Token pairing is workspace-specific; routing policy still needs review before broad rollout.

## Source ownership

Shared people, organizations, memberships, positions, departments and cadence come from their source mirrors. Correct source data at its owner and verify it reaches the local lookup. Membership # joins communication records across bases; local Airtable record IDs are not interchangeable. Memebership is the current team table. Account Binding and business Access Level do not replace Slack installation or Airtable sharing permissions.