Grain:
GIFTS — one row per posted gift transaction. GIFT_DESIGNATIONS — one row per project split within a gift (a single gift can have multiple rows).Key rule: Never queryGIFTSalone for project-level data. Always join throughGIFT_DESIGNATIONS— a single gift can be split across multiple projects.
Solid lines — required join (FK always populated). Dotted lines — optional join (FK is nullable; always use LEFT JOIN).
Table columns
Tables on this page: GIFTS · CONTACTS · CONTACT_INDIVIDUALS · GIFT_DESIGNATIONS · PROJECTS · SEGMENTS (boundary)Related queries
- Gift history for a contact
- Giving summary by project
- New donors in a date range
- Gift designation breakdown
GIFTS
One row per posted gift transaction. The amount onGIFTS is the total; split across projects via GIFT_DESIGNATIONS. For the full gifts hub with all connected tables, see Gifts — extended reference.
CONTACTS
One row per giving unit (household or organization). Pre-aggregated giving totals are available directly on this table. For all contact-related tables, see Contacts — extended reference.CONTACT_INDIVIDUALS
One row per person within a contact. FilterCONTACT_INDIVIDUAL_IS_PRIMARY = TRUE to get the main person. Email and phone live here, not on CONTACTS.
GIFT_DESIGNATIONS
One row per project split within a gift. A single gift can have multiple designation rows.AMOUNT_DESIGNATED across all rows for a gift sums to GIFTS.AMOUNT.
PROJECTS
One row per fund or program. The destination for gift designations.SEGMENTS
SEGMENTS appears in this diagram as the campaign attribution link on GIFTS.SEGMENT_KEY. The full campaign hierarchy is documented in Campaigns — extended reference.