Data Quality Routine
This nightly routine performs various clean-up tasks in the database.
People Records
Contact Syncing
The routine syncs Contacts with Donors/Participants/Users. See Routines FAQ for more information on how the SVC MNGR syncs these records.
- Contacts.Donor_Record with Donors.Donor_ID
- Contacts.Participant_Record with Participants.Participant_ID
- Contacts.User_Account with dp_Users.User_ID
Other Contact Cleanup
- Add Suffix to display name on any Contact that has one.
- Assign household position of "Company" to any contact record where Contacts.Company is set to Yes.
- All email addresses are made lower case.
- Populate missing Nickname values. If the Nickname field is null, the routine auto-populates the Nickname field with the First Name.
- Add a title on the Care Case page when a Care Case is created from MobileTools that shows the Care Type and Display Name of the Contact when there is one or the Household when there is not a Contact.
- Update the Participant End Date field when it is null and the Contact's status is Inactive or Deceased.
- Clear the Participant End Date field if it is populated and the Contact's status is not Inactive or Deceased.
Contributions
- Create Payment Detail records for Payment records.
- Identify payments that do not have a Payment Detail record and are associated with an invoice that has Invoice Detail records.
- Determine the sum of the payment(s) made toward the associated invoice.
- Disqualify any payments under the following conditions:
- The invoice total is greater than or less than the sum detail lines.
- The balance due is less than or equal to zero.
- The payment total is greater than the invoice total.
- The payment total is greater than the balance due.
- Sort which Invoice Detail records to credit and by how much.
- Update invoice status if needed.
- Delete any unused Donor Account records assigned to the Default Contact.
- Merge any duplicate Donor Account records for a donor based on matches for a value greater than five in that field.
- Donation distributions are credited to active pledges that were, for whatever reason, not credited. Pledges are credited if all of the following are met:
- The donation is distributed to a program that is connected to a pledge campaign to which the donor or spouse has an active pledge.
- The donation distribution pledge is null.
- The donation date is later than the first Installment date of the pledge.
- The donation date is within the number of days defined under SSRS, AssignIncrementPledgeDays.
- Update corresponding spouse when one spouse's statement type, method, or frequency is updated. To enable this update, you must set at least one of the following configuration settings to true (pick and choose the ones that work for your church):
- SSRS, SyncSpouseDonorType - Updates corresponding spouse's statement type.
- SSRS, SyncSpouseDonorMethod - Updates the corresponding spouse's donor method.
- SSRS, SyncSpouseDonorFrequency - Updates the corresponding spouse's statement frequency.
- New Pledge records are created when a donation is received for a pledge campaign and the pledge does not already exist. This only occurs if the Pledge Campaign record has Auto Create Pledges set to Yes and the campaign is currently assigned as the default for the program. New pledges are only created if donations are given to that same program and the Donation Date is within the number of prior days as defined in SSRS, AssignIncrementPledgeDays. By default, this window is defined as 90 days prior to today's date. You can change this date range if needed, but note that increasing the number of days may affect performance.
- SSRS, AssignIncrementPledgeDays - Controls the date range of donation distributions assigned to the pledge.
Note: A pledge may not be created if a donation has an issue. In Catholic instances, you can use the Fix: No Pledge Created view to check for reasons that a pledge could not be created. For example, the pledge campaign does not have Auto Create Pledges set, the donor is set to the default contact, the donor has Always Pledge Credit assigned, and other reasons. - Pledge totals are increased to match donation totals if the Pledge Campaign record has Auto Increase Total set to Yes. If the sum of all donation distributions applied to a pledge (including those that the routine may have just applied) exceeds the Total Pledge value for that pledge, then the Total Pledge value is increased to match that sum. Any changes made by this routine are recorded as pledge adjustments with an adjustment type of Auto Increase.Note: A pledge may not be updated if a donation has an issue. In Catholic instances, you can use the Fix: No Pledge Assigned view to check for reasons that a pledge could not be updated. For example, a donation is older than 90 days, a donation comes before the first installment date, the pledge is inactive, the program is missing a pledge campaign, and other reasons.
Groups and Participation
Group Is Full
- This sets Groups.[Group_Is_Full] to Yes when the count of group participants is greater than or equal to the Target Size of the group.
- If the PORTAL, COUNTGROUPINQUIRIES Configuration Setting is True, the count is based on the combination of Inquiries where Placed is Null and Group Participants of the group compared to the Target Size.
- If Group_Is_Full is already set to Yes, the routine does not set back to No. This can be done manually at the timing and discretion of the church.
Group Participants
- This merges duplicate Age or Grade Group Participant records where one Participant has more than one record in the same Group or with the same role.
Forms and Invoices
- Anyone associated with a Form Response record that came from the Opportunity Finder updates with the same person once the Response record updates.
- The Recipient associated with an Invoice Detail record that came from the Event Registration updates with the same person once the Event Participant record updates.
Attendance
- Update the Last Attendance Date on the Participant record as appropriate from recent attendance posted. The attendance could be for a past, current, or future event - the routine looks for the most recent 03 Attended or 04 Confirmed status.
- End date any current Group Participants on Groups where the End Date was added at the Groups creation (before the Group Participants were added to the Group).
- Update the Last Attendance Posted and Last Group Member Change fields on the Group record.
Group and Events
- Create Event_Groups for any Groups in the Event_Rooms table associated with future Events to make reports and tools using Event_Groups valuable during the transition to using Event_Rooms as part of the new Check-In Suite. Note: The Routine only adds Event Groups for Events with a Start Date more than 30 days in the past.
- Set Event_Rooms.__Primary_Reservation (a hidden field on the Check-In Suite scenarios. sub-page) to allow views and reports to target this field. This ensures you receive only the most relevant record associating a room with an Event when a Room is associated multiple times with an Event to accommodate multiple Groups sharing a Room, as is common in some
Register Into Series
Use this routine to automatically add participants to all future events in a series.
The Data Quality Routine runs nightly and handles Registering into a Series.
Anyone registered for a future event in a series (with Register into Series set to Yes) is automatically added to all future events in the series.
- This only applies for Participants with a status of Registered (2) in an earlier Event. Future means all Events in the series with a future Start Date after the one in which they are Registered.
- You must include an updated link to a future event on your website for new event registrants to be added to future events. You can also copy event registrants to a future event in the series and the routine copies them forward.
- Anyone canceled in one event in the series is automatically canceled in future events in the series. Participant records associated with the Default Contact are not added to future events in a series. The routine ignores such records until the real participant is assigned.
- If someone registers for two or more events in a day and one event is not a series, it still adds the one in the series into future events.
The following information is included in the Event Participant records created by the routine:
- Event ID
- Participant ID
- Participant Status ID
- Group Participant ID
- Notes
- Group ID
- Room ID
- Group Role ID
- Response ID
Administration
- Replace "WebUser" with the actual user name in the Audit Log when possible.
- Remove "In Recovery" from user accounts. After a specified time, the temporary password expires and the individual needs to begin the process again.
- Remove any empty Current/Unsaved Selections.
- Review Configuration Settings for instances when a primary key integer value that is used as a configuration setting is no longer present in the table. An alert about this situation allows a technician to update the value to a value that exists. This prevents application errors.