Grain:
CAMPAIGNS — one row per campaign. COMMUNICATIONS — one row per channel within a campaign. SEGMENTS — one row per recipient subgroup within a communication.SEGMENT_KEY that links it to the marketing chain that solicited it. Following that key up through SEGMENTS → COMMUNICATIONS → CAMPAIGNS reveals which campaign drove the gift and how much each segment raised.
Key rule: The hierarchy flows top-down at setup but is queried bottom-up from the gift. Start at GIFTS.SEGMENT_KEY, then join upward to reach campaign totals.
Solid lines — required join (FK always populated). Dotted lines — optional join (FK is nullable; always use LEFT JOIN).
Table columns
Tables on this page: CAMPAIGNS · COMMUNICATIONS · SEGMENTS · GIFTS (boundary) · CONTACTS (boundary)CAMPAIGNS
One row per top-level marketing initiative. For all campaign-related tables including emails and events, see Campaigns — extended reference.COMMUNICATIONS
One row per channel within a campaign (e.g. Direct Mail, Email Blast). Contains pre-aggregated performance totals.SEGMENTS
One row per recipient subgroup within a communication.SEGMENT_KEY is the FK carried on GIFTS — it is the entry point for all campaign attribution queries.
GIFTS
GIFTS appears in this diagram as the attribution target — the transaction that carries SEGMENT_KEY back to the campaign hierarchy. The full gift structure is documented in Gifts — extended reference.
CONTACTS
CONTACTS appears in this diagram as the giving unit linked to each gift. The full contacts structure is documented in Contacts — extended reference.