Skip to main content
Grain: RECEIPTS — one row per receipt issued to a contact. RECEIPTED_GIFTS — one row per gift included in a receipt.
A RECEIPT is the acknowledgment document issued to a donor. It can cover one or more gifts (RECEIPTED_GIFTS). Receipts are generated through two mechanisms: a RECEIPTING_GROUP_RUN (a batch run across many donors) or a RECEIPTING_STATEMENT_RUN (a year-end statement for an individual contact). Both can deliver via email, tracked in SENT_EMAILS.
Solid lines — required join (FK always populated). Dotted lines — optional join (FK is nullable; always use LEFT JOIN).

Table columns

Tables on this page: RECEIPTS · RECEIPTED_GIFTS · GIFTS (boundary) · RECEIPTING_GROUP_RUNS · RECEIPTING_GROUP_RUN_GIFTS · RECEIPTING_STATEMENT_RUNS · SENT_EMAILS

RECEIPTS

One row per receipt issued to a contact. RECEIPT_TYPE and RECEIPT_MEDIUM are numeric codes. Individual gifts covered by this receipt are in RECEIPTED_GIFTS.

RECEIPTED_GIFTS

One row per gift included in a receipt. A single receipt can cover multiple gifts; this is the junction table between RECEIPTS and GIFTS.

GIFTS

GIFTS appears in this diagram as the endpoint for both RECEIPTED_GIFTS and RECEIPTING_GROUP_RUN_GIFTS. The full gift structure is documented in Gifts — extended reference.

RECEIPTING_GROUP_RUNS

One row per receipting batch run — a bulk operation that generates receipts for a group of donors at once. Summary totals show how many receipts were produced and by which channel.

RECEIPTING_GROUP_RUN_GIFTS

One row per gift processed in a receipting group run. Junction table between RECEIPTING_GROUP_RUNS and GIFTS.

RECEIPTING_STATEMENT_RUNS

One row per year-end statement run. A statement run generates year-end tax summary receipts and can target a single contact or a query-based group.

SENT_EMAILS

One row per email delivery record. In the receipts context, SENT_EMAILS tracks receipt and statement emails delivered to donors. Also linked to email marketing — see Campaigns — extended reference for the full email structure.
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