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.
ColumnTypeNotes
RECEIPT_KEYTEXTPrimary key
CONTACT_KEYTEXTFK → CONTACTS
RECEIPTING_STATEMENT_RUN_KEYTEXTFK → RECEIPTING_STATEMENT_RUNS (optional) — the statement batch that generated this receipt
RECEIPT_TYPENUMBERType of receipt — decode with TYPE_REFERENCES (Entity: Receipt, Property: ReceiptType)
RECEIPT_MEDIUMNUMBERDelivery medium (email, mail, etc.) — decode with TYPE_REFERENCES (Entity: Receipt, Property: ReceiptMedium)
YEARNUMBERTax year for this receipt
EMAIL_ADDRESSTEXTEmail address the receipt was sent to
RECEIPT_IS_AVAILABLE_TO_DONORBOOLEANReceipt is visible in the donor portal
RECEIPT_IS_DELETEDBOOLEANSoft delete flag

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.
ColumnTypeNotes
RECEIPTED_GIFT_KEYTEXTPrimary key
RECEIPT_KEYTEXTFK → RECEIPTS
GIFT_KEYTEXTFK → GIFTS
RECEIPTED_GIFT_IS_DELETEDBOOLEANSoft delete flag

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.
ColumnTypeNotes
GIFT_KEYTEXTPrimary key
CONTACT_KEYTEXTFK → CONTACTS
GIFT_DATE_UTCTIMESTAMPDate the gift was made
AMOUNTNUMBERTotal gift amount
GIFT_IS_DELETEDBOOLEANSoft delete flag

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.
ColumnTypeNotes
RECEIPTING_GROUP_RUN_KEYTEXTPrimary key
RECEIPTING_GROUP_NAMETEXTName of the receipting group
QUERY_NAMETEXTName of the query used to select donors
TEMPLATE_NAMETEXTReceipt template used
RECEIPT_MEDIUMNUMBERDelivery medium — decode with TYPE_REFERENCES (Entity: Receipt, Property: ReceiptMedium)
RECEIPT_CODETEXTReceipt code identifier
TOTAL_GIFTS_RECEIPTEDNUMBERTotal gifts included in this run
TOTAL_EMAIL_RECEIPTSNUMBERNumber of receipts delivered by email
TOTAL_MAIL_RECEIPTSNUMBERNumber of receipts delivered by mail
TOTAL_LETTER_ON_DEMAND_RECEIPTSNUMBERNumber of letter-on-demand receipts
RECEIPTING_GROUP_RUN_IS_DELETEDBOOLEANSoft delete flag

RECEIPTING_GROUP_RUN_GIFTS

One row per gift processed in a receipting group run. Junction table between RECEIPTING_GROUP_RUNS and GIFTS.
ColumnTypeNotes
RECEIPTING_GROUP_RUN_GIFT_KEYTEXTPrimary key
RECEIPTING_GROUP_RUN_KEYTEXTFK → RECEIPTING_GROUP_RUNS
GIFT_KEYTEXTFK → GIFTS
RECEIPTING_GROUP_RUN_GIFT_IS_DELETEDBOOLEANSoft delete flag

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.
ColumnTypeNotes
RECEIPTING_STATEMENT_RUN_KEYTEXTPrimary key
CONTACT_KEYTEXTFK → CONTACTS (optional) — populated for single-contact runs
TITLETEXTStatement title
STATEMENT_DATETIMESTAMPDate the statement covers
RECEIPT_FORMATNUMBEROutput format (PDF, email, etc.)
RECEIPTING_STATEMENT_RUN_IS_AVAILABLE_TO_DONORBOOLEANStatement is visible in the donor portal
RECEIPTING_STATEMENT_RUN_IS_DELETEDBOOLEANSoft delete flag

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.
ColumnTypeNotes
SENT_EMAIL_KEYTEXTPrimary key
CONTACT_INDIVIDUAL_KEYTEXTFK → CONTACT_INDIVIDUALS — the recipient
RECEIPT_KEYTEXTFK → RECEIPTS (optional) — set when this is a receipt delivery
RECEIPTING_GROUP_RUN_KEYTEXTFK → RECEIPTING_GROUP_RUNS (optional) — set when sent as part of a group run
RECEIPTING_STATEMENT_RUN_KEYTEXTFK → RECEIPTING_STATEMENT_RUNS (optional) — set when sent as part of a statement run
EMAIL_VERSION_KEYTEXTFK → EMAIL_VERSIONS (optional) — set for marketing emails
EMAIL_ADDRESSTEXTRecipient email address
DELIVERY_STATUSNUMBERDelivery outcome — decode with TYPE_REFERENCES (Entity: SentEmail, Property: DeliveryStatus)
OPENEDBOOLEANEmail was opened
CLICKEDBOOLEANEmail was clicked
UNSUBSCRIBEBOOLEANRecipient globally unsubscribed
MARKED_AS_SPAMBOOLEANRecipient marked as spam
SENT_EMAIL_IS_DELETEDBOOLEANSoft delete flag
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