Skip to content

Identity Resolution (L1)

Identity Resolution is the foundation of Fusemomo. It answers one question: Is this the same entity I've seen before?

The Identity Problem

In a world where agents operate across multiple APIs and services, the same underlying entity may appear under a completely different identifier in every system. Without a unified identity layer, an agent working on the same underlying record across multiple platforms would treat them as separate entities, losing all accumulated context and outcome history.

Fusemomo solves this by maintaining a canonical entity record that consolidates all known identifiers into a single, stable entity_id.

How Resolution Works

When you call POST /v1/core/entities/resolve, you provide a set of known identifiers:

json
{
  "identifiers": {
    "email": "user@example.com",
    "crm_id": "crm_abc123"
  }
}

Entity Identifiers

An identifier has three components:

FieldDescriptionExample
Source (key)The system or API where this ID originatesemail, github_user, jira_id, stripe_customer
ValueThe raw identifier stringuser@example.com, octocat, JIRA-1234
ConfidenceHow certain the link is (optional, used for probabilistic matching)0.95

Linking Additional Identifiers

If you later discover a new identifier for an already-resolved entity, you can add it explicitly:

bash
POST /v1/core/entities/{id}/link
json
{
  "identifiers": {
    "slack_user": "U03ABCDEF"
  }
}

Fusemomo will link the new identifier to the existing canonical entity.

Entity Types

Use entity_type to categorize what kind of record this is. Fusemomo does not restrict or validate entity types; use any string that makes sense for your domain:

DomainEntity Types
SaaS / CRMuser, customer, account, organization
DevOpsrepository, ticket, deployment, pull_request
Supportcontact, ticket, conversation
Financeinvoice, subscription, payment_method

Behavioral Score

Every resolved entity has a behavioral_score between 0.0 and 1.0. This score reflects the historical success rate of all interactions on that entity, a normalized measure of how reliably actions on this entity have succeeded.

A fresh entity starts at 0.0 and the score evolves as interactions are logged.

Best Practices

  • Always resolve first. Never assume you have a valid entity_id from a previous session without confirming via a fresh resolve call.
  • Use meaningful source keys. The source key (e.g., email, github_handle) should be consistent across all calls. Inconsistent key naming breaks deterministic matching.
  • Pass all known identifiers at once. Providing multiple identifiers in a single call allows Fusemomo to merge previously separate entities immediately.

Released under the MIT License.