cutePR

Media-list duplicate review

Review duplicate media-list entries without losing context.

Do not begin a media-list cleanup with Delete Duplicates. Begin with an untouched source copy, a working copy, and a decision log. The goal is to identify one relationship without discarding conflicting evidence, campaign history, exclusions, or an old outlet that explains the record.

Exact-email overlap and probable identity are different review queues. Even an exact shared address proves that two rows use one address; it does not always prove that two named people are one person. Similar names are weaker still. The safe decision is merge, keep separate, convert to a generic outlet contact, or hold for review.

By cutePR · Published

Download the Excel template

Free, no signup required. Choose the blank workbook or the fictional worked example. Read the workbook instructions before adapting it to your data.

PR media-list template (blank) · XLSX (21 KB)PR media-list template (fictional example) · XLSX (23 KB)

Freeze the source before comparing rows

Save the received file unchanged with its date and source. Add a source-row ID before sorting, filtering, or normalizing the working copy. Create a review log that records each candidate pair, the evidence considered, the decision, the surviving ID, fields carried forward, reviewer, and date. This gives every removed working row a destination.

Normalization helps comparison but should not rewrite the preserved source. Make a comparison email with trimmed spaces and consistent case, and comparison fields for names and outlets with superficial punctuation differences removed. Keep the original spelling, accents, email, and notes beside those helper values.

Review artifactRequired fieldsPurpose
Untouched sourceFilename, received date, source ownerPreserves the original evidence
Working copySource-row ID, original fields, comparison fieldsSupports sorting without destroying provenance
Candidate queueRow A, row B, evidence level, conflict flagsSeparates detection from decision
Decision logDecision, surviving ID, carried fields, reviewer, dateExplains every merge or separation

Sort candidates by evidence strength

Review shared usable email addresses first because they reveal direct overlap. Then compare exact name plus exact outlet. Finally, review looser signals such as similar spelling, same surname, old and new outlets, handles, or matching notes. Treat every similarity method as a way to find candidates, not a decision to merge.

OpenRefine's official documentation makes the same boundary visible: text clustering groups values that may be alternate representations, and its docs warn that syntax-level clustering is not semantic reconciliation. Its interface requires approval of suggested edits. This guide applies that human-review principle to contact identities; it does not prescribe OpenRefine or claim its algorithms match cutePR's importer.

SignalWhat it establishesDefault review action
Same usable personal emailStrong overlap in contact routeCompare identity and conflicts before combining
Same generic outlet emailShared editorial endpointConsider one labeled generic contact; do not collapse named people blindly
Same name + same outletProbable identityReview role, topics, source, and campaign history
Same name + different outletPossible move or homonymSeek dated evidence; preserve both contexts
Similar name onlyPossible spelling variationHold unless another identifier supports the match
Different names + similar notesWeak contextual resemblanceKeep separate

Decide what survives before removing a row

For a confirmed identity, choose a surviving contact ID and resolve every field. Prefer the verified current value for role and outlet, but carry the previous outlet into dated history. Preserve all provenance, campaign references, relationship-changing replies, exclusions, sends, and coverage links. If two values conflict and neither is verified, keep both in the review note and mark the current field unknown.

For a probable match, keep both records until evidence resolves it. Do not let a lower row count become the success measure. The useful outputs are confirmed merges, confirmed separate identities, generic outlet contacts, unresolved candidates, invalid addresses, and the number of source rows fully accounted for.

  • Choose the surviving stable ID before moving context.
  • Resolve current name, outlet, role, and usable address field by field.
  • Append sources and historical facts instead of replacing them.
  • Carry exclusions and contact preferences with their scope.
  • Keep unresolved candidate records separate and dated.

Reconcile a fictional twelve-row duplicate review

The fictional Solstice source begins with 12 rows. Two J-014 rows share a personal email and are verified as one person. Two identical Northline tips-address rows become one clearly labeled generic editorial contact. Two rows describe one verified outlet move and become one contact with both outlet contexts in history. Those three confirmed combinations reduce the working set by three rows.

Two Alex Lee rows at the same outlet have no email and different beats, so they remain two records in an unresolved candidate pair. Two Sam Laurent rows at different outlets are verified homonyms and stay separate. One invalid-email contact remains as an unsendable record with a warning, and one unique creator stays unchanged. The result is 9 working records: 7 resolved records plus 2 records in one open candidate pair. All 12 source rows map to a result.

The records are synthetic. Counts demonstrate reconciliation, not a typical duplicate rate.
Source groupSource rowsDecisionWorking records
J-014 exact personal email2Confirmed one identity1
Northline generic address2Confirmed one generic editorial contact1
Verified outlet move2One identity; preserve both outlet contexts1
Alex Lee, same outlet2Probable match held open2
Sam Laurent, different outlets2Confirmed homonyms2
Invalid-email contact1Keep with warning1
Unique creator1Keep unchanged1
Total123 confirmed combinations9

Understand the current cutePR import boundary

The current importer adds a duplicate hint when the same normalized email appears more than once in the import or already belongs to a contact. On acceptance, an exact existing email, or an email already linked by an earlier accepted row in the same session, links the row to that contact. Because a generic inbox can be shared, resolve conflicting identities before accepting the import.

A same-name, same-outlet match is handled differently. If no exact email link exists, the current flow creates the imported contact and an open merge candidate for human review. It does not silently merge the records. Keep the source copy, fix or reject blocking rows before acceptance, and reconcile created, linked, ignored, and merge-candidate counts after the session. Do not assume every merge can be universally rolled back.

Finish with counts and spot checks

Reconcile source rows to working records, confirmed combinations, rejected rows, and unresolved candidates. Then open one record from each decision type. Check that the surviving contact carries every source, relevant note, scoped exclusion, campaign reference, send, and coverage item. Test generic addresses and outlet moves separately because they are common sources of false confidence.

Make the reconciled working copy your active file only after saving the review log. Keep the original source unchanged. In cutePR, the beta workspace is private and per user, contact data comes from the operator, and migration scope is agreed before processing. A spreadsheet review remains the right first step when identity evidence is incomplete.

  • Every source row maps to a kept, combined, rejected, or unresolved result.
  • Every confirmed combination names a surviving ID.
  • No source, exclusion, campaign, send, or coverage reference disappeared.
  • Shared inboxes and outlet moves received explicit review.
  • Open candidates remain separate and visible.

Sources & methodology

Ready to connect your PR files?

The founder helps you get started and handles the agreed initial migration. Your feedback helps shape what comes next.

Request access

Preferential pricing during the beta, then standard pricing announced in advance.