BDS0.1

Person

One person, independent of their employment or organizational memberships.

Reviewed 2026-10-28Markdown

Source table: People in Core Record Types (schema:Person). A Person row is the golden record of one human being: name, personal contact, birth date, national identifier, picture and postal address. What the person does at work never lives here.

Rules and relationships

Create or correct identity in People. Name is calculated from First Name* and Last Name*. Memberships holds organizational participation; job titles and company email belong to Membership. Account Binding identifies an Airtable collaborator, not a Slack account. Address links one or more Address rows. Tags marks provenance, such as the automation that created the row.

Lifecycle and checks

Status is the state of the record, not of the work; work status lives in Membership Status. Draft: created in Core without an e-mail. Proposed: born in a domain, such as a CRM two-way mirror or the Cal.com booking workflow, and waiting for Core to promote it. Active: checked. On Hold: kept but not in use. Archived: retired. Superseded: a merged duplicate. There is no default value and no automation that sets Proposed on new rows; a row created without Status stays blank. Record health is the share of seven fields that are filled; Health check names the missing ones. Neither verifies identity.

Source fields

Names, types, options and links are those configured in Core Record Types. The meaning is the first line of each field description in Airtable. Options describe configuration; they do not prove a rule is enforced elsewhere.

Recorded values

Field Type Meaning Options, link or calculation
Image Attachments Stores the person’s picture, used wherever they appear. Entered value.
Account Binding Collaborator Stores the workspace account this person signs in with. Entered value.
First Name* Text Stores the first name the person goes by. Entered value.
Last Name* Text Stores the family name the person goes by. Entered value.
Email* Email Stores the person’s own email address, the one that stays with them between companies. Entered value.
Telephone* Phone Stores the phone number the person agreed to be called or messaged on. Entered value.
Birth Date Date Stores the day the person was born. Entered value.
National Identifier Text Stores the government identity number that names this person in their country. Entered value.
Status Single select Stores where this person’s entry stands in its life. Draft, Proposed, Active, On Hold, Archived, Superseded
Notes Rich text No description in Airtable. Entered value.
Field Type Meaning Options, link or calculation
Address Linked records Links the postal addresses where this person can be reached. → Address · several records
Memberships Linked records Links every membership this person holds, one per company. → Membership · several records
Tags Linked records Links the tags that mark this person, such as the automation that created the entry. → Tag · several records

Calculated

Field Type Meaning Options, link or calculation
Name Formula Shows the person’s full name, built from the two name columns. Formula below.
Record health Formula Shows how complete this person’s core data is, as the share of seven key fields that are filled. Formula below.
Health check Formula Says in words what is missing from this person’s core data, or shows ✅ when nothing is. Formula below.
Organizations [membership] Lookup No description in Airtable. Lookup of Business Unit through Memberships

Generated by Airtable

Field Type Meaning Options, link or calculation
Created By Created by Airtable system value. Airtable system value.
Created At Created time Airtable system value. Airtable system value.
Last modified by Last modified by Airtable system value. Airtable system value.
Last modified at Last modified time Airtable system value. Airtable system value.

Current formulas

Field IDs are rendered as current field names.

Name

TRIM({First Name*} & " " & {Last Name*})

Record health

SUM(
IF({First Name*},1,0),
IF({Last Name*},1,0),
IF({Email*},1,0),
IF({Telephone*},1,0),
IF({National Identifier},1,0),
IF(COUNTA({Image})>0,1,0),
IF(COUNTA({Address})>0,1,0)
)/7

Health check

IF(
  AND(
    {First Name*},
    {Last Name*},
    {Email*},
    {Telephone*},
    {National Identifier},
    COUNTA({Image})>0,
    COUNTA({Address})>0
  ),
  "✅",
  "Missing: " & REGEX_REPLACE(
    CONCATENATE(
      IF({First Name*}, "", "First Name, "),
      IF({Last Name*}, "", "Last Name, "),
      IF({Email*}, "", "Email, "),
      IF({Telephone*}, "", "Telephone, "),
      IF({National Identifier}, "", "National Identifier, "),
      IF(COUNTA({Image})>0, "", "Image, "),
      IF(COUNTA({Address})>0, "", "Address, ")
    ),
    ", $", ""
  )
)

Example (fictitious)

Sam Example is created by the booking workflow as Proposed, with the tag cal-lead-n8n and an e-mail. A Core maintainer searches People by e-mail, finds no duplicate, adds Telephone* and Address, and sets Status to Active. The CRM keeps the commercial relationship; Core keeps the person.

Use by other systems

Sync direction and the source view are confirmed only where the note says so; see Architecture and ownership.

System Local table Note
KPIs & OKRs Person (mirror) —
CRM People two-way, CRM exception to the Core rule
Tooling and Access Person (mirror) —
Communication Person (mirror) —

Correct shared records · All entities