Skip to main content
Grain: PLEDGES — one row per commitment to give. PLEDGE_PAYMENTS — one row per installment against a pledge (null GIFT_KEY means the payment is expected but not yet received).
A GIFT_ASK is a specific solicitation made to a contact for a project. When a contact commits to giving, a PLEDGE is created — optionally linked back to the ask. PLEDGE_PAYMENTS track each scheduled installment, and when payment arrives, it is recorded as a GIFT.
Key rule: A pledge can exist without a gift ask (contact committed without a formal ask). Always use a LEFT JOIN when connecting PLEDGES to GIFT_ASKS.
Solid lines — required join (FK always populated). Dotted lines — optional join (FK is nullable; always use LEFT JOIN).

Table columns

Tables on this page: PLEDGES · GIFT_ASKS · PLEDGE_PAYMENTS · CONTACTS (boundary) · GIFTS (boundary) · PROJECTS (boundary)
PLEDGES.STATUS is a numeric code. Decode it using TYPE_REFERENCES with ENTITY = 'Pledge' and PROPERTY = 'Status'. See the decode pattern.

PLEDGES

One row per pledge commitment. Tracks the total amount pledged, how much remains (BALANCE), and current status. Fulfillment is tracked via PLEDGE_PAYMENTS.
ColumnTypeNotes
PLEDGE_KEYTEXTPrimary key
CONTACT_KEYTEXTFK → CONTACTS
GIFT_ASK_KEYTEXTFK → GIFT_ASKS (optional) — the ask that generated this pledge; always LEFT JOIN
PROJECT_KEYTEXTFK → PROJECTS
PLEDGE_DATETIMESTAMPDate the pledge was made
EXPECTED_FULFILLMENT_DATETIMESTAMPExpected date pledge will be fully paid
CANCEL_DATE_TIME_UTCTIMESTAMPDate the pledge was cancelled
WRITE_OFF_DATE_TIME_UTCTIMESTAMPDate the pledge was written off
AMOUNT_PLEDGEDNUMBERTotal commitment amount
BALANCENUMBERRemaining unfulfilled amount
FREQUENCYNUMBERPayment schedule — decode with TYPE_REFERENCES (Entity: Pledge, Property: Frequency)
STATUSNUMBERCurrent status — decode with TYPE_REFERENCES (Entity: Pledge, Property: Status)
WRITE_OFF_AMOUNTNUMBERAmount written off
WRITE_OFF_REASONTEXTReason for write-off
PLEDGE_IS_DELETEDBOOLEANSoft delete flag — always filter WHERE PLEDGE_IS_DELETED = FALSE

GIFT_ASKS

One row per formal solicitation made to a contact. Linked optionally to GIFTS (when fulfilled) and PLEDGES (when it results in a commitment).
ColumnTypeNotes
GIFT_ASK_KEYTEXTPrimary key
CONTACT_KEYTEXTFK → CONTACTS — the contact being solicited
PROJECT_KEYTEXTFK → PROJECTS — project the ask is for
SEGMENT_KEYTEXTFK → SEGMENTS (optional) — campaign segment for this ask
ASK_DATETIMESTAMPDate the ask was made
EXPECTED_FULFILLMENT_DATETIMESTAMPExpected date the ask will be fulfilled
ASK_AMOUNTNUMBERAmount requested
ASK_TYPETEXTType of ask (e.g. Major Gift, Annual Fund)
PROBABILITY_TO_CLOSENUMBERLikelihood of fulfillment (0–100)
STATUSTEXTCurrent status text
DECLINEDBOOLEANTrue if the ask was declined
GIFT_ASK_IS_DELETEDBOOLEANSoft delete flag

PLEDGE_PAYMENTS

One row per scheduled installment against a pledge. A null GIFT_KEY means the installment was expected but not yet received.
ColumnTypeNotes
PLEDGE_PAYMENT_KEYTEXTPrimary key
PLEDGE_KEYTEXTFK → PLEDGES
GIFT_KEYTEXTFK → GIFTS (nullable) — null = installment expected but not received
EXPECTED_PAYMENT_DATETIMESTAMPDate the installment was expected
FULFILL_PAYMENT_DATE_TIME_UTCTIMESTAMPDate the installment was actually paid
EXPECTED_AMOUNTNUMBERAmount expected for this installment
ACTUAL_AMOUNTNUMBERAmount actually received
PLEDGE_PAYMENT_IS_DELETEDBOOLEANSoft delete flag

CONTACTS

CONTACTS appears in this diagram as the giving unit making the pledge and receiving the ask. The full contacts structure is documented in Contacts — extended reference.
ColumnTypeNotes
CONTACT_KEYTEXTPrimary key
NAMETEXTContact display name
CONTACT_IS_DELETEDBOOLEANSoft delete flag

GIFTS

GIFTS appears in this diagram as the transaction recorded when a pledge payment is collected. 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

PROJECTS

PROJECTS appears in this diagram as the fund the pledge and ask are associated with. The full project structure is documented in Gifts — extended reference.
ColumnTypeNotes
PROJECT_KEYTEXTPrimary key
NAMETEXTProject name
PROJECT_IS_ACTIVEBOOLEANWhether the project is currently active
PROJECT_IS_DELETEDBOOLEANSoft delete flag
PLEDGES.STATUS is a numeric code. Decode it using TYPE_REFERENCES with ENTITY = 'Pledge' and PROPERTY = 'Status'. See the decode pattern.
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