Identity Resolution
Refine
Entity deduplication and cross-source identity fusion
Somewhere in your knowledge graph, the same person exists 47 times.
They're "Johannes" in one meeting transcript, "johannes@alendis.is" in a Gmail thread, "JB" in Slack, "Johannes Bjornsson" in a board deck, and "j.bjornsson" in a calendar invite. Every extractor that processed a document did exactly what it should: captured the name as written. The problem isn't extraction. The problem is that no single document had reason to know all the names were one person.
How BASAL fuses identity
Identity resolution runs across four signal sources, independently and then in combination.
Calendar attendees carry email addresses as ground truth. When Johannes accepts an invite, his email is recorded alongside his display name. That pairing seeds the graph with a known anchor: johannes@alendis.is = "Johannes Bjornsson."
Email headers extend the picture. Every stored Gmail message exposes from, to, and cc fields. BASAL scans these headers and builds interaction edges between email addresses. When "JB" appears in a meeting note and the organizer of that meeting has j.bjornsson@alendis.is in their calendar, the graph knows the attendee and the email header are the same person, because they co-occurred in 11 of the same meetings.
Document bylines and chat mentions resolve through alias overlap. When the graph finds two Person nodes sharing an email address in their alias arrays, it merges the duplicate: aliases and relationships transfer to the node with more connections, the weaker node disappears, and nothing is lost.
Graph hygiene runs periodically and fixes what extraction gets wrong. A Person node whose name field contains an @ sign is an entity BASAL created from an email header before it saw the person's real name. Hygiene promotes the longest non-email alias to the name field and fixes the record automatically, without human review.
What resolution unlocks
Before resolution, asking "what do we know about Johannes?" returns fragments spread across 47 disconnected nodes. After resolution, one unified Principal holds every interaction, every document, every commitment, every relationship.
The confidence scores shift too. A fact about "JB" that carried 60% confidence because the source used only initials gains 20 additional confidence points once BASAL confirms JB is Johannes Bjornsson, a known principal with a verified email and 34 prior interactions.
The graph doesn't just get cleaner. It gets smarter. A research question that couldn't be answered because the data was fragmented across aliases becomes answerable the moment those fragments fuse into one.
Quick answers about Identity Resolution
How does cross-source fusion work?
BASAL matches references to the same person across all your sources — calendar invites, email headers, document bylines, chat mentions. Alias matching and context-based deduplication build unified principal profiles.
Get started
basal identity resolve --workspace <id>