Specification for soft credit enhancements based on this blog post by Eliet Henderson, and conversations with Eliet, Kellie Brownell, Peter Gehres and others.
Soft Credit Enhancements - Phase 1
Below are several enhancements for managing soft credits. These items will be considered for inclusion in 4.4 if funded.
Soft Credit Multiple Contacts for One Contribution
Allow back-office users to select multiple soft credit contacts for a given contribution. Users can select an existing contact or create a new contact (using the standard "select or create new" UI pattern as other objects).
Also allow users to specify the soft credit amount for each soft credit contact.
- Implement "select or create new" UI in add / edit contribution form.
- Link to "add another soft credit" inserts another set of soft credit fields for contact select/create.
- Each soft credit "row" contains contact select/create and soft credit amount.
- Soft credit amount field will be required, and will default to total amount of contribution.
Batch Data Entry
Allow soft credit amount to be included in batch data entry grid (either as a "pseudo" profile field which is rendered when 'Soft Credit' profile field is included, or as a separate element).
Add Soft Credits to Reporting
- Add options to find ONLY soft credits, include soft credits with regular contributions, exclude soft credits to the following contribution reports:
- Contribution Summary
- Contribution Detail - CRM-12490
- SYBUNT and LYBUNT
Add Soft Credits to Search and Export
Add ability to include soft credits in search results from Find Contributions and Advanced Search "Contributions" pane.
We will look at offering the following options:
- ONLY soft credits
- Include soft credits with regular contributions
- Exclude soft credits
- Search result columns include
- "Soft Credit Amount"
- A new "integer" column - "Soft Credit for" by default which contains the associated hard credit (contribution) ID. (NOTE: This is intended to provide the linkage as well as make it easy to differentiate soft credits from hard credits.)
- Search result sort order will default to donor sort name.
However, the current Search query framework may not support all the options above. Minimally we can include columns in the Contribution rows with soft credit contact name, amount, soft credit for (contribution ID).
Soft Credit Enhancements - Phase 2
Below are potential future improvements to soft credit management, after Phase I is funded.
Create Soft Credit Types
Each soft credit is assigned a "soft credit type" from a list of options
- Implement option group with default set of types, and assign one as the "default" type. Possible options:
- Solicitor (default type?)
- In honor
- On behalf of
- Employer matching gift
- Personal campaign page
- Third party payment (sub-divide?)
- Modify contribution_soft table - add soft_credit_type_id
- Modify schema
- Upgrade script sets soft_credit_type_id for existing soft credits. Assign PCP type if civicrm_contribution_soft.pcp_id is not NULL. Else assign default type.
- Add dropdown field to back-office contribution form to select Soft Credit Type.
- Each soft credit "row" would contain contact select/create and soft credit type.
Add Soft Credit Types to Search and Reporting
Contribution exports include "Soft Credit Type" and "Soft Credit Type ID" columns
Add soft credit type to Soft Credit Report.
Soft Credit Tokens
TBD - NOTE: Given that a contribution may have > 1 soft credit, implementing tokens which evaluate to soft credit type, soft credit contact, etc. is a bit tricky. These could evaluate to arrays or ....? Might need to hold off on this for this iteration.
Soft Credit Fields in Contribution Batch Update
Allow Soft Credit (contact) and Soft Credit Amount to be included in profiles used for Contribution Batch Update.
Deprecate separate "In Honor of" functionality (for discussion)
It may make sense to merge the "In Honor of" functionality with soft credits once we have soft credit types. How do other fundraising platforms handle this?
If we do this, we could leave the contribution page user interface as is - but modify the processing to create a soft credit of a specific type.
Refer to this post by Sean Madsen for a perspective on why merging these features makes sense.