On this page
- Three kinds of duplicates need different rules
- 1. Preserve source records before cleaning them
- 2. Use stable event keys for confirmed repeats
- A worked example: retry, corroboration or conflict?
- 3. Resolve identities with explicit confidence and exceptions
- 4. Choose surviving fields individually
- 5. Prevent duplicate activation separately
- 6. Measure the mistakes, not just rows removed
- Where MarketPulse fits in the workflow
- Frequently asked questions
To deduplicate buyer intent signals, separate repeated events from repeated identities and repeated actions. Keep the source record, remove confirmed retries from your score, link independent observations without erasing them, and prevent the same audience record from triggering the same workflow twice.
A company researching two related topics is not automatically a duplicate. Neither are two people at the same business. The goal is to prevent inflated activity and repeated outreach while preserving useful evidence.
Three kinds of duplicates need different rules
- Event duplicates: one observation arrives twice, perhaps through a retry or overlapping export.
- Identity duplicates: two records appear to represent the same person or business. That requires a separate matching decision.
- Action duplicates: a CRM task, audience upload or message is repeated even though the underlying observations may be legitimate.
Removing duplicate events does not prove that your identity matching is correct. Resolving a person does not mean every subsequent observation should be deleted. Keep these decisions separate in your reporting and automation.
1. Preserve source records before cleaning them
Create a restricted raw layer with the fields needed to reconstruct each observation: source, source event ID, observed time, received time, topic, available subject identifier and import batch. Apply an appropriate retention period rather than keeping personal information indefinitely.
Distinguish when research happened from when you received it. A delayed import should not look like brand-new research simply because it arrived this morning. Keep the original topic label alongside any internal mapping, so a later mapping change can be audited.
Before combining feeds, establish whether they describe people, accounts, sessions or aggregate activity. Account-level evidence cannot be converted into proof that a particular employee performed an action.
2. Use stable event keys for confirmed repeats
Where the feed supplies reliable identifiers, use a composite of source and event ID. The CloudEvents specification provides a useful model: distinct events have unique source-and-ID combinations, and a resent event may retain its ID. This is an engineering pattern, not a claim that every intent feed implements CloudEvents.
Namespace identifiers by source and workspace. Event 123 from one feed is not necessarily event 123 from another. Make the processing step idempotent: receiving the same confirmed event again should not add another score contribution or repeat an action.
If identifiers are missing, define a candidate key from the available subject, topic, observation time and stable payload fields. Treat it as a rule to test, not proof. A broad account-and-day rule can erase separate research sessions. A payload hash can also change when a harmless field changes.
A worked example: retry, corroboration or conflict?
This synthetic example uses fictional record labels, not customer data.
- Feed A, event 104: account Northstar, backup topic, 09:10.
- Feed A, event 104 again: same observation delivered at 09:12. Retain the receipt for audit, but count the event once.
- Feed B, event 887: Northstar, backup topic, 14:40. Keep it as a separate observation while checking whether the feeds share an upstream source.
- Feed B, event 888: similar company name but a different legal entity and domain. Send it to review rather than merging it because the name looks familiar.
Two feeds repeating one upstream observation are not two independent endorsements. Conversely, two genuinely independent observations should remain available even if you aggregate them into one account-level alert.
3. Resolve identities with explicit confidence and exceptions
Start with reliable identifiers already present in your permitted workflow. Keep uncertain matches linked as candidates until there is enough evidence to merge. A shared domain, similar name or shared IP address alone can be misleading.
Review subsidiaries, branches, consultants, shared service companies and people who change employers. Avoid automatically merging all records with the same business domain. Several legitimate buying-group members can work at one company.
Use three outcomes: confirmed duplicate, linked but separate, and unresolved. Record the reason and preserve enough history to reverse a mistaken merge. Uncertainty should be visible to the team using the result.
4. Choose surviving fields individually
One source should not win every field by default. Your CRM may govern account ownership; a research feed may provide its own observation timestamp; a verified correction may supersede an old job title. Document the precedence for each field and retain the original values where needed for audit.
Keep conflicting values in an exception queue. Choosing the newest field without reviewing its meaning can replace a reliable identity with a newer but less reliable guess.
5. Prevent duplicate activation separately
Create an action key appropriate to the destination, such as workspace, resolved record, campaign and action type. Record successful delivery, failures and retries. A failed attempt should be retryable without creating a second successful task or message.
Check current suppression and permissions before the action runs, not only when the audience was first imported. A research signal is not permission to text a person. Opt-outs and corrections need to reach the downstream systems that use the record.
6. Measure the mistakes, not just rows removed
Label a representative sample containing obvious repeats, difficult matches, independent observations and conflicting identities. Include each source pair and matching method. Review both false merges and missed duplicates.
- Merge precision: confirmed correct merges divided by reviewed merges.
- Duplicate recall: detected duplicates divided by known duplicates in the labeled test sample.
- Operational outcomes: repeated actions prevented, reversals, unresolved cases and reviewer time.
For example, 48 correct merges out of 50 reviewed merges gives 96% precision for that sample. It says nothing about duplicates the rule missed, and it is not a product benchmark. Report the sample size, selection method and error severity beside the percentage.
Test revised rules against historical records, then observe their proposed decisions before enabling consequential actions. Recheck after source schemas, identifiers or mappings change.
Where MarketPulse fits in the workflow
MarketPulse helps you find available topic audiences and focus them with your ICP. Start by choosing relevant buyer intent topics, inspecting the available records, and defining how exported records will be matched and used in your destination.

Public plans are starting at $500/mo. Compare current topic coverage, refreshes and export limits on the product page. BrandWell’s AIMEE can assist through the tools configured for your workspace; execution depends on those connections, permissions and workflow settings.
This guide describes a workflow to design around your sources and destination. It does not imply that MarketPulse provides a native identity graph or deduplication engine across every external feed.
Frequently asked questions
Should the same account researching the same topic count twice?
A confirmed retry should count once. Separate observations can be retained, then aggregated according to a documented scoring window. Avoid treating a repeated delivery as stronger interest.
Can I deduplicate on email alone?
Email can help match records, but shared inboxes, changed addresses and incorrect enrichment need exceptions. Keep event matching separate from contact matching and inspect uncertain cases.
Does hashing personal data make it anonymous?
Do not assume it does. A hash can still be used to link a person across records. Treat identifiers according to the purpose, access controls and requirements of your actual data workflow.
What should I do first?
Write one example and one counterexample for each duplicate type. Then build a small labeled test set before changing scores or automation. A useful clean-up preserves the evidence needed to explain and reverse its decisions.
Reviewed and updated October 2, 2026.


Farnaz Kia