Pair evidence
Every candidate, review flag, and expected sync link, with both source IDs, file rows, confidence, and the direct reason.
Review exported leads and contacts across both systems. Separate duplicate candidates, expected sync links, and people who simply work at the same school or company.
Drop one or more CSV files here, or choose Marketo people and Salesforce Lead / Contact exports. Columns are matched automatically and can be adjusted below.
Candidate groups use direct match evidence. A group can contain an indirect connection; check the pair evidence export before deciding whether records represent one person.
Use the same export, date, scope, and definition as your Marketo or Databricks check. Groups and extra rows are different measures; neither is a confirmed merge count.
Generated locally. Original fields are retained in the annotated export. Spreadsheet formula cells are prefixed with an apostrophe for safe opening. No file is a merge or deletion instruction.
Every candidate, review flag, and expected sync link, with both source IDs, file rows, confidence, and the direct reason.
All input rows and columns, plus source, candidate group, review flags, date basis, and row references. No records are removed.
Rows older than your selected threshold. Includes activity versus modified date so a recent sync cannot be mistaken for engagement.
Strong candidates. Exact personal email plus exact first and last name. Probable candidates use nickname or similar-name evidence with email, phone, company, or a full street and locality. Email domains, company names, ZIP codes, and shared addresses alone do not match people.
Review flags. Shared inboxes, conflicting names or suffixes, and repeated CRM identities need investigation. Common nickname aliases are heuristic and are never proof of identity. A blank or conflicting name never receives a strong match.
Expected sync links. A Marketo record and Salesforce record with the same valid Salesforce Lead / Contact ID are listed separately. Salesforce 15- and 18-character IDs are normalized with their checksum. Account IDs are company context and never person IDs.
Recency. Each source row is counted, including linked and candidate records. A populated Last Activity Date takes precedence over Updated At / LastModifiedDate. Blank activity dates fall back to modified dates. Invalid populated activity dates are flagged rather than replaced. Dates accept YYYY-MM-DD with optional time, or US MM/DD/YYYY; future dates are separate. Date-only age uses calendar days.
Coverage and scale. Blocking narrows comparisons using email, person ID, phone, name + company, and name + street / locality. Fuzzy matching needs a common first initial and first three last-name characters within a company, so some typos are missed. Blocks over 250 rows are skipped; runs stop at 1.5 million comparisons or 100,000 evidence pairs. Any such limit is shown as partial coverage. “No candidates” is not proof that a database is clean.
Validation. Start with the included 16-row sample, then a 50,000-row export. Check known duplicate pairs and false positives against your existing identity work. Match counts depend on rules and export coverage. Email syntax is checked locally; deliverability, consent, account relationships, and live CRM status are not verified.
A PhilanthroData volunteer can review the results with your team and help plan a safe merge.