BDS0.1

Channel Binding

One channel serving one subject for one purpose during a period.

Reviewed 2026-10-28Markdown

A Channel Binding says where messages about one subject go: one Channel serving one Team, Department, Organization or Agreement, for one Purpose, during a validity period. Work that notifies (a task, a milestone, a procedure) should resolve its channel through whoever is responsible for it, never by naming a channel itself. A binding grants no access and removes nobody from a channel.

The table is empty on 2026-10-28, and no flow reads it yet. The Daily Digest resolves Slack recipients through Tooling and Access, not through bindings.

Channel Binding Grid view: no bindings are registered yet.

Fields

What is bound

Field Storage Meaning
Name Text Label written as channel · subject · purpose. Primary field.
Channel Linked records Channel; link exactly one Active channel
Channel (Name) Lookup Name of the linked channel, via Channel
Purpose Single select Billing, Support, Ops, Alerts, General. A second purpose is a second binding.

Who it serves

Field Storage Meaning
Subject Type Single select Team, Department, Organization, Agreement
Subject Key Text The subject’s business key, exactly as its source spells it
Subject (Team) Linked records Team (mirror); only when Subject Type is Team
Subject (Department) Linked records Department (mirror); only when Subject Type is Department
Subject (Organization) Linked records Organization (mirror); only when Subject Type is Organization
Tags Linked records Tags (mirror); optional labels

Agreement has no mirror table here, so an Agreement binding carries only Subject Type and Subject Key.

When it applies

Field Storage Meaning
Valid From Date First day in force; blank means it always applied
Valid Through Date Last day in force; blank while it still applies
Is Current Formula 1 while today is inside the validity, 0 otherwise

Calculated rules

Is Current

IF(AND(OR({Valid From} = BLANK(), NOT(IS_AFTER({Valid From}, TODAY()))),
       OR({Valid Through} = BLANK(), NOT(IS_BEFORE({Valid Through}, TODAY())))), 1, 0)

Blank dates count as open ends. The Channel table sums Is Current into Active Bindings. TODAY() follows Airtable’s formula timezone, so the change happens at midnight of that timezone, not of the reader’s.

Lifecycle and checks

A binding is current, future (Valid From after today) or ended (Valid Through before today). End a binding with Valid Through instead of deleting it. Nothing checks that Subject Type, Subject Key and the matching Subject link agree, that only one Subject link is filled, or that a subject and purpose have exactly one current binding; the descriptions state these rules for manual review.

Example

Fictitious: Name billing-alerts · Bluebird · Billing, Subject Type Organization, Subject Key ORG-0042, Subject (Organization) Bluebird, Purpose Billing, Valid From 2026-09-01, Valid Through blank, Channel billing-alerts. Is Current is 1.

Next steps

Register channels and rules · All entities