Batch Entry of Contributions and Membership Payments - Draft Specification
Batch entry of gifts (checks, cash, etc.) is a much requested "missing feature" in CiviCRM. Thanks to a generous sponsorship commitment from the Electronic Frontier Foundation, we are about to launch a Make-it-Happen campaign to implement this feature for the next release (4.2). We've spent some time discussing requirements with folks at EFF and several other organizations, and we've reviewed analogous functionality offered by several of the proprietary donor management products. The purpose of this post is to share the draft specifications for the feature and solicit feedback from others in the community.
The goal is to provide a streamlined interface for data entry of batches of contributions and membership payments. A simple batching concept will be introduced to provide verification of count and totals. The feature will use a grid-style input form with the columns controlled by a selected profile. This will allow sites to add or remove non-required fields in the grid (e.g. add custom contribution fields, add or exclude premium fields etc.). The current plan is to have a separate flow / input grid for batch entry of contributions vs. membership signup / renewal payments. This will help reduce the number of columns required for each type of input.
1. Create a New Batch
Users add a new batch by entering the following: batch type-contributions or memberships for now (required), batch name (required), description (optional), number of items (optional), batch total amount (optional). A default unique batch name is provided ("Batch N" + open date). The batch open date is assigned automatically. Users select the profile they want to use for the input grid
2. Enter Contributions or Memberships (check, cash, EFT)
For each row, you can select an existing contact using the auto-complete widget OR create a new contact (using the pop-up New Contact profile form). If contact information such as phone number or email address are included in the grid profile - those values will be populated for an existing contact and can be updated as needed in the row. Support for assigning a Soft Credit will be included. Rows will be saved as they are recorded to prevent data loss. A running count and total for the batch will be displayed on the screen. Client side field validation will be used as much as possible.
3. Verify Batch Totals / Close Batch
Users can enter all transactions for the batch in one session, or simply log-out and complete input at a later time. When all transactions are entered, the user clicks "Close Batch". If a transaction count and total have been recorded for the batch, the user will be alerted when closing if the count or total don't match. In this case, they can return to the batch's transactions to check for input errors, missing and or duplicate transactions. Or they can override the entered count and total (in which case the batch values are updated to match the transactions in the batch).
Working with Existing Batches
Users can return to an open batch to continue adding or editing transactions in the batch. For open batches, they can also edit name and description of batches, modify the expected number of transactions, and batch total, and set the batch status to closed. Batches may only be deleted if they have 0 transactions assigned to them. Administrators may have permission to re-open a batch that has not been exported, in which case the batch close date is set to null. Once the the batch is exported it cannot be changed. (NOTE: Batch export is not in scope for this project, but is scheduled to be included in CiviAccounts development.)
Minimally the batch name should be added to the Contribution Detail report as a column and as a filter. If time permits, one or more "Batch Reports" may be implemented.