# Identity Binding

Ties one tool account to the person and membership behind it, for a period, with evidence.

An Identity Binding says who was behind an account during a period. It is how other systems find the person or membership for a Slack account or a mailbox: never from a name or an e-mail address. An unverified binding authorizes nothing. This is not the Core Account Binding, which ties a Person to an Airtable user.

## Rules and relationships

Link one Account and, once evidence supports it, one Person; bots and services need no person. Member links the membership the account serves: a person with two units has two mailboxes and two bindings. Close a binding with Valid Through instead of deleting it. At most one binding should be open per account; nothing enforces this, and the Account and Person pickers accept several records.

The Slack recipient resolver used by KPIs & OKRs reads Person, Account and Valid Through; it does not check Valid From. Account: Tool, Account: Login Alias, Account: External Identifier and Member: Membership ID were added for Cal.com routing and have been unused since that routing moved to the CRM Lead Source table. The Name description says it is a running number; it is calculated from Binding # and Person.

## Fields

| Field | Storage | Current configuration |
| --- | --- | --- |
| Name | Formula | Calculated; see rules below. |
| Binding # | Auto number | Running number of the binding |
| Account | Linked records | [Tool Account](/systems/tooling/entity-tool-account); Multiple-record picker |
| Person | Linked records | [Person (mirror)](/systems/tooling/entity-person); Multiple-record picker |
| Valid From | Date and time | UTC; when the binding started to hold |
| Valid Through | Date and time | UTC; when it stopped; blank = still valid |
| Account: Name | Formula | Calculated; see rules below. |
| Member | Linked records | [Membership (mirror)](/systems/tooling/entity-membership); Single-record picker |
| Account: Tool | Lookup | Via Account → Tool |
| Account: Login Alias | Lookup | Via Account → Login Alias |
| Account: External Identifier | Lookup | Via Account → External Identifier |
| Member: Membership ID | Lookup | Via Member → Membership ID |
| Tags | Linked records | [Tags (mirror)](/systems/tooling/entity-tags); Multiple-record picker |

## Calculated rules

The expressions below use field names for readability. They label rows; they do not validate them.

### Name

```text
CONCATENATE(
  {Binding #}," - ",{Person}
)
```

### Account: Name

```text
T({Account})
```

## Example

Account = ana.costa - Slack - Example Studio; Person = Ana Costa; Member = 190 - Ana Costa - Example Studio; Valid From = 2026-03-01 09:00; Valid Through blank. Name reads `12 - Ana Costa`.

## Next steps

[Bind an account to a person](/systems/tooling/bind-accounts) · [Find the view](/systems/tooling/data-views)