Data Health Tool - How to report on users creating duplicate records

I think this may be an Ideas Bank topic but wanted to see if anyone has any suggestions. I am trying to develop an internal data health check process on duplicate records. While I can report on who created the duplicate record by exporting the merged records and include the “date added" and “added by” in the query to provide an audit of the repeat “offenders”, I want to be able to create a query or list specific to each “offender” and hold them accountable for doing their own clean up/merge of the duplicates they create. (it wouldn't be for all users, just the few that have the merge rights). Thoughts?

Comments

  • JoAnn Strommen
    JoAnn Strommen Community All-Star
    Tenth Anniversary Kudos 5 Raiser's Edge NXT Fall 2025 Product Update Briefing Badge First Reply

    @Vivian Wu Welcome to the BB community forums.

    If you have a query and are outputting the ‘added by’, have you considered putting the added by in your query criteria? You could use your primary query and add that criteria field and save as a separate query for each user.

  • Alex Wong
    Alex Wong Community All-Star
    Ninth Anniversary Kudos 5 Facilitator 3 Raiser's Edge NXT Fall 2025 Product Update Briefing Badge

    @Vivian Wu
    I wonder how you “report on who created the duplicate”, unless you tag the merged record and doesn't delete them, which doesn't quite make sense (though I know some org keep the “source merge” record, but can't really understand why you want to keep this dorment record around).

    Regardless of the above, while you can setup a query like JoAnn said to filter on constituent added by the offender, you can't create a query of records that needs them to clean up. (Unless you tag dup records in some way that you filter on, which doesn't make sense).

    OR maybe that's why the comment that you said maybe it's an Idea Bank topic, that you want Blackbaud to create a “tool” that identifies dup (or possible dups) that is created by specific individual user (as oppose to what we have today, which is a possible dup on webview overall, not specific to user).

  • Dariel Dixon
    Dariel Dixon Community All-Star
    Seventh Anniversary Kudos 5 First Reply PowerUp Challenge #3 Gift Management

    @Vivian Wu This is an interesting concept. Obviously no one would create duplicate records intentionally, exporting the date added and added by doesn't resolve things in a vacuum. I don't believe that people create duplicates, but flawed processes create duplicates. I think this kind of research is good for identifying the process and how the duplicates are being created, but you may just be reporting on the person in charge of running the process as opposed to resolving the root problem.

    Accountability is important, but I would be careful to check to see what the end result is before just asking them to fix it.

    Also, I think there is a good question that @Alex Wong brings up. How would you export that data on a previously merged record? If you are merging them as a duplicate, I would hope you are deleting the redundant record.

  • @Vivian Wu
    Hi Vivian,

    I often say: "We have to do this work, so when do we want to do it? Beginning of the process or end of the process?" As Alex and Dariel mentioned, it's a tricky situation. A typo, spelling out Street instead of abbreviating, using nicknames, these are all reasons why a duplicate may not be recognized.

    Full disclosure: We use Omatic and MergeOMatic for a variety of reasons, but mostly because: the matching is generally more robust than RE's, and we can do bulk merging instead of reviewing only two records at a time. MergeOMatic tool adds a note for the merged record recording what was brought over, include the “Added By” details.

    Omatic also has its own cost and foibles--not perfect by any means! We use Omatic Cloud to bring online gifts over, and my name is on all the batches because my account has all the permissions to connect the programs. So, it looks like I add duplicates everyday even though I'm not the one who runs the process on a daily basis.

    To answer your question (using an Omatic lens): I can set up a query of gifts added in the past week, added by so-and-so (or in our case, by other gift criteria, because of the above issue of me being on all online gift batches), and use that query to inform my MergeOMatic de-dup for the day. Otherwise, it's a manual process in a spreadsheet comparing newly added records to the current database by name, email, phone, address, etc. I've done that before, too, and it sucks.

    This is parts process, training and consistent hygiene practices. We try to bake in hygiene practices into our everyday processes, and then have the weekly/monthly hygiene checks to catch whatever we couldn't catch. generally, each team member (3 of us) dedicates one hour a week on different days to review duplicates; the whole pool, not just the batches they have worked on.

    You may also consider the permissions and roles. Maybe there are some users who should not be adding new records. We have a set up that users can request database changes, including adding new records, so we can check all our proverbial boxes to make sure it isn't a duplicate record or an incomplete record. But it's a select few who have full Admin, or Heavy Data Entry rights.

  • Alex Wong
    Alex Wong Community All-Star
    Ninth Anniversary Kudos 5 Facilitator 3 Raiser's Edge NXT Fall 2025 Product Update Briefing Badge

    @Julie Hollyday
    not sure if someone already mention to you, MergeOmatic does merge like a dbview merge, which means it lacks merge capability on webview data. There is no “merge SKY API” yet, meaning Omatic can't create a merge tool that does merge that handles both dbview and webview data, like the current enhanced merge function on webview now, even though can only do 1 at a time, not in bulk

  • @Alex Wong
    Thanks for sharing that Alex! Omatic certainly didn't make that clear, but we've used MergeOMatic for about 2.5 years. Likely wasn't a problem back then because Blackbaud wasn't improving NXT much at that point.