We added a rich text field on account intended to hold a recent summary of donation activity as well as a call to action for next action. Next action could be customized to indicate 1, 2, and 3 time encouragement, but this is not yet implemented. The items are currently formatted as list item <li></li> so they can be pulled into html emails.
A flow creates the summary. It has three branches… one for non-accounts, intended for those with soft donation totals and those subscribed to our donor updates who have not donated. It included only a call to action for how to donate. The second branch is for donors who have no activity in the last N days (NPSP rollup, currently 365). It contains a summary of the last donation and a call to action. And finally, the third branch summarizes each of the donations in the last 365-day period (set in the flow… not synchronized with the NPSP setting) and a call to action for sharing our donation page.
There is a single sub-flow which summarizes the donation. It uses the payment method for bank donations (check or bank transfer), PayPal for that source, credit card for Stripe, and the Account source for others. It also appends the name of any third-party aggregator. The same flow takes care of fixing up the format of amount fields converted by SF from currency to text. We currently don’t add any commas programmatically. If the amount is ending in .00, those zeros are suppressed by the current conversion method. If the cents amount is non-zero but happens to end in a zero, the flow adds a padding “0” since the current conversion method doesn’t handle that. So, $3.2 gets padded to $3.20.
A mass action schedule is run to update account donation summaries on all accounts with non-zero number of gifts. A second mass action schedule is run to update accounts with zero giving directly but who have contacts have non-zero soft donations or who have subscribed to the quarterly donor update. (These will all go down the first branch.)
It should be noted that this generalized solution appears to be a method of sending detailed giving summaries natively from Salesforce with little difficulty.