Skip to main content
Grain: CONTACTS — one row per giving unit (household or organization). CONTACT_INDIVIDUALS — one row per person within a contact.
CONTACTS is the giving unit — every gift, pledge, and recurring commitment belongs to a contact. This page maps all tables that hang off the contact: the people within it, stewardship activity, memberships, engagement statistics by segment, and receipting history.
Key rule: Gifts belong to CONTACTS, not CONTACT_INDIVIDUALS. Email is sent to individuals. Always join to CONTACT_INDIVIDUALS when you need a person’s name or email address.
Solid lines — required join (FK always populated). Dotted lines — optional join (FK is nullable; always use LEFT JOIN).

Table columns

Tables on this page: CONTACTS · CONTACT_INDIVIDUALS · NOTES · TASKS · CONTACT_MEMBERSHIPS · MEMBERSHIPS · CONTACT_SEGMENT_STATISTICS · RECEIPTS · RECEIPTING_STATEMENT_RUNS

CONTACTS

One row per giving unit. Pre-aggregated giving totals (LIFE_TO_DATE_GIVING, YEAR_TO_DATE_GIVING) are maintained by Virtuous and do not require joining to GIFTS.

CONTACT_INDIVIDUALS

One row per person within a contact. Filter CONTACT_INDIVIDUAL_IS_PRIMARY = TRUE to get the main person. Email and phone live here, not on CONTACTS.

NOTES

One row per stewardship note logged against a contact or individual. PLAIN_TEXT_VALUE contains the note content without formatting.

TASKS

One row per action item on a contact. Can be linked to a gift ask. TASK_STATUS is a numeric code.

CONTACT_MEMBERSHIPS

One row per membership held by a contact or individual. Optionally linked to a recurring gift that funds the membership.

MEMBERSHIPS

One row per membership program defined in Virtuous. Referenced by CONTACT_MEMBERSHIPS.

CONTACT_SEGMENT_STATISTICS

One row per contact per segment — pre-aggregated giving statistics scoped to a specific campaign segment. Useful for comparing a contact’s response to individual campaigns.

RECEIPTS

One row per receipt issued to a contact. RECEIPT_TYPE and RECEIPT_MEDIUM are numeric codes. Individual gifts included in the receipt are tracked in RECEIPTED_GIFTS (see Receipts — extended reference).

RECEIPTING_STATEMENT_RUNS

One row per annual statement run — a batch process that generates year-end tax receipts for a group of contacts.
Data freshness: These tables sync continuously from Virtuous CRM. Typical lag is under 4 hours. To check when a record was last updated, inspect the SF__ROW_SYNCED_DATE_TIME_UTC column on any table.
Last modified on May 22, 2026