# Delpha Documentation

Explore comprehensive implementation guides, use case configurations, and technical references for Delpha for Salesforce, as well as our developer-facing API and MCP tools.

## Welcome to Delpha Documentation

Empower your organization with high-quality, actionable data. Delpha connects directly to your data ecosystem to evaluate records, automate deduplication, and deliver intelligent, contextual enrichments right where your team works.

Whether you are a CRM Administrator optimizing user workflows or a Developer building custom data pipelines, explore our documentation paths below to get started.

***

Explore our documentation based on your implementation and integration needs.

### Concepts — read once

The foundations shared by every Delpha use case and channel: [how a resolution works](/core-concepts/how-delpha-works-resolution-evidence-confidence-credits) — evidence, confidence, and credits — [the six data quality dimensions](/core-concepts/the-six-data-quality-dimensions) Delpha scores against, and [the trusted sources behind every verdict](/core-concepts/trusted-sources-and-how-delpha-weighs-them).

👉 Start with [**Core Concepts**](/core-concepts/how-delpha-works-resolution-evidence-confidence-credits)

### Use Cases — channel-agnostic

What each Delpha verification does and what it returns, independent of where you run it. Start with [Ultimate Parent](/use-cases/ultimate-parent): [what it does & when to use it](/use-cases/ultimate-parent/what-it-does-and-when-to-use-it), [how the commercial parent is selected](/use-cases/ultimate-parent/how-selection-works), [the JSON payload it returns](/use-cases/ultimate-parent/output-the-json-payload-field-by-field), and [how quality is scored](/use-cases/ultimate-parent/quality-and-confidence-scoring).

👉 Explore [**Use Cases**](/use-cases/ultimate-parent)

### Delpha for Salesforce

Maximize the value of your CRM. Learn how to deploy Delpha natively within Salesforce to monitor data quality dimensions, resolve duplicates, and guide your reps with real-time recommendations.

* Quick Start & Setup Guide
* Understanding Data Quality Dimensions
* Deduplication & Field Merge Strategies
* Job Tracking & Champion Management

👉 Explore [**Delpha for Salesforce**](/delpha-for-salesforce/overview) Docs

### Delpha API and MCP

Extend Delpha's data quality and enrichment engines beyond Salesforce. Access our developer resources to integrate our pipelines into your custom software or leverage our Model Context Protocol (MCP) server to connect your local AI agents and LLMs directly to your business data.

* Core API Reference
* MCP Server Configuration & Use Cases
* Working with Structured JSON Data Payloads

👉 Explore [**API & MCP**](/delpha-api-and-mcp/delpha-api-and-mcp) Docs

> 📞 **Need help?** Can't find what you are looking for? Reach out to our customer success team. To learn more about the products: [Delpha.io](https://delpha.io) for Delpha for Salesforce, [delpha.ai](https://delpha.ai) for the API & MCP platform.


# How Delpha works — resolution, evidence, confidence, credits

The concepts behind every Delpha check: the resolution as the unit of work, evidence on every verdict, confidence and review states, and credits as the single meter across channels.

Delpha is the deterministic source of commercial truth for AI agents — the verification an agent (or a person) calls before acting on a company.

The input is always your own record. Delpha doesn't ship you a database: you bring the account as it exists in your CRM or pipeline, and Delpha verifies it against external reality. Anything Delpha adds comes back as evidence or as a correction — never as a feed.

Every check runs the same pipeline, whichever channel you use:

**Anchor on the website → Identify the company and its parent → Reconcile against your record → Verdict + evidence.**

Delpha anchors identity on the validated website, not the company name. Name-matching is how a CRM merges Bolt (SF, USA) with Bolt (Estonia); the website is the key that keeps them apart.

## Resolution — the unit of work

A **resolution** is one run through the Delpha engine: a Playground check, an API call or batch, an MCP tool call, or an Audit file. Every resolution is recorded in your console and can be re-opened later, free — the verdict, the evidence, and the input it was given.

Resolutions are deterministic: the same input reconciled against the same evidence returns the same verdict. Reproducible, evidenced, auditable — not a model's best guess.

Verifications run asynchronously: you submit, Delpha investigates live sources, you retrieve the result. Each channel page explains its own submit-and-retrieve mechanics.

## Evidence — every verdict carries its proof

Delpha never returns a bare answer. Each verdict ships with the evidence behind it: which sources were consulted, what they showed, and when. When Delpha proposes a correction to your record, the correction carries the same evidence — nothing is overwritten silently.

This is what makes a Delpha verdict auditable: anyone re-opening a resolution sees exactly why the engine decided what it decided.

## Confidence — Delpha tells you how sure it is

Every verdict includes a confidence score. When the evidence clears the bar, the result is **Verified**. When it doesn't, Delpha flags it **Needs review** rather than guessing — a human decides, with the evidence in front of them.

A resolution moves through five states: **Processing**, then **Verified**, **Needs review**, **Unresolved** (no reliable answer exists in the sources), or **Failed** (the run itself errored and is not charged).

## Credits — one meter across every channel

Credits are the single meter for everything Delpha does. Each resolution consumes credits from your workspace balance — shared across the app, batch uploads, API and MCP, not per-seat. Audit shows you the credit cost of a file before you run it.

Subscriptions add a monthly credit allocation that rolls over while the plan is active; pay-as-you-go packs top the balance up anytime. When the balance is empty, new resolutions pause until you top up. See [delpha.ai](https://delpha.ai/) for current packs and tiers.

## One engine, four doors

Salesforce, API, MCP, and app.delpha.ai all call the same engine and return the same JSON payload — one resolution record wherever you ran it.

The MCP and API doors make Delpha consumable from any agent environment: Claude, ChatGPT and OpenAI agents, Cursor, VS Code, Agentforce, or your own custom agents — including stacks running on AWS, Snowflake, or Databricks. If it speaks MCP or HTTPS, it can verify a company before it acts on one.

The use-case pages explain what each verdict means; the channel pages cover how to trigger it and where results land.


# The six data quality dimensions

Delpha uses six dimensions — completeness, validity, uniqueness, consistency, accuracy and timeliness — to score data quality. Each metric ensures your data is clean, consistent and accurate.

Delpha evaluates each field using **six core data quality dimensions** to provide a comprehensive health check:

| **Dimension**    | **Meaning**                                                |
| ---------------- | ---------------------------------------------------------- |
| **Completeness** | Is the value present or missing?                           |
| **Validity**     | Does the data follow the correct format or business rules? |
| **Uniqueness**   | Is the value duplicated elsewhere in the system?           |
| **Consistency**  | Is the data coherent across different fields or systems?   |
| **Accuracy**     | Is the value factually correct?                            |
| **Timeliness**   | Is the information still relevant and up-to-date?          |

**Accuracy is where clean ≠ correct**: a value can be present, well-formatted, and unique — and still be factually wrong. Delpha verifies accuracy against external reality, with evidence.

Each use case scores against the subset of dimensions that applies to it — see, for example, [Quality & confidence scoring for Ultimate Parent](/use-cases/ultimate-parent/quality-and-confidence-scoring).


# Trusted sources & how Delpha weighs them

Every Delpha resolution cross-checks trusted, verifiable sources in a strict priority order. See the source hierarchy and how each level is weighed, with Ultimate Parent as the reference example.

Every Delpha resolution is grounded in **trusted and verifiable sources**. Delpha's specialized LLMs analyze and consolidate these sources; the final verdict is reconciled deterministically against your record, with the evidence attached. You can see this hierarchy applied step by step in [Understanding the Ultimate Parent Analysis](/use-cases/ultimate-parent/how-selection-works/understanding-the-ultimate-parent-analysis).

Each use case defines its own source hierarchy in strict priority order. Below is the hierarchy for **Ultimate Parent**, the reference example:

1. **Company Website (Direct Digital Footprint):**
   1. *Logic:* The primary signal of commercial identity. Delpha’s agents analyze the entity’s self-declared affiliation and branding to determine if it presents itself as an independent operator or a subordinate unit.
2. **Global Brand Websites (Commercial Network Verification):**
   1. *Logic:* Validating the operational link by checking if the subsidiary is officially listed within the parent’s commercial ecosystem (e.g., location finders, brand portfolios), which confirms shared infrastructure.
3. **Press Releases (Strategic Announcements):**
   1. *Logic:* M\&A activity dictates operational change.
   2. *Rule A:* News < 3 years old is Primary Evidence (recent acquisitions often imply active integration efforts).
   3. *Rule B:* News > 3 years old is Secondary Evidence (valid only if not contradicted by Source 1 or 2, ensuring divested units are not incorrectly linked).
4. **Securities Filings (Regulatory Disclosures):**
   1. *Logic:* Used to resolve ambiguity in complex structures (e.g., 10-K filings), distinguishing between operational subsidiaries and purely financial “Variable Interest Entities.”
5. **Official Business Registries (Legal Baseline):**
   1. *Logic:* The “Fail-Safe.” Used only when commercial sources (1-4) are silent. This ensures that legal shells are only used as a parent of last resort when no commercial parent can be identified.

{% hint style="warning" %}
Delpha analyzes all the sources above to [**reflect how companies operate in the real world**, not who legally owns them.](/use-cases/ultimate-parent/how-selection-works/ultimate-parent-concepts-brands-vs.-operating-structures)\
This approach allows Delpha to accurately represent **franchise and multi-brand networks**, where multiple legal entities operate under a single brand identity, ensuring the Ultimate Parent recommendation aligns with **sales, marketing, and go-to-market realities** rather than pure legal ownership.
{% endhint %}


# Required Input Fields: Validate, Find & Compare

Which inputs trigger Validate, Find, or Compare mode for each Delpha capability — required and support fields with examples, across Salesforce, API, and MCP.

Delpha runs the same dynamic engine across every channel — Salesforce, the API, and MCP agents. You never select a mode explicitly: the inputs you provide route each request automatically into Validate, Find, or Compare.

### Input Classification

* Mandatory inputs: required to trigger the engine. Omitting a mandatory input rejects the request (over the API, this returns `HTTP 400 Bad Request`).
* Support inputs: contextual attributes (e.g., website, company name) that improve AI confidence scoring and match precision.

### Execution Logic & Workflow Routing

For any supported data attribute (Email, Address, Phone, Legal ID, Website, LinkedIn, Ultimate Parent), Delpha routes execution into one of three distinct modes based on which inputs are present:

```mermaid
flowchart TD
    classDef input fill:#0f172a,stroke:#334155,stroke-width:2px,color:#ffffff,font-weight:bold,rx:8px,ry:8px;
    classDef path fill:#f8fafc,stroke:#94a3b8,stroke-width:1.5px,color:#334155,font-weight:600,rx:6px,ry:6px;
    classDef mode1 fill:#eff6ff,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a,rx:8px,ry:8px;
    classDef mode2 fill:#f0fdf4,stroke:#22c55e,stroke-width:2px,color:#14532d,rx:8px,ry:8px;
    classDef mode3 fill:#faf5ff,stroke:#a855f7,stroke-width:2px,color:#581c87,rx:8px,ry:8px;

    A["📥 INPUT ANALYSIS"]:::input

    A --> B["Primary Input Only<br/><i>e.g., email present</i>"]:::path
    A --> C["Support Inputs Only<br/><i>e.g., primary empty, context present</i>"]:::path
    A --> D["Primary + Support Inputs<br/><i>e.g., email + context present</i>"]:::path

    B --> E
    C --> F
    D --> G

    subgraph Engine ["Delpha Dynamic 3-in-1 Engine"]
        E["<b>MODE 1: VALIDATE</b><br/>───────────────<br/>• Check syntax & structure<br/>• Verify deliverability/format"]:::mode1
        F["<b>MODE 2: FIND</b><br/>───────────────<br/>• Search trusted sources<br/>• Discover & enrich missing value"]:::mode2
        G["<b>MODE 3: COMPARE</b><br/>───────────────<br/>• Cross-verify attributes<br/>• Score accuracy & fix mismatches"]:::mode3
    end
```

#### Execution Modes

* Mode 1: Validate (Syntax & Deliverability)
  * Trigger: Primary input provided; support inputs omitted or empty.
  * Behavior: Verifies syntax, structural integrity, domain status, and functional deliverability.
* Mode 2: Find & Recommend (Data Enrichment)
  * Trigger: Primary input empty; support inputs provided.
  * Behavior: Uses contextual attributes (e.g., Name + Website) to query internal and external data sources to discover the missing value.
* Mode 3: Compare & Measure Accuracy (Data Verification & Scoring)
  * Trigger: Both primary input and support inputs provided.
  * Behavior: Cross-verifies attribute alignment, detects personal vs. professional mismatches, and outputs an Accuracy Confidence Score alongside suggested corrections.

### Field Matrix by Capability

The same inputs apply whether Delpha runs inside Salesforce, is called by an AI agent over MCP, or is invoked through the API.

| **Capability**  | **Execution Mode** | **Mandatory Inputs**                                                                                                                                                   | **Support / Optional Inputs**                                                                                                       |
| --------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| Email           | Validate           | `email`                                                                                                                                                                | *None*                                                                                                                              |
| Email           | Find               | `email: null`, `website`, `first_name`, `last_name`                                                                                                                    | *None*                                                                                                                              |
| Email           | Compare            | `email`, `website`, `first_name`, `last_name`                                                                                                                          | *None*                                                                                                                              |
| Legal ID        | Validate           | `legal_id`, `legal_id_type` (or `country`)                                                                                                                             | *None*                                                                                                                              |
| Legal ID        | Find               | `legal_id: null`, `company_name`, `legal_id_type` (or `country`)                                                                                                       | `address`, `website`                                                                                                                |
| Legal ID        | Compare            | `legal_id`, `company_name`, `legal_id_type` (or `country`)                                                                                                             | `address`, `website`                                                                                                                |
| Address         | Validate           | `street`, `postal_code`, `city`, `country`, `state`                                                                                                                    | *None*                                                                                                                              |
| Address         | Find               | `address: null`, `company_name`, (`website` \| `legal_id` \| `linkedin`)                                                                                               | `website`, `legal_id`, `linkedin`                                                                                                   |
| Address         | Compare            | `address`, `company_name`, (`website` \| `legal_id` \| `linkedin`)                                                                                                     | `website`, `legal_id`, `linkedin`                                                                                                   |
| Phone           | Validate           | `phone`                                                                                                                                                                | `country`                                                                                                                           |
| Website         | Validate           | `website`                                                                                                                                                              | *None*                                                                                                                              |
| Website         | Find               | `website: null`, `company_name`                                                                                                                                        | `legal_id`, `linkedin`, `email`, `country`                                                                                          |
| Website         | Compare            | `website`, `company_name`                                                                                                                                              | `legal_id`, `linkedin`, `email`, `country`                                                                                          |
| Name            | Validate           | `first_name`, `last_name`                                                                                                                                              | *None*                                                                                                                              |
| LinkedIn        | Validate           | `url`                                                                                                                                                                  | *None*                                                                                                                              |
| LinkedIn        | Find               | <p>Account: <code>url: null</code>, <code>company\_name</code></p><p><br></p><p>Contact: <code>url: null</code>, <code>first\_name</code>, <code>last\_name</code></p> | <p>Account: <code>country</code>, <code>website</code></p><p><br></p><p>Contact: <code>company\_name</code>, <code>email</code></p> |
| LinkedIn        | Compare            | <p>Account: <code>url</code>, <code>company\_name</code></p><p><br></p><p>Contact: <code>url</code>, <code>first\_name</code>, <code>last\_name</code></p>             | <p>Account: <code>country</code>, <code>website</code></p><p><br></p><p>Contact: <code>company\_name</code>, <code>email</code></p> |
| Ultimate Parent | Find               | `company_name`, `website`                                                                                                                                              | `country`                                                                                                                           |

> Note on empty inputs: Leaving support inputs empty (or `null`) is valid. Delpha defaults to Validate Mode whenever support inputs are missing.

### Calling the Engine via the API

Base URL: `https://api.delpha.io/v1`

Headers: `Authorization: Bearer <YOUR_API_KEY>` | `Content-Type: application/json`

Each capability maps to one endpoint — the mode is inferred from the payload, exactly as in the matrix above:

| **Capability**  | **Endpoint**               |
| --------------- | -------------------------- |
| Email           | `POST /v1/email`           |
| Legal ID        | `POST /v1/legal_id`        |
| Address         | `POST /v1/address`         |
| Phone           | `POST /v1/phone`           |
| Website         | `POST /v1/website`         |
| Name            | `POST /v1/name`            |
| LinkedIn        | `POST /v1/linkedin`        |
| Ultimate Parent | `POST /v1/ultimate-parent` |

#### JSON Payload Reference Examples

**1. Check Validity Mode Payload**

Endpoint: `POST /v1/email`

```json
{
  "email": "samantha.parker@gmail.com",
  "first_name": null,
  "last_name": null,
  "website": null
}
```

* Triggered Behavior: Validates syntax and verifies inbox deliverability for `samantha.parker@gmail.com`.

**2. Find & Recommend Mode Payload**

Endpoint: `POST /v1/email`

```json
{
  "email": null,
  "first_name": "Samantha",
  "last_name": "Parker",
  "website": "https://cogicog.com"
}
```

* Triggered Behavior: Queries data sources to discover the missing professional email address for Samantha Parker at Cogicog.

**3. Compare & Measure Accuracy Mode Payload**

Endpoint: `POST /v1/email`

```json
{
  "email": "samantha.parker@gmail.com",
  "first_name": "Samantha",
  "last_name": "Parker",
  "website": "https://cogicog.com"
}
```

* Triggered Behavior: Evaluates alignment between the personal address (`gmail.com`) and corporate domain (`cogicog.com`), returning a confidence score and suggesting `samantha.parker@cogicog.com`.


# Ultimate Parent

Ultimate Parent resolves who really owns each account — what it does, how selection works, the JSON payload it returns, and how quality is scored. Channel-agnostic: same result via Salesforce, MCP, an

Delpha Ultimate Parent resolves the company at the top of each account's corporate hierarchy — the commercial parent an agent or a rep should route, plan, and report against — and returns the same verdict, evidence, and JSON payload through Salesforce, MCP, and API.

## In this section

[**What it does & when to use it**](/use-cases/ultimate-parent/what-it-does-and-when-to-use-it)\
The problem Ultimate Parent solves and the go-to-market situations it changes.

[**How selection works**](/use-cases/ultimate-parent/how-selection-works)\
Brands & operating structures, the 10 logic protocols, and the analysis behind each recommendation — with [Concepts](/use-cases/ultimate-parent/how-selection-works/ultimate-parent-concepts-brands-vs.-operating-structures), [Protocols](/use-cases/ultimate-parent/how-selection-works/how-delpha-selects-the-ultimate-parent-the-10-logic-protocols), and [Analysis](/use-cases/ultimate-parent/how-selection-works/understanding-the-ultimate-parent-analysis) detail pages.

[**Output — the JSON payload, field by field**](/use-cases/ultimate-parent/output-the-json-payload-field-by-field)\
The payload every channel returns, with the [Salesforce field reference](/delpha-for-salesforce/how-to-faq/delpha-ultimate-parents/what-are-the-delpha-ultimate-parent-fields).

[**Quality & confidence scoring**](/use-cases/ultimate-parent/quality-and-confidence-scoring)\
How Ultimate Parent records are scored against Delpha's data quality dimensions.


# What it does & when to use it

What the Ultimate Parent use case resolves, and the go-to-market situations where a verified commercial parent changes routing, planning, and reporting.

## What it does

An **Ultimate Parent Account** is the highest company in a corporate hierarchy that owns all subsidiaries beneath it. It provides a unified view of complex corporate structures, especially for large, multinational organizations.

Standard CRM account hierarchies often rely on **manual relationships** and **legal entity structures**, which can result in **orphaned accounts**, incomplete hierarchies, or missed **cross-border ownership links**. This makes it difficult to accurately understand true corporate relationships, global rollups, and group-level insights.

Delpha resolves this hierarchy using deterministic company identity: it anchors each entity to its validated website, reconciles the hierarchy against trusted external sources, and returns a verdict with evidence and a confidence score — the same result through Salesforce, MCP, and API.

## When to use it

* **Territory assignment & lead routing** — subsidiary inquiries reach the owner of the group relationship instead of being treated as unrelated SMB accounts.
* **Account planning & ABM** — one coordinated motion per corporate group, with no cold outreach into a group you are already negotiating with.
* **White-space analysis** — a corrected group view exposes the subsidiaries you have not penetrated yet.
* **Pipeline & reporting rollups** — group-level revenue views that stay correct through reorganizations.
* **Commission integrity** — a subsidiary of an existing customer is not a new logo.
* **M\&A monitoring** — when a customer acquires a company, re-parenting surfaces the cross-sell opportunity.


# How selection works

How Delpha selects the commercial Ultimate Parent: brand and operating structures over legal shells, ten ordered logic protocols, and the analysis pipeline behind each recommendation.

Delpha selects the **commercial** parent — the group an account operates and goes to market under — not simply the last legal owner in a corporate registry. The legal chain is retained as evidence; passive or non-operating owners can be bypassed for commercial selection.

Three pages cover the mechanics:

* [**Ultimate Parent Concepts: Brands vs. Operating Structures**](/use-cases/ultimate-parent/how-selection-works/ultimate-parent-concepts-brands-vs.-operating-structures) — why brands and operating structures beat strict legal entities.
* [**How Delpha Selects the Ultimate Parent: The 10 Logic Protocols**](/use-cases/ultimate-parent/how-selection-works/how-delpha-selects-the-ultimate-parent-the-10-logic-protocols) — the ten ordered rules, first match wins, with worked examples and resulting field values.
* [**Understanding the Ultimate Parent Analysis**](/use-cases/ultimate-parent/how-selection-works/understanding-the-ultimate-parent-analysis) — the step-by-step analysis and how confidence is calculated.


# Ultimate Parent Concepts: Brands vs. Operating Structures

Delpha’s Ultimate model identifies brand-based parent relationships by analyzing company websites and communications, focusing on real-world operating structures rather than legal ownership.

## Two Perspectives of Ultimate Parenting

The concept of **Ultimate Parent** can be understood in **two complementary ways**, depending on the business context.\
Each perspective serves different objectives and relies on different data sources.

| Perspective             | **Legal Ownership**                                                                                                                                                                                                                                                                        | **Brand / Operating Structure** *(Delpha’s focus)*                                                                                                                                                                                                                                       |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **When to Use**         | <p>• When signing contracts or defining billing and invoicing entities.<br>• During credit checks, KYC/AML, sanctions screening, or when assessing parent guarantees and collections.<br>• For legal reporting or rolling up exposure to determine who ultimately controls the entity.</p> | <p>• When routing leads and opportunities, assigning account executives or territories.<br>• For Account-Based Marketing (ABM) and brand-level campaign planning.<br>• To plan coverage and pipeline by brand, flag, or region.<br>• For partner programs or go-to-market playbooks.</p> |
| **How It’s Determined** | Based on **official registries and regulatory filings** (objective legal ownership).                                                                                                                                                                                                       | Based on **company websites and press releases** (brand and operational relationships).                                                                                                                                                                                                  |

## Delpha’s Approach

Delpha’s Ultimate model focuses on the **Brand / Operating structure**, reflecting **how companies actually present and operate in the market** rather than just their legal ownership.\
This approach is especially effective for **franchise and multi-brand organizations**, where:

* Each location or entity may have a different legal owner.
* Yet, all operate under a **shared brand, standards, and commercial identity**.
* The brand parent (e.g., Marriott, McDonald’s, or Accor) defines the **operational relationship** more accurately than the local legal entity.

By analyzing **websites, brand directories, and official communications**, Delpha identifies the **true operating hierarchy** that governs how companies are seen and function in the marketplace.\
This ensures more relevant grouping for **sales coverage, ABM strategies, franchise management, and go-to-market execution**.

{% hint style="warning" %}
[More information on the trusted sources used by Delpha](/core-concepts/trusted-sources-and-how-delpha-weighs-them)
{% endhint %}

## [Account Hierarchy: Finance vs. Sales](https://delpha.io/blog/account-hierarchy-finance-vs-sales/)

Finance tracks the Ultimate Legal Parent, but Sales needs the Effective Buying Parent. Learn how Delpha’s Commercial Hierarchy resolves territory and compensation conflicts in Salesforce.

A practical study about how to deal with:

* [Holdings](https://delpha.io/blog/account-hierarchy-finance-vs-sales/#holding-shell-lvmh),&#x20;
* [Foundations](https://delpha.io/blog/account-hierarchy-finance-vs-sales/#fortress-of-foundations-rolex-ikea),&#x20;
* [Joint Ventures](https://delpha.io/blog/account-hierarchy-finance-vs-sales/#joint-dilemma-sony-honda)
* [Franchises](https://delpha.io/blog/account-hierarchy-finance-vs-sales/#franchise-matrix-marriott)


# How Delpha Selects the Ultimate Parent: The 10 Logic Protocols

Learn how Delpha selects the commercial Ultimate Parent. Explore the 10   logic protocols — Joint Ventures, Franchises, Chaebols, State-Owned   Enterprises, Private Equity, and more — with examples.

## How Delpha Selects the Ultimate Parent: The 10 Logic Protocols

Delpha's Ultimate Parent model is designed for go-to-market use cases. It identifies the company that best represents an account's commercial or operating group — not simply the last legal owner in a corporate registry.

This distinction matters because the highest financial owner may be a government, investment fund, family trust, holding vehicle, or joint-venture partner. Those entities can be legally relevant without being the right level for territory assignment, account-based marketing, sales coverage, or pipeline reporting.

This article explains the ten Logic Protocols Delpha applies to resolve these situations, including examples of the resulting Ultimate Parent data.

> **Note:**&#x20;
>
> * The examples below are simplified to illustrate the decision logic. Ownership structures change over time, so Delpha verifies each result against current trusted sources during the assessment. Some examples use fictional companies where real-world ownership changes hands frequently.
> * The Protocol information can be extracted from the [D Ultimate Data JSON payload](/use-cases/ultimate-parent/output-the-json-payload-field-by-field#section-a-evidence-and-evaluation-protocols).&#x20;

### Commercial parent vs. financial parent

An ownership chain can support two different views:

| View                              | Main question                                               | Typical uses                                                             |
| --------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------ |
| Financial or legal hierarchy      | Who ultimately owns or controls the entity?                 | KYC, credit checks, invoicing, compliance, legal reporting               |
| Commercial or operating hierarchy | Which group does the entity operate and go to market under? | Sales territories, lead routing, ABM, account planning, pipeline rollups |

Delpha focuses on the second view when recommending an Ultimate Parent. The legal chain is still retained as evidence, but passive or non-operating owners can be bypassed for commercial selection.

For more background, see [Ultimate — Delpha focuses on Brands and Operating structures](/use-cases/ultimate-parent/how-selection-works/ultimate-parent-concepts-brands-vs.-operating-structures).

### Key fields and terms

* **Target:** The company or Salesforce Account being assessed.
* **Absolute Top / Financial Parent:** The final entity found at the top of the legal ownership chain.
* **Effective Parent / Commercial Parent:** The entity Delpha selects as the most useful Ultimate Parent for go-to-market purposes.
* `ultimate_parent_commercial_name`: The name under which the selected parent is known in the market.
* `ultimate_parent_legal_name`: The registered legal entity that anchors the selected commercial parent.
* `ultimate_parent_country`: The ISO 3166-1 alpha-2 country code of that legal entity.
* `ultimate_parent_website`: The canonical website of the entity Delpha selected.
* `is_self_ultimate`: `true` when the Target is itself the selected Ultimate Parent; otherwise `false`.
* `is_ultimate_financial_parent`: Identifies the entity at the end of the financial ownership chain, even when it is not the commercial parent.
* `is_discarded`: Excludes an entity from commercial-parent selection while preserving it in the ownership chain for context and auditability.
* `relationship_type`: Describes how the Target relates to the selected commercial parent.

> **Important:** "Discarded" does not mean deleted, incorrect, or irrelevant. It means the entity is not the best commercial rollup point.

### How the protocols are evaluated

Delpha starts at the Absolute Top of the captured ownership chain and moves down toward the Target. It evaluates the protocols in the exact order shown below and stops when the first applicable protocol is confirmed.

<table><thead><tr><th width="102" align="right">Priority</th><th>Protocol</th><th width="231">Resolves</th><th>Commercial parent selected</th></tr></thead><tbody><tr><td align="right">1</td><td>Joint Venture</td><td>Shared ownership with no single commercial parent</td><td>The Target itself</td></tr><tr><td align="right">2</td><td>Network / Franchise</td><td>Independent legal operators using a global brand or network</td><td>The global brand</td></tr><tr><td align="right">3</td><td>Chaebol Control Tower</td><td>Complex South Korean group structures</td><td>The group brand or flagship entity</td></tr><tr><td align="right">4</td><td>State-Owned Enterprise</td><td>Governments and sovereign owners above operating companies</td><td>The highest corporate entity below the state</td></tr><tr><td align="right">5</td><td>Private Equity</td><td>Investment owners above portfolio operating groups</td><td>The highest operating group in the chain</td></tr><tr><td align="right">6</td><td>Operational Pulse / Shell Filter</td><td>Family holdings, trusts, foundations, and investment vehicles</td><td>The active holding, or the operating group below a passive shell</td></tr><tr><td align="right">7</td><td>Branded Conglomerate</td><td>Verified subsidiaries using a global group brand</td><td>The global group brand</td></tr><tr><td align="right">8</td><td>Strategic Holding Company</td><td>Active public holding companies with multiple brands</td><td>The holding company</td></tr><tr><td align="right">9</td><td>Active Conglomerate</td><td>Operating global parents whose legal and commercial identities align</td><td>The conglomerate itself</td></tr><tr><td align="right">10</td><td>Independence</td><td>No controlling or usable parent found</td><td>The Target itself</td></tr></tbody></table>

Because the first confirmed match wins, a company that qualifies as a joint venture is handled by Protocol 1 before Delpha considers broader conglomerate or independence rules.

### Protocol 1 — Joint Venture

#### When it applies

The Target is controlled jointly by a consortium or by partners with equal or shared control, such as a 50/50 venture. There is no single parent that accurately represents the business commercially.

#### What Delpha does

Delpha treats the joint venture as its own Ultimate Parent:

* `ultimate_parent_commercial_name` exactly matches the Target's `subsidiary_commercial_name`.
* `is_self_ultimate` is set to `true`.
* `relationship_type` is set to `Joint Venture`.
* The joint-venture entity receives `is_ultimate_financial_parent: true`.
* The known partners remain in `ownership_chain`, but each is tagged as:
  * `entity_type: Joint Venture Partner`
  * `ownership_status: Equal/Joint`
  * `is_discarded: true`
  * `is_ultimate_financial_parent: false`

This "flat graph" preserves both partners without incorrectly placing one above the other.

#### Example

**Sony Honda Mobility** is a 50/50 venture between Sony and Honda.

| Output                     | Result                                         |
| -------------------------- | ---------------------------------------------- |
| Commercial Ultimate Parent | Sony Honda Mobility                            |
| `is_self_ultimate`         | `true`                                         |
| `relationship_type`        | `Joint Venture`                                |
| Sony                       | JV partner; discarded for commercial selection |
| Honda                      | JV partner; discarded for commercial selection |

The sales hierarchy therefore rolls Sony Honda Mobility up to itself, while the two partners remain visible as ownership context.

### Protocol 2 — Network / Franchise

#### When it applies

The Target is a franchisee or a member firm in a global network — for example an EY member firm or a McDonald's franchisee. It may be independently owned as a legal entity while operating under a shared brand, commercial model, or network identity.

#### What Delpha does

* The global brand becomes `ultimate_parent_commercial_name`.
* The actual registered coordinating or franchisor entity becomes `ultimate_parent_legal_name` — never a generic brand label.
* `ultimate_parent_country` is the legal anchor's ISO alpha-2 jurisdiction code.
* `is_self_ultimate` is set to `false`.
* `relationship_type` is set to `Member Firm/Franchise`.

#### Example

For a locally owned McDonald's franchisee:

| Output                     | Result                  |
| -------------------------- | ----------------------- |
| Commercial Ultimate Parent | McDonald's              |
| Legal Ultimate Parent      | McDonald's Corporation  |
| Country                    | `US`                    |
| `is_self_ultimate`         | `false`                 |
| `relationship_type`        | `Member Firm/Franchise` |

The local operator remains the legal company on the Account, while McDonald's provides the commercially meaningful rollup for brand-level planning.

### Protocol 3 — Chaebol Control Tower

#### When it applies

The Target is a verified major affiliate of a South Korean chaebol, such as Samsung, SK, LG, Hyundai, Lotte, or Hanwha.

Shared naming alone is not sufficient. Delpha must verify the affiliation using an official company or group website, consolidated filings, shareholder disclosures, or an official registry.

#### What Delpha does

1. Delpha confirms the group affiliation through trusted evidence.
2. If a financial affiliate such as an insurance or securities company appears at the top of a circular chain, it is treated as a passive financial vehicle and marked `is_discarded: true`.
3. Delpha selects the group's commercial "control tower" using one of two branches:
   * **Canonical group portal exists:** Select the group brand and its dedicated group website.
   * **No distinct group portal exists:** Select the flagship operating entity whose domain represents the broader group.
4. The selected control-tower entity is tagged with `entity_type: Chaebol` in `ownership_chain`.
5. `relationship_type` is set to `Brand/Division`, `Majority Stake`, or `Minority Stake`, according to the verified financial relationship.

The selected website must always belong to the entity chosen as the commercial parent.

#### Example A — Dedicated group portal

A verified SK affiliate is assessed, and the distinct SK Group portal is the appropriate overarching commercial identity.

| Output                     | Result                                   |
| -------------------------- | ---------------------------------------- |
| Commercial Ultimate Parent | SK Group                                 |
| Ultimate Parent Website    | `sk.com`                                 |
| Selected entity type       | `Chaebol`                                |
| Relationship               | Based on the verified ownership evidence |

#### Example B — Flagship entity

If the overarching domain belongs to the flagship operating business rather than a separate group organization, Delpha aligns the commercial name, legal name, and website to that flagship entity. For a verified Samsung affiliate, this means selecting **Samsung Electronics Co., Ltd.** and the matching Samsung domain rather than inventing a separate legal entity called "Samsung Group."

### Protocol 4 — State-Owned Enterprise

#### When it applies

The Absolute Top is a government, state, municipality, or sovereign wealth fund.

#### What Delpha does

* The government or sovereign entity remains in the chain but receives `is_discarded: true`.
* Delpha moves down to the highest operating corporate entity.
* That company becomes `ultimate_parent_commercial_name`.
* Its registered legal name — not the government's name — becomes `ultimate_parent_legal_name`.
* `ultimate_parent_country` is taken from that corporate legal entity.
* If the Target is the selected corporate entity, `is_self_ultimate: true` and `relationship_type: Independent`.
* If the Target is a lower subsidiary, `is_self_ultimate: false` and the relationship is `Wholly Owned` or `Majority Stake`, depending on the evidence.

#### Example

Assume the chain is:

**Government owner → Saudi Aramco → Regional operating subsidiary**

| Output                                     | Result                                          |
| ------------------------------------------ | ----------------------------------------------- |
| Government owner                           | Retained in chain; `is_discarded: true`         |
| Commercial Ultimate Parent                 | Saudi Aramco                                    |
| Legal Ultimate Parent                      | Saudi Arabian Oil Company                       |
| Country                                    | `SA`                                            |
| `is_self_ultimate` for regional subsidiary | `false`                                         |
| `relationship_type`                        | `Wholly Owned` or `Majority Stake`, as verified |

The state remains the financial owner, but the operating company becomes the useful commercial parent.

### Protocol 5 — Private Equity (the "Landlord" Rule)

#### When it applies

The Absolute Top is a private-equity firm, venture-capital firm, asset manager, or one of its investment funds.

#### What Delpha does

The investor is treated as the financial "landlord," while the portfolio company remains the commercial operating group:

* The PE firm and intermediate funds receive `is_discarded: true` for commercial selection.
* The top PE entity still receives `is_ultimate_financial_parent: true`, because it ends the legal chain.
* The highest operating group becomes `ultimate_parent_commercial_name`.
* If the Target is that operating group, `is_self_ultimate: true` and `relationship_type: Independent`.
* If the Target is below the operating group, `is_self_ultimate: false`, with `Wholly Owned`, `Majority Stake`, or `Brand/Division` selected from the evidence.

This is an important case where an entity can be both the financial parent and discarded from the commercial-parent decision.

#### Example

Assume the chain is:

**Northstar Capital → Northstar Fund II → Acme Industrial Group → Acme France**

| Output                             | Result                                        |
| ---------------------------------- | --------------------------------------------- |
| Financial Ultimate Parent          | Northstar Capital                             |
| Northstar Capital and Fund II      | `is_discarded: true` for commercial selection |
| Commercial Ultimate Parent         | Acme Industrial Group                         |
| `is_self_ultimate` for Acme France | `false`                                       |
| `relationship_type`                | `Wholly Owned` in this example                |

Sales teams can therefore plan and report against Acme Industrial Group without combining unrelated Northstar portfolio companies.

### Protocol 6 — Operational Pulse / Shell Filter

#### When it applies

The Absolute Top is a family holding company, master trust, foundation, or private investment vehicle.

Unlike the PE protocol, these entities are not automatically bypassed. Delpha first determines whether the top entity is passive or operationally active.

#### The Digital Evidence Test

An entity is considered operationally active when Delpha verifies at least one of the following:

* It files consolidated financial statements.
* It maintains a functional canonical corporate website with leadership, careers, or group-governance information.
* It is identified as the primary contracting or operating party in securities or business filings.

#### Branch A — Passive shell

If none of these signals exists:

* The top entity receives `is_discarded: true`.
* Delpha traverses down to the highest entity that passes the test.
* That verified operating group becomes `ultimate_parent_commercial_name`.
* `relationship_type` becomes `Wholly Owned` or `Majority Stake`, according to the Target's relationship with that group.

**Example:** A family trust owns **Aurora Group**, which publishes consolidated statements and operates a full corporate website. The trust has no operational footprint. Delpha discards the trust for commercial selection and chooses Aurora Group.

#### Branch B — Active holding

If the top entity passes at least one test:

* It is not discarded.
* It becomes `ultimate_parent_commercial_name`.
* Its own canonical corporate website is used, not a portfolio company's website.
* If it is the Target, `is_self_ultimate: true` and `relationship_type: Independent`.
* If the Target is one of its subsidiaries, `is_self_ultimate: false`, with the relationship set from the verified shareholding evidence.

**Example — the holding as Target:** Exor maintains a corporate website, publishes group information, and presents an active governance structure. When Exor itself is the Target, it is selected as its own Ultimate Parent with `is_self_ultimate: true` and `relationship_type: Independent`.

**Example — a subsidiary of the holding as Target:** When the Target is a company whose chain tops out at an active holding — for example Ferrari, held by Exor — the active holding is kept as the commercial parent:

| Output                     | Result                             |
| -------------------------- | ---------------------------------- |
| Commercial Ultimate Parent | Exor                               |
| Ultimate Parent Website    | Exor's corporate site              |
| `is_self_ultimate`         | `false`                            |
| `relationship_type`        | Based on the verified shareholding |

This is intentional: an active holding that genuinely operates a group is a meaningful commercial rollup point, not a shell to bypass.

### Protocol 7 — Branded Conglomerate

#### When it applies

The Target shares the name, identity, or branding of a large global group, or appears to be a separate operating subsidiary of that group.

This protocol has a strict evidence gate: a matching name, logo, or visual identity is not enough. Delpha must find an explicit affiliation on an official company or group website — statements such as "A Tata Enterprise" or "Part of Virgin Group" — or confirm the relationship through consolidated financial statements, shareholder data, or registry evidence.

If the link cannot be verified, this protocol does not apply and Delpha continues to the next protocol.

#### What Delpha does

* Delpha traverses to the global operating head of the verified brand, provided it is not a passive shell.
* The global group brand becomes `ultimate_parent_commercial_name`.
* The actual registered holding entity becomes `ultimate_parent_legal_name`.
* The commercial brand name must not be copied into the legal-name field unless it is also the registered legal name.
* `relationship_type` is set to `Wholly Owned` or `Majority Stake` from the verified evidence.

#### Example

**Aster Mobility Ltd.** uses the statement "An Aster Group company" on its official website. The group's official portfolio also lists the company, and filings show that **Aster Holdings Limited** owns a majority stake.

| Output                     | Result                 |
| -------------------------- | ---------------------- |
| Commercial Ultimate Parent | Aster Group            |
| Legal Ultimate Parent      | Aster Holdings Limited |
| `is_self_ultimate`         | `false`                |
| `relationship_type`        | `Majority Stake`       |

If only the word "Aster" appeared in both names and no explicit relationship could be verified, Delpha would not apply this protocol.

### Protocol 8 — Strategic Holding Company

#### When it applies

The highest non-discarded entity is a widely held public company or corporate parent that actively manages a portfolio of distinct global brands. Examples include Alphabet, Meta, Kering, LVMH, and Match Group.

#### What Delpha does

* The strategic holding company becomes `ultimate_parent_commercial_name`.
* Its own corporate website becomes `ultimate_parent_website`.
* If the Target is the holding company, `is_self_ultimate: true` and `relationship_type: Independent`.
* If the Target is a subsidiary, `is_self_ultimate: false`, with `Wholly Owned` or `Majority Stake` based on securities filings.

#### Example

For Waymo:

| Output                     | Result         |
| -------------------------- | -------------- |
| Commercial Ultimate Parent | Alphabet       |
| Legal Ultimate Parent      | Alphabet Inc.  |
| Ultimate Parent Website    | `abc.xyz`      |
| `is_self_ultimate`         | `false`        |
| `relationship_type`        | `Wholly Owned` |

If Alphabet itself were the Target, Delpha would keep Alphabet as the Ultimate Parent but change `is_self_ultimate` to `true` and `relationship_type` to `Independent`.

### Protocol 9 — Active Conglomerate

#### When it applies

The Absolute Top is an active operating conglomerate whose legal identity and commercial brand are functionally aligned, such as Microsoft, Sony, or BASF.

Delpha verifies that this entity files consolidated financial statements and maintains the group's global executive leadership. This confirms that the company is an operating parent rather than a passive shell.

#### What Delpha does

* The conglomerate's global commercial name becomes `ultimate_parent_commercial_name`.
* Its primary global domain becomes `ultimate_parent_website`.
* If the Target is the conglomerate itself, `is_self_ultimate: true` and `relationship_type: Independent`.
* If the Target is a subsidiary, `is_self_ultimate: false`, with `Wholly Owned` or `Majority Stake` based on securities filings.

#### Example

For a Microsoft regional subsidiary:

| Output                     | Result                                    |
| -------------------------- | ----------------------------------------- |
| Commercial Ultimate Parent | Microsoft                                 |
| Legal Ultimate Parent      | Microsoft Corporation                     |
| Ultimate Parent Website    | `microsoft.com`                           |
| `is_self_ultimate`         | `false`                                   |
| `relationship_type`        | `Wholly Owned`, when confirmed by filings |

The regional entity keeps its own legal record, while sales activity can roll up to the globally operating Microsoft group.

### Protocol 10 — Independence

#### When it applies

Delpha reaches the independence protocol when:

* No parent can be found.
* No usable commercial parent remains after applying the earlier protocols.
* The Target is a widely held public company with no controlling shareholder and no higher operating parent.

#### What Delpha does

* The Target becomes its own Ultimate Parent.
* `ultimate_parent_commercial_name` exactly matches `subsidiary_commercial_name`.
* `is_self_ultimate` is set to `true`.
* `relationship_type` is set to `Independent`.

#### Example

**Independent Analytics plc** is publicly traded, has no controlling shareholder, and operates under its own brand.

| Output                     | Result                |
| -------------------------- | --------------------- |
| Commercial Ultimate Parent | Independent Analytics |
| `is_self_ultimate`         | `true`                |
| `relationship_type`        | `Independent`         |

Delpha does not create an artificial parent simply to complete the hierarchy.

### Evidence takes priority over assumptions

Several protocols include an evidence gate because brand resemblance does not prove ownership. Delpha cross-checks official company websites, global brand websites, recent corporate announcements, securities filings, and official registries before confirming a relationship.

This evidence-first approach helps prevent common hierarchy errors, including:

* Treating a similarly named company as a subsidiary without proof.
* Selecting a government or investment fund as the sales rollup point.
* Combining unrelated portfolio companies under the same private-equity firm.
* Using a commercial brand label where a registered legal name is required.
* Selecting a website that belongs to a subsidiary rather than the chosen parent.

See [Delpha trusted sources for Ultimate Parent ](broken://pages/49pgy6XWCXOw1SwDLzq9)for the complete source hierarchy.

### Key takeaway

Delpha preserves the legal ownership chain while selecting the entity that best represents how the business operates in the market. The ten protocols ensure that joint ventures, franchises, chaebols, state-owned companies, investment structures, branded groups, and independent businesses are handled consistently.

The result is an Ultimate Parent hierarchy designed for real-world sales coverage, account planning, ABM, and reporting — without losing the financial and legal context needed for auditability.

### Related pages

* [Understanding the Ultimate Parent Analysis ](/use-cases/ultimate-parent/how-selection-works/understanding-the-ultimate-parent-analysis)— the full pipeline, from confidence calculation to Score Meter results.
* [Delpha trusted sources for Ultimate Parent](/core-concepts/trusted-sources-and-how-delpha-weighs-them) — the evidence Delpha relies on before any protocol triggers.
* [Ultimate — Delpha focuses on Brands and Operating structures](/use-cases/ultimate-parent/how-selection-works/ultimate-parent-concepts-brands-vs.-operating-structures) — why the commercial view matters.
* [What are the Delpha Ultimate Parent Fields](/delpha-for-salesforce/how-to-faq/delpha-ultimate-parents/what-are-the-delpha-ultimate-parent-fields) — where every flag mentioned on this page is stored.
* [Understanding the D Ultimate Data JSON Payload](/use-cases/ultimate-parent/output-the-json-payload-field-by-field) — interpret the underlying D Ultimate Data field, including ownership chain tracking and algorithmic evaluation evidence.


# Understanding the Ultimate Parent Analysis

Understand how Delpha identifies and matches Ultimate Parents using AI-driven analysis and scoring logic. This page details each step, from confidence calculation to final Score Meter results.

### Overview

The **Ultimate Parent** process in Delpha consists of **two main steps**:

1. **Identification** — Delpha's AI Agent determines the Ultimate Parent of a given account using insights from its **trusted sources**. This runs on Delpha's side.
2. **Matching** — Delpha searches within **your Salesforce org** to find the existing account that best matches this Ultimate Parent. This runs **inside Salesforce**, on your data, which never leaves your org.

The result of this process is what you see in the **Score Meter** on the record page.

> **Note:** Each account is analysed **on its own**. Salesforce sends the identity of a single record (name, website, country) to the AI Agent and receives the analysis of that record back. You can therefore run the Ultimate Parent use case on one record, on a selection, or on your whole database — the mechanics are the same.

### The technical output of the analysis

The analysis writes to several fields on the Account. The two that carry the full story are:

* **D Ultimate Data** (`delpha__DDQ_QualityUltimateRecommendedData__c`) — the complete technical output, in **JSON**.
* **D Ultimate Parent Comments** (`delpha__DDQ_QualityUltimateComments__c`) — the human-readable explanation of the recommendation (or the error message when the record could not be assessed).

The JSON in **D Ultimate Data** is divided into two sections:

* **Common (`common`):** the raw analysis returned by the Delpha AI-Agent — who the Ultimate Parent is, why, and the evidence behind it.
* **Recommendations (`recommendations`):** the ranked list of accounts **found in your org** that match that Ultimate Parent, each with its own matching score.

Example:

```json
{
  "recommendations": [
    {
      "account_id": "001fo000009a6rSAAQ",
      "account_name": "Salesforce",
      "score": 100,
      "status": "Potential",
      "sources": [
        { "source": "Assessment", "score": 100, "timestamp": "2026-06-06 01:36:47" }
      ]
    }
  ],
  "common": {
    "id": "001cb00000rFWxfAAG",
    "subsidiary_commercial_name": "Heroku",
    "ultimate_parent_legal_name": "Salesforce, Inc.",
    "ultimate_parent_commercial_name": "Salesforce",
    "ultimate_parent_website": "https://www.salesforce.com/",
    "ultimate_parent_country": "US",
    "relationship_type": "Wholly Owned",
    "confidence": 1.0,
    "comment": "Heroku was acquired by Salesforce in 2010. Salesforce is a widely held public company.",
    "evidence_summary": "Identity: Heroku verified | Chain: Heroku -> Salesforce, Inc. | Protocol: Protocol 9 (Active Conglomerate) | Discard Check: None | GTM Selection: Salesforce is the active operating conglomerate that wholly owns Heroku.",
    "source_url": "https://investor.salesforce.com/",
    "ultimate_parent_source_level": "Securities Filing",
    "is_self_ultimate": false,
    "ownership_chain": "[{\"entity_legal_name\": \"Heroku, Inc.\", \"entity_website\": \"https://www.heroku.com/\", \"is_discarded\": false, \"is_ultimate_financial_parent\": false, \"comment\": \"Target entity, wholly owned subsidiary of Salesforce.\"}, {\"entity_legal_name\": \"Salesforce, Inc.\", \"entity_website\": \"https://www.salesforce.com/\", \"is_discarded\": false, \"is_ultimate_financial_parent\": true, \"comment\": \"Ultimate financial and commercial parent; widely held public company.\"}]",
    "lei_data": "{\"lei_number\": \"RCGZFPDMRW58VJ54VR07\", \"legal_name\": \"SALESFORCE, INC.\", \"legal_jurisdiction\": \"US-DE\", \"lei_source\": \"https://search.gleif.org/#/record/RCGZFPDMRW58VJ54VR07\"}"
  }
}
```

### Step 1 — Identify the Ultimate (Reference)

Determine the real-world ultimate parent entity for the account, independent of what exists in your CRM.

The **`common`** section is the Ultimate Parent identified by the Delpha AI-Agent from its **trusted sources**. The agent receives only the account's **name**, **website** and **country**, and returns:

| Key                                           | Meaning                                                                                                        |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `ultimate_parent_legal_name`                  | Registered legal name of the Ultimate Parent (e.g. *Salesforce, Inc.*)                                         |
| `ultimate_parent_commercial_name`             | Name the parent goes to market with (e.g. *Salesforce*)                                                        |
| `ultimate_parent_website`                     | Official website of the Ultimate Parent                                                                        |
| `ultimate_parent_country`                     | Country of the Ultimate Parent                                                                                 |
| `confidence`                                  | How certain the agent is, from `0.0` to `1.0`                                                                  |
| `relationship_type`                           | *Wholly Owned*, *Member Firm/Franchise*, *Portfolio Company*, *Brand/Division*, *Joint Venture*, *Independent* |
| `comment`                                     | Plain-language explanation of the relationship                                                                 |
| `evidence_summary`                            | Condensed audit trail: identity check, chain, protocol applied, discard check, final selection                 |
| `source_url` / `ultimate_parent_source_level` | Where the conclusion comes from, and how authoritative it is (e.g. *Securities Filing*, *Company Website*)     |
| `ownership_chain`                             | Every entity examined between the account and the top of the group                                             |
| `is_self_ultimate`                            | `true` when the account **is** its own Ultimate Parent                                                         |
| `lei_data`                                    | The Legal Entity Identifier record of the Ultimate Parent, when one exists (GLEIF)                             |

In the example above, Delpha recommends **Salesforce, Inc.** (website `https://www.salesforce.com/`) as the Ultimate Parent of Heroku, with a **confidence of 1.0 (100%)**.

#### The ownership chain

`ownership_chain` lists every entity the agent walked through, from the account itself up to the top of the group. Each link carries its own name, website, country, LEI and a short comment, plus two flags that matter:

* **`is_ultimate_financial_parent`** — this entity is the top of the *financial* ownership group (which is not always the entity Delpha recommends for go-to-market purposes).
* **`is_discarded`** — the agent considered this entity as a possible Ultimate Parent and **deliberately rejected it**. Discarded parents are used later to explain why your current value may be defensible even though it is not the recommendation (see *Accuracy and consistency*).

> **Note:** Delpha's Ultimate Parent model reflects how companies operate and present themselves in the market — not how they're legally registered. By focusing on brand and operating structure, Delpha captures real commercial relationships and group affiliations relevant to sales, marketing, and territory management. This is especially useful for franchise and multi-brand organizations.

### Step 2 — Link to Parent in CRM (Match)

Find and link the best-matching record in your CRM that represents that reference parent (names may differ; matching relies on evidence).

This step runs **entirely inside your Salesforce org**, using Delpha's **AccountMatcher** library. Delpha never receives your account list; only the record being assessed is ever sent out.

The result is the **`recommendations`** array — the ranked shortlist of your own accounts:

```json
"recommendations": [
  {
    "account_id": "001fo000009a6rSAAQ",
    "account_name": "Salesforce",
    "score": 100,
    "status": "Potential"
  }
]
```

The best recommendation (the first one) is the one surfaced in the Score Meter, and its `score` becomes the confidence you see on the record.

### How Matching Works

**Candidate Shortlist**

Delpha searches your org for accounts that could be the Ultimate Parent:

* When the recommended parent has a **website**, the shortlist is every account sharing its **root domain** (up to 200, the largest hierarchies first).
* When it has **no website**, Delpha falls back to a **name search** on Account (up to 1 000 suggestions).

The search is run **twice** — once with the parent's **legal name**, once with its **commercial name** — and the two result lists are merged, best-first, keeping up to **5 distinct accounts**.

**Support Fields**

Two data quality fields are used to evaluate each candidate:

* **`Account.DDQ_QualityWebsiteDomain__c`** (*D Website Domain*) — the root domain of the account website.
* **`Account.DDQ_QualityAccountHierarchyCount__c`** (*D Hierarchy Count*) — number of accounts in the hierarchy (`Account.ParentId`).

**Scoring**

Each candidate is scored on three criteria, each with its own weight:

| Criterion              | Field               | How it is scored                                                                                                                         | Weight |
| ---------------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| **Name similarity**    | `Name`              | Fuzzy comparison against the recommended name: `1 − distance / length`                                                                   | 5      |
| **Domain match**       | `D Website Domain`  | `1` when it equals the recommended root domain, `0` otherwise — **mandatory** when a website is known                                    | 3      |
| **Hierarchy position** | `D Hierarchy Count` | Log-scaled ratio against the largest hierarchy in the shortlist — rewards accounts that sit higher in the tree, with diminishing returns | 10     |

The **Matching Score** is the weighted average of the three, as a percentage:

```
Matching Score = ( Σ score × weight ) / ( Σ weight ) × 100
```

Additional criteria can be configured per org (**Ultimate Settings → Account Mapping Extra Conditions**) — for example, requiring the country to match. They are appended to the three above and take part in the same weighted average.

**Selection Criteria**

* Candidates scoring **below 60** are discarded.
* The remaining candidates are ranked by score; the **highest Matching Score** wins.
* Up to **5** recommendations are kept, so a steward can pick a different one.
* If no candidate qualifies, Delpha recommends **creating a new Ultimate Parent** — the recommendation carries the parent's name with no account Id, and the account is created (with its website) when the recommendation is accepted.

***

**Final Confidence Score**

The confidence displayed in Salesforce, and stored in **D Ultimate Recommended Score** (`delpha__DDQ_QualityUltimateRecommendedScore__c`), is:

| Situation                                                | Final score                                          |
| -------------------------------------------------------- | ---------------------------------------------------- |
| A matching account was found in your org                 | the **Matching Score** of the best candidate (0–100) |
| No account qualified — a new Ultimate Parent is proposed | the agent's own **confidence × 100**                 |

> **Recommendation:** Since Ultimate matching relies on the support fields mentioned above, running a Data Quality Assessment before launching an Ultimate Parent analysis is highly recommended for better results.

### Self-Ultimate: when the account is its own parent

When the agent concludes the account has no parent (`is_self_ultimate: true`), Delpha does **not** search your org straight away. It first checks two things:

1. The identified entity has **no Legal Entity Identifier (LEI)** — an entity with a registered LEI is matched normally, like any other.
2. The account's **current** Ultimate Parent and the recommended parent share the **same root domain**.

When both hold, the recommendation **stays on the current Ultimate Parent** (which, for a record with no parent, is the record itself) with a score of **100**.

In every other case — an LEI is present, a website is missing, or the domains differ — the shortcut does not apply and the record goes through the standard org match described above.

### Accuracy and consistency

Beyond the recommendation itself, the analysis feeds the Ultimate Parent quality dimensions shown in the Score Meter:

| Situation                                                                                                                   | Accuracy | Consistency |
| --------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- |
| The current Ultimate Parent **is** the top recommendation                                                                   | `OK`     | ✅           |
| The current Ultimate Parent is not the recommendation, but matches an entity the agent **discarded** (`is_discarded: true`) | `OK`     | ❌           |
| Anything else                                                                                                               | `No`     | ❌           |

The middle row is the important one: your current value is a **real** entity in the ownership chain — it is not wrong, it is simply not the entity Delpha selected as the Ultimate Parent. Accuracy stays `OK`, but consistency is flagged so the difference remains visible and the recommendation is still offered.

### When a record cannot be assessed

| Case                  | What it means                                                                           | Status      | Comments field shows                                             |
| --------------------- | --------------------------------------------------------------------------------------- | ----------- | ---------------------------------------------------------------- |
| **Delpha-side error** | Something failed during Delpha's processing                                             | `Failed`    | The technical error; all dimensions are left `Unknown`/unchecked |
| **Missing input**     | The account has no website (or no name) to analyse                                      | `Not Found` | A message asking for the missing field                           |
| **Input mismatch**    | The name and the website describe two different companies (e.g. *Delpha* + `volvo.com`) | `Not Found` | The agent's explanation of the contradiction                     |

### Example

Let's look at a practical example: the account **Heroku** (`heroku.com`).

**Delpha Reference Ultimate**

```json
"common": {
  "ultimate_parent_legal_name": "Salesforce, Inc.",
  "ultimate_parent_commercial_name": "Salesforce",
  "ultimate_parent_website": "https://www.salesforce.com/",
  "relationship_type": "Wholly Owned",
  "confidence": 1.0,
  "is_self_ultimate": false
}
```

Delpha identifies **Salesforce, Inc.** as the Reference Ultimate Parent, with a confidence of **1.0 (100%)**.

**Customer Org Candidates**

In the customer's Salesforce org, two accounts share the recommended root domain (`salesforce.com`):

| Account           | D Website Domain | D Hierarchy Count |
| ----------------- | ---------------- | ----------------- |
| Salesforce        | salesforce.com   | 12                |
| Salesforce France | salesforce.com   | 1                 |

**Matching Score Calculation** (against the commercial name, *Salesforce*)

**Item 1 — Salesforce**

* Name similarity = **1.0** (identical) → `1.0 × 5`
* Domain match = **1.0** → `1.0 × 3`
* Hierarchy = ln(1+12) / ln(1+12) = **1.0** → `1.0 × 10`
* **Matching Score = (5 + 3 + 10) / 18 × 100 = 100**

**Item 2 — Salesforce France**

* Name similarity = 1 − 7/17 = **0.59** → `0.59 × 5`
* Domain match = **1.0** → `1.0 × 3`
* Hierarchy = ln(1+1) / ln(1+12) = **0.27** → `0.27 × 10`
* **Matching Score = (2.94 + 3 + 2.70) / 18 × 100 = 48**

✅ **Best match:** Salesforce (Matching Score = 100) ❌ **Salesforce France** falls below the 60 threshold and is dropped.

**Final Confidence Score**

A matching account was found, so the final confidence is the Matching Score itself: **100 (100%)**.

This is what ends up stored in **D Ultimate Data**:

```json
"recommendations": [
  {
    "account_id": "001fo000009a6rSAAQ",
    "account_name": "Salesforce",
    "score": 100,
    "status": "Potential"
  }
]
```

Delpha therefore recommends **Salesforce** as the Ultimate Parent of Heroku in the customer's org, with a final confidence score of **100 (100%)**.

{% hint style="warning" %}
[Delpha’s Ultimate Parent model is designed to reflect how companies actually operate and present themselves in the market](/use-cases/ultimate-parent/how-selection-works/ultimate-parent-concepts-brands-vs.-operating-structures) — not how they’re legally registered. By focusing on the **brand and operating structure**, Delpha captures real commercial relationships, group affiliations, and brand hierarchies that drive sales, marketing, and territory management.\
This approach ensures more relevant and actionable insights, especially for **franchise and multi-brand organizations**, where legal ownership often differs from day-to-day operational reality.
{% endhint %}


# Output — the JSON payload, field by field

A deep dive into the Delpha Ultimate Parent JSON payload schema. Learn how to interpret the underlying D Ultimate Data field, including ownership chain tracking and algorithmic evaluation evidence.

This technical reference guide provides an exhaustive breakdown of the JSON payload returned by every Delpha Ultimate Parent resolution — via API, MCP, or Salesforce. In Salesforce, the payload is stored in the D Ultimate Data (`delpha__DDQ_QualityUltimateRecommendedData__c`) field, and the headline values land in the fields documented in [What are the Delpha Ultimate Parent Fields](/delpha-for-salesforce/how-to-faq/delpha-ultimate-parents/what-are-the-delpha-ultimate-parent-fields). It is designed for developers, Salesforce Administrators, and Data Stewards who need to audit or programmatically parse Delpha's corporate hierarchy data.

## Technical Breakdown: The Ultimate Parent JSON Payload

The payload is a comprehensive audit trail and intelligence record. It details the exact algorithmic logic, legal entity identifiers (LEIs), financial data sourcing, and validation protocols used to determine the corporate hierarchy.

The payload contains two main root objects: `recommendations` and `common`.

### 1. The `recommendations` Array

This block contains the final recommendation generated by the analysis.

* `account_name` *(String)*: The clean, verified commercial name of the recommended parent company.
* `account_id` *(String/Null)*: The 18-character Salesforce Account ID if the record already exists in your CRM. If `null`, Delpha has identified the entity externally, meaning a new Account record may need to be created or matched.
* `status` *(String)*: The life-cycle status of this suggestion (e.g., `Potential`, `Accepted`, `Rejected`).
* `score` *(Integer)*: The overall confidence level of this specific recommendation node on a scale of 0 to 100.
* `sources` *(Array)*: An audit trail of the evaluations that contributed to this recommendation.
  * `timestamp`: The exact date and time the evaluation occurred.
  * `score`: The confidence score given during that specific assessment runner.
  * `source`: The engine or module that triggered the run (e.g., `Assessment`).

### 2. The Core Verification Engine (`common`)

The `common` block houses the structural data, corporate metadata, and strict audit tracks used to validate the hierarchy.

#### **Section A: Evidence & Evaluation Protocols**

These fields detail the precise logic engine and regulatory frameworks used to audit the company.

* `evidence_summary` *(String)*: A highly dense, structured summary of the verification steps executed by Delpha. It breaks down into five core pillars:
  * *Identity*: Confirms the matching and legal verification of the local entity (e.g., matching the local name to its legal registration name).
  * *Chain*: Maps the exact structural pathway from the local subsidiary up to the suggested global node.
  * [*Protocol*](/use-cases/ultimate-parent/how-selection-works/how-delpha-selects-the-ultimate-parent-the-10-logic-protocols): The specific financial logic protocol used to evaluate the hierarchy rules (e.g., `Protocol 9 (Active Conglomerate)` handles complex global public groups with specific shareholder thresholds).
  * *Discard Check*: Details if any intermediate holding companies or defunct entities were intentionally skipped or flagged during analysis.
  * *GTM Selection*: The final Go-To-Market business rule explaining why this node is selected (e.g., treating a widely held public company as a terminal node because no single shareholder holds >50% control).
* `comment` *(String)*: The detailed narrative explaining the corporate legal reality of the entity chain (e.g., outlining buyouts of minority shares, country of origin adjustments, and specific shareholder control mechanics).
* `ultimate_parent_source_level` *(String)*: The authoritative compliance tier from which the corporate structure was extracted (e.g., `Securities Filing`, `Regulatory Registry`).
* `source_url` *(String)*: The direct digital location or investor relations source where the structural data was officially verified.

#### **Section B: Institutional Data & Financial Identifiers**

* `ultimate_parent_legal_name` *(String)*: The exact, un-truncated legal registration name of the final parent company.
* `ultimate_parent_commercial_name` *(String)*: The recognized trading or brand name of the ultimate parent.
* `ultimate_parent_website` *(String)*: The validated corporate homepage URL for the top-tier entity.
* `ultimate_parent_website_validated` *(Boolean)*: A system flag verifying that the parent website is active, reachable, and correctly aligned with the entity.
* `ultimate_parent_country` *(String)*: The 2-letter ISO country code where the ultimate parent is legally headquartered (e.g., `LU` for Luxembourg).
* `relationship_type` *(String)*: How the Target relates to the selected Ultimate Parent. One of `Wholly Owned`, `Joint Venture`, `Member Firm/Franchise`, `Portfolio Company`, `Brand/Division`, `Independent`.
* `subsidiary_commercial_name` *(String)*: The commercial/brand name of the input record being analyzed.
* `is_self_ultimate` *(Boolean)*: Set to `true` if the current record is its own global ultimate parent; `false` if it answers to a higher corporate authority.

#### **Section C: Processing Logs & Operational Metadata**

* `confidence` *(Float)*: The normalized confidence score behind the recommendation, ranging from `0.0` to `1.0`.
* `input_data_error` *(Boolean)*: A health check flag indicating if the original data provided from Salesforce contained critical errors preventing a clean search.
* `data_error_details` *(String)*: Log notes detailing what failed if `input_data_error` is triggered.

### 3. The `ownership_chain` Blueprint

The `ownership_chain` parameter contains a serialized JSON array representing the actual corporate ladder, node by node, from bottom to top.

Each node object in this chain contains deep-level compliance markers:

* `entity_legal_name` & `entity_commercial_name`: The official legal vs. operational brand name of that specific tier.
* `entity_type`: The legal classification of the business structure (e.g., `Corporation`).
* `entity_country` & `entity_website`: Regional tracking and validated web footprint for that specific tier.
* `ownership_status`: The legal status of this tier's stake in the company below it (e.g., `Majority/Controlling`, `Equal/Joint`, `Unknown`).
* `is_ultimate_financial_parent`: A critical flag pointing directly to the final node in the financial data graph (`true` or `false`).
* `is_discarded`: A boolean flag indicating whether this node was bypassed in favor of a cleaner operational target.
* `entity_lei_data` *(Object)*: Contains institutional-grade data pulled directly from global financial oversight bodies (such as GLEIF):
  * `lei_number`: The official 20-character Global Legal Entity Identifier.
  * `legal_id`: The local country tax/corporate registration number (e.g., Brazil's CNPJ format).
  * `lei_source`: The validation registry lookup URL.
  * `legal_jurisdiction`: The legal jurisdiction governing the entity.
  * `headquarters_address`: The comprehensive physical corporate headquarters tracking block (`country`, `city`, `postalCode`, `addressLines`, `region`).


# Quality & confidence scoring

How Delpha scores Ultimate Parent records: four of its six data quality dimensions — Completeness, Validity, Accuracy, and Consistency — plus where confidence scoring is calculated.

Delpha scores data across [six data quality dimensions](/core-concepts/the-six-data-quality-dimensions) — Completeness, Validity, Uniqueness, Consistency, Accuracy, and Timeliness. For Ultimate Parent Accounts, four of them apply, automated across CRM, API, and MCP:

* **Completeness**: Verifies successful execution of the hierarchy analysis without system processing errors.
* **Validity**: Validates input accuracy, ensuring valid website domains match company names.
* **Accuracy**: Confirms the assigned parent matches either the primary or a discarded recommendation.
* **Consistency**: Enforces strict alignment between the assigned parent and Delpha's primary recommendation.

> **Key Takeaway:** For Ultimate Parent, each dimension is operationalized at record level: while *Completeness* tracks system-level processing and *Validity* checks input account details, *Accuracy* and *Consistency* measure how closely your current Ultimate Parent assignment matches Delpha's primary recommendation.

Confidence scoring on individual recommendations — the score attached to each recommended parent and how it is calculated — is covered in [Understanding the Ultimate Parent Analysis](/use-cases/ultimate-parent/how-selection-works/understanding-the-ultimate-parent-analysis).

### 1. Completeness

Completeness measures whether Delpha successfully executed its hierarchy analysis on the record without system interruptions.

* `true`: The record was processed successfully by Delpha's processing engine.
* `false`: A system processing error occurred during execution (unrelated to user input data).

### 2. Validity

Validity evaluates whether the baseline input data on the Account record is sufficient and correctly formatted for hierarchy matching.

* `Valid`: The input data is valid (e.g., a website domain is present and correctly aligns with the company name).
* `Invalid`: An input data error is detected (e.g., missing website, or the domain does not match the company name).
* `Unknown`: Unknown is set when completeness is false, to avoid penalizing the score

### 3. Accuracy

Accuracy checks whether the currently assigned Ultimate Parent is a legitimate parent entity identified within Delpha's analysis payload.

* `Ok`: The record is Valid AND the current Ultimate Parent matches either the top recommended Ultimate Parent OR any discarded potential parent option.
* `No`: The record is invalid, or the assigned Ultimate Parent does not match any recognized recommendation options.
* `Unknown`: Unknown is set when completeness is false, to avoid penalizing the score

### 4. Consistency

Consistency measures strict alignment between the current record assignment and Delpha's primary, top-ranked recommendation.

* `true`: The record is Valid, Accurate, AND the assigned Ultimate Parent exactly matches Delpha's primary recommended Ultimate Parent.
* `false`: The assigned Ultimate Parent matches a discarded recommendation option instead of the primary choice (or the record is Invalid/Inaccurate).

### Quick Reference Matrix

| **Data Quality Dimension** | **Evaluates**                    | **Status: true**                                                         | **Status: false**                                            |
| -------------------------- | -------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------ |
| Completeness               | Engine Execution                 | Record processed without system errors                                   | Internal Delpha processing error occurs                      |
| Validity                   | Input Data Quality               | Website domain exists and matches company name                           | Missing website or domain mismatch                           |
| Accuracy                   | Entity Legitimacy                | Valid record + assigned parent matches a recommended or discarded parent | Assigned parent does not exist in analysis results           |
| Consistency                | Primary Recommendation Alignment | Valid & Accurate + assigned parent exactly matches top recommendation    | Assigned parent matches a discarded/secondary recommendation |


# Overview

Explore Delpha’s documentation for setup, integration, deduplication, and LinkedIn enrichment. Includes FAQs, job tracking, and support options.

This Help Center is organized into structured categories to help you quickly find the guidance you need, whether you're setting up Delpha for the first time or fine-tuning deduplication rules.

***

## DELPHA DOCUMENTATION

**Start here to understand how Delpha works and how to get set up.**

* **Welcome to Delpha**: Introduction and overview
* **Delpha Setup**: [Initial configuration steps](/delpha-for-salesforce/delpha-setup)
* **Delpha Upgrade**: [Update your Delpha version safely](/delpha-for-salesforce/delpha-upgrade)
* **Delpha Apps**: [Overview and usage of app-specific features](/delpha-for-salesforce/delpha-apps)
* **Use Cases Setup**: [Guide to configuring specific use cases (Duplicate, Data Quality)](/delpha-for-salesforce/use-cases-setup)

***

## HOW TO – FAQ

**Common tasks, step-by-step guides, and practical how-to articles.**

* **Delpha Integration**: [Add components, fields, and tokens to layouts](/delpha-for-salesforce/how-to-faq/delpha-integration)
* **Delpha Job Tracking**: [Display and use job history, detect job changes](/delpha-for-salesforce/how-to-faq/delpha-job-tracking)
* **Delpha LinkedIn Connector**: [Manage cookie setup, enrichment, connection troubleshooting](/delpha-for-salesforce/how-to-faq/delpha-linkedin-connector)
* **Delpha Duplicate**: [All about deduplication — rules, merge logic, detection tuning](/delpha-for-salesforce/how-to-faq/delpha-duplicate)
* **Delpha Data Quality**: [Improve and maintain data health with dimensions and recommendation](/delpha-for-salesforce/how-to-faq/delpha-data-quality)s
* **Delpha Campaigns**: [Configure, run, and optimize campaign pipelines](/delpha-for-salesforce/how-to-faq/delpha-campaigns)

***

## TROUBLESHOOT

**For when you need assistance or something isn’t working as expected.**

* **Grant Access for Delpha Support**: [Securely allow the support team to access your org to help you troubleshoot or complete setup.](broken://pages/VhJwuRMV1LOzZspudglS)

***

## DELPHA API AND MCP

[**Connect and integrate with Delpha securely through APIs and MCP**](/delpha-api-and-mcp/delpha-api-and-mcp)**.**


# Delpha Setup

## Setting Up Delpha in 3 Easy Steps

The **Delpha Setup** menu provides quick access to key configuration areas:

* **Install Delpha**: [Guide for installing and activating the Delpha package in Salesforce](/delpha-for-salesforce/delpha-setup/install-delpha)
* **Import Conversations**: Option to [bring Delpha Bot conversation into Delpha](/delpha-for-salesforce/delpha-setup/import-conversations)
* **Extra Tasks**: [Additional setup or administrative actions related to Delpha](/delpha-for-salesforce/delpha-setup/extra-tasks)

Use this section to complete your initial setup and manage Delpha features within your org.


# (Optional) Activate Delpha Licenses purchased via Heroku Marketplace

Follow these steps to activate Delpha licenses purchased through the Heroku Marketplace and set them up on your Heroku account.

{% hint style="warning" %}
If you purchased Delpha through the **Heroku Marketplace**, follow these steps to activate your licenses. If you’re a direct customer, you can skip this section.
{% endhint %}

## Set up a Heroku app with the Delpha Data Quality add-on to activate the licences.

### Prerequisites

* You have access to an **Enterprise Account**, directly setup with the Heroku Team.

{% hint style="warning" %}
This Enterprise Account is set at Heroku contract signature. The Tenant Owner receives an email from Heroku to activate the account. If you think that you did not receive this email, liaise with your Heroku account manager.&#x20;
{% endhint %}

* If you are activating Delpha Licenses on a **Personal Account**, the process is the same. Make sure that **billing** information is set up (required for paid add-on).

### Step-by-step

#### **1 - Log in your Heroku Account**

* Go to <https://dashboard.heroku.com/> and sign in.
* **Switch to your Enterprise Account**\
  If the top-left account switcher, displays **Personal**, click on it and select a **Team** within your **Enterprise Account**&#x20;

{% hint style="warning" %}
If it is the first time you log in your Heroku Enterprise Account, you may have no team created under your Enterprise Account. You should create one for easier access management to the Delpha resources on Heroku.
{% endhint %}

#### **2 - Create a new app**

* Go to the tab **Apps** and click **Create new app**.
  * **App name**: use something meaningful, e.g. `your-companyname-delpha-heroku-licence` (must be globally unique).
  * **App Owner**: select your **Team**.
  * **Location**: choose the closest (e.g., Europe or United States).
  * Leave “Pipeline” inactive.
  * Click **Create app**.

#### **3 - Add the Delpha add-on to the newly created App**

> Case 1: you are on a **Custom Plan**

* Using Heroku CLI, copy paste the command from your Custom Plan email. It will add Delpha Data Quality add-on to the app you just created and associate it with the Custom Plan.&#x20;

```
heroku addons:create delpha-data-quality:CUSTOM_PLAN_NAME --app YOUR_APP_NAME_HERE
```

{% hint style="warning" %}
If Delpha has created a **Custom plan** for your company, you received an email titled **Heroku - You have been invited to install delpha-data-quality:*****NameOfTheCustomPlan*** sent by **<addons@heroku.com>** with this command line.&#x20;

*<mark style="color:orange;">If you did not receive this email or if you do not know what to do with it... add Delpha Support with email address <support@delpha.io> to your Heroku Team so we can manage the Custom plan activation for you.</mark>* &#x20;

To add a Team Member on Heroku, just follow these steps: in your Heroku account: Select your Team / go to the Access tab / click 'Invite User'.&#x20;

Make sure that the Delpha Support team member has add-on provisioning rights.
{% endhint %}

> Case 2: you are on the **Standard plans**

* Open your new app and go to the **Resources** tab.
* In **Add-on Services** section, search **Delpha Data Quality** and select it.
  * **Plan Name**: choose **Pro**.
  * Click **Submit Order Form** to provision the add-on.

#### **Final check**

You should now see the Service **Delpha Data Quality** under **Add-on Services** section with a Plan selected.&#x20;

{% hint style="success" %}
Licences are now active for this Heroku app. You can start using Delpha.
{% endhint %}


# Install Delpha

Install the Delpha managed package from the AppExchange or a package ID, assign permission sets and licenses, and connect your org.

## Installing Delpha in Salesforce

To get started with Delpha in Salesforce, follow these quick setup steps:

1. [Install the Delpha package](/delpha-for-salesforce/delpha-setup/install-delpha/install-delpha-package-from-the-salesforce-app-exchange) from the AppExchange
2. [Assign the Delpha Permission Set Group to users](/delpha-for-salesforce/delpha-setup/install-delpha/assign-a-delpha-permission-set-group)
3. [Allocate Delpha licenses to the right users](/delpha-for-salesforce/delpha-setup/install-delpha/assign-a-delpha-licence-to-the-users)
4. [Connect your Salesforce org to Delpha](/delpha-for-salesforce/delpha-setup/install-delpha/connect-the-org-to-delpha)

This process ensures Delpha is fully installed, configured, and ready to use for your team.

{% hint style="info" %}
**Delpha app is a managed package. It can be installed from the**[ **Salesforce App Exchange**](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMpuXUAT) **or directly from a package Id.**&#x20;

**Get in touch with Delpha (<support@delpha.io>) for further information.**&#x20;
{% endhint %}


# Install Delpha package from the Salesforce App Exchange

Quickly enable Delpha for your Salesforce org with minimal setup.

## How to Install Delpha from the Salesforce AppExchange

1. **Log in to Salesforce** using an account with system administrator rights.
2. **Go to the Salesforce AppExchange** and search for **Delpha**.\
   or use the [direct link to Delpha on the AppExchange](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMpuXUAT)
3. On the Delpha listing page, click **“Get It Now”** to begin.
4. **Choose your environment** (Production or Sandbox) based on where you want to install the package.
5. **Log in again if prompted** to confirm your identity.
6. **Accept the terms and conditions** by checking the agreement box.
7. **Set the security level**, selecting who should have access to Delpha (Admins only, All users, or specific profiles), then click **Next**.
8. Click **“Install”** to start the installation process.
9. Once complete, Salesforce will send you a **confirmation email** indicating that Delpha was successfully installed.

{% hint style="warning" %}
During the setup, you are asked to **Approve Third-Party Access**

* `api.hubapi.com`: HubSpot endpoint used by Delpha to synchronize HubSpot and Salesforce records after Delpha merges Salesforce records during the Duplicate process.\
  This integration is **disabled by default** and can be **enabled only by a Delpha Administrator** in the Duplicate Settings.
* `mail.delpha.services`: Delpha endpoint used by the **Email Insight** feature to extract business information from incoming emails.\
  This feature is **off by default** and is **activated at the Delpha license level** (FMA).
  {% endhint %}


# Assign a Delpha Permission Set Group

Assign the right Delpha permissions by selecting a persona-based permission set group—Admin, Data Steward, or User—for each Salesforce user. Simplify access control and role-based setup.

## Assigning Delpha Permission Set Groups

To assign the correct permissions in Delpha, follow these steps:

1. **Determine the User’s Persona**: Choose the appropriate role — *Admin*, *Data Steward*, or *User* — based on their responsibilities.
2. **Assign the Permission Set Group**:
   * Go to **Users** in the Salesforce Setup.
   * Find the user and assign one of the following groups:
     * **Delpha Admin** – Full access including Setup and Data Quality tools
     * **Delpha Data Steward** – Access to the Data Quality and Duplicate Steward Views to do mass review / mitigation, Score Meter and Bot
     * **Delpha User** – Access to Score Meter and Bot only
3. **Save your changes** to apply the permissions.

This ensures each user has the appropriate access to Delpha features based on their role.

{% hint style="warning" %}
Do not forget to assign the Delpha Admin permission set group to you
{% endhint %}


# Assign a Delpha licence  to the users

Assign Delpha licenses in Salesforce easily via Installed Packages or directly from user profiles. Ensure your users have access to Delpha features with quick license management.

## Assigning Delpha Licenses in Salesforce

You can assign Delpha licenses using either of the following methods:

### **Option 1: Via Installed Packages**

1. Go to **Setup** in Salesforce
2. In the **Quick Find** box, search for and select **Installed Packages**
3. Find **Delpha** in the list and click **Manage Licenses**
4. Click **Add Users**, select the desired users, and click **Add**

### **Option 2: Via User Profile**

1. Go to **Setup** > **Users** via the **Quick Find** box
2. Click the name of the user you want to license
3. In the **Managed Packages** section, find **Delpha** and click **Assign**
4. Click **Save** to confirm

Both methods will properly activate Delpha access for selected users.

{% hint style="warning" %}

* Do not forget to assign a Delpha license to you
* This step is useless when installing Delpha on a Sandbox org
  {% endhint %}


# Connect the org to Delpha

Connect your Salesforce org to Delpha by using the Delpha Setup app and configuration tab. Fast integration in just a few clicks to enable full platform functionality.

## Connecting Your Salesforce Org to Delpha

To link your Salesforce organization with Delpha's backend services:

1. Open the **Delpha Setup** app in Salesforce
2. Go to the **Delpha Configuration** tab
3. In the **First Steps** section, click **Connect**
4. A new window will open—follow the prompts to authorize and complete the connection

Once connected, Delpha can begin syncing data and enabling core features.

{% hint style="warning" %}
The profile and permissions of the user that performed the connection are going to be used by Delpha. Make sure the user has an administrator profile and will keep the Delpha Licence and Delpha Admin permissions.&#x20;

* We recommend using a dedicated 'technical' user with Admin rights for that step.&#x20;
* This user should not be reused when connecting Sandboxes to Delpha. \
  Using the same user to connect sandboxes will overwrite the current settings. In other words, you will disconnect from Delpha the org (prod or sandbox) where this user has done the initial connection.&#x20;
  {% endhint %}

{% hint style="success" %}
Delpha Technical Setup is done!
{% endhint %}


# Extra Tasks

Check your Salesforce org settings to optimize the use of Delpha to and install the LinkedIn Enrichment connector for enhanced data insights.

## Extra Tasks – Delpha Setup

The **Extra Tasks** section provides additional configuration options to enhance your Delpha experience:

1. **Check my org settings**: [Review key Salesforce org configurations related to Delpha](/delpha-for-salesforce/delpha-setup/extra-tasks/check-my-org-settings)
2. **Install Delpha Connector for LinkedIn Enrichment**: [Set up the connector to enable LinkedIn-based data enrichment](/delpha-for-salesforce/delpha-setup/extra-tasks/install-delpha-chrome-extension)

These tasks help ensure optimal performance and unlock advanced enrichment features.


# Check my org settings

Ensure your Salesforce org settings are properly set to get the best of Delpha

## [Install the Delpha Connected Apps ](broken://pages/MiQpdr6PCeIGHLHrfJAo)(<mark style="color:orange;">Mandatory</mark>)

Starting in early September 2025, Salesforce blocks end users from authorizing or using uninstalled Connected Apps. Only apps that are explicitly installed (or users with special permissions) will work. ([Salesforce](https://help.salesforce.com/s/articleView?id=005132365\&language=en_US\&type=1\&utm_source=chatgpt.com))

#### Why Delpha is impacted

Delpha’s Connected App (`DelphaAssistantV2`) is not installed with the Delpha Assistant package. That makes it an uninstalled application. New users attempting to connect LinkedIn through Delpha will fail until the app is installed (or the user has a bypass permission). ([Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.connected_app_how_to_install.htm\&language=en_US\&type=5\&utm_source=chatgpt.com))

#### Case 1 — The user doing the Delpha connection has the System Administrator profile

1. In **Setup**, open **Connected Apps OAuth Usage**\
   (Quick Find → “Connected Apps OAuth Usage”). ([Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.connected_app_how_to_install.htm\&language=en_US\&type=5\&utm_source=chatgpt.com))
2. Locate `DelphaAssistantV2`.
3. In **Actions**, click **Install** (you’ll typically also see **Block** beside it).
4. Confirm installation. After this, end users can authorize via Delpha normally.

> Tip: In this list, an app showing “Install” is not yet installed; one showing “Uninstall” is already installed.

{% hint style="warning" %}
If you are using a Delpha version below 3.62, you will have to apply the same remediation to the connected app `DelphaApp`
{% endhint %}

#### Case 2 — The user doing the Delpha connection isn’t a System Administrator

1. Create a **temporary Permission Set** that grants the system permission: **Approve Uninstalled Connected Apps**. ([Salesforce Admins](https://admin.salesforce.com/blog/2025/get-ready-for-changes-to-connected-app-usage-restrictions?utm_source=chatgpt.com))
2. Assign this Permission Set to the user who will perform the install.
3. Have that user repeat **Case 1** to click **Install** on `DelphaAssistantV2`.
4. **Remove** the temporary Permission Set after installation.

{% hint style="warning" %}
If you are using a Delpha version below 3.62, you will have to apply the same remediation to the connected app `DelphaApp`
{% endhint %}

#### Notes & validation

* Existing users who previously authorized an uninstalled app may continue working in some cases, but new authorizations are blocked unless the app is installed or the user has the new permission.
* If “Install” isn’t visible, you may already have the app installed (you’ll see “Uninstall” instead), or you’re not viewing from an account with rights to install.
* To double-check, open **Connected Apps OAuth Usage**, select the app, and review **Manage App Policies**. ([Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.connected_app_how_to_install.htm\&language=en_US\&type=5\&utm_source=chatgpt.com))

## Lightning Web Security: activated (<mark style="color:orange;">Mandatory</mark>)

To activate the Lightning Web Security feature in Salesforce:

1. **Access Setup**: Click on the gear icon and select "Setup."
2. **Locate Session Settings**: Enter "Session Settings" in the Quick Find box.
3. **Enable Lightning Web Security**: Scroll to find the "Enable Lightning Web Security" option and check the box.
4. **Save Your Configuration**: Click "Save" to ensure the settings are applied.

{% hint style="warning" %}
In newly created Salesforce orgs, the LWS feature is activated by default.

If you do not activate it, the display of the all the LWC components in the org will be too slow to allow a good user experience.

Delpha's data steward views are LWC components.
{% endhint %}

## Adopt updated CSP directives: unchecked (<mark style="color:orange;">Mandatory</mark>)

To deactivate the Adopt updated CSP Directives setting in Salesforce:

1. **Access Setup**: Click on the gear icon and select "Setup."
2. **Locate Session Settings**: Enter "Session Settings" in the Quick Find box.
3. **Adopt updated CSP directives**: Scroll to find the "Adopt updated CSP directives" option and uncheck the box.
4. **Save Your Configuration**: Click "Save" to ensure the settings are applied.

{% hint style="warning" %}
If this option remain selected, some links provided by Delpha (such as Company logo) will not display properly and will appear as broken links.
{% endhint %}

## Make sure all Delpha users can access User External Credentials Object (<mark style="color:orange;">Mandatory</mark>)

Delpha relies on OAuth for secure authentication that's why, to use Delpha features, the users must be able to access the **User External Credentials Object**.

To activate this access:

* Option 1: For a permission set, under Apps, click **Object Settings**, and then click **User External Credentials**.
* Option 2: For a profile, scroll to Standard Object Permissions and then select **User External Credentials**.

([Salesforce](https://help.salesforce.com/s/articleView?id=xcloud.nc_user_external_credentials.htm\&type=5))

{% hint style="warning" %}
[If this is not done, users will experience a direct failure when requesting a Data Quality Assessment from the Delpha Score Meter.](broken://pages/aciVJ79QyQSU7lcfU90W)
{% endhint %}

## Make sure all Delpha users have the `Modify Named Credentials and External Credentials` permission <mark style="color:orange;">(Mandatory)</mark>

Delpha features that rely on the connection between your org and the Delpha backend require the **system permission** `Modify Named Credentials and External Credentials`.

It can be added at profile level or on a custom permission set.

{% hint style="warning" %}
If this system permission is not granted:

* The org appears disconnected in the Delpha Setup app, even when it is already connected.\
  The **Connect** button stays active, no Delpha user is set, and this does not change after a Delpha admin clicks **Connect**.
* The Delpha user cannot run a record-level data quality assessment because the org appears disconnected for that user.
  {% endhint %}

## Accounts as Campaign Members: enabled (Recommended)

1. **Access Setup**: Click on the gear icon and select "Setup."
2. **Locate Accounts As Campaign Members**: Enter "Accounts As Campaign Members" in the Quick Find box.
3. **Enable Accounts As Campaign Members**: Select the option "Enable"
4. **Save Your Configuration**: Click "Save" to ensure the settings are applied.

{% hint style="warning" %}
This setting is mandatory if you want to deal with Account Enrichment through Delpha Campaigns.
{% endhint %}

## Contacts to Multiple Accounts: enabled (Recommended)

To activate the feature allowing users to relate a contact to multiple accounts in Salesforce:

1. **Navigate to Setup**: Click the gear icon and select "Setup."
2. **Search for Account Settings**: Use the Quick Find box to locate "Account Settings."
3. **Enable the Feature**: Find the "Contacts to Multiple Accounts" option and check the box to enable it.
4. **Save Changes**: Click "Save" to apply the changes.

{% hint style="warning" %}
This setting is recommended when dealing with contacts belonging to different accounts.
{% endhint %}


# Install Delpha Chrome Extension

Install the Delpha Chrome Extension, browser extension to link your LinkedIn account with Delpha and unlock powerful enrichment features. Compatible with Chrome and Edge for seamless integration.

{% hint style="warning" %}

## From Delpha 3.81.x you must upgrade the Delpha Connector extension to the [Delpha Chrome Extension](https://chromewebstore.google.com/detail/delpha-chrome-extension/lcdoffemlkeghcmolmlafbkdiajkllni?hl=fr).

{% endhint %}

## Install the Delpha Chrome Extension

To enable advanced LinkedIn features in Delpha:

* Install the [Delpha Chrome Extension](https://chromewebstore.google.com/detail/delpha-chrome-extension/lcdoffemlkeghcmolmlafbkdiajkllni?hl=fr) - browser extension - from the **Chrome Web Store**
* The extension is compatible with both **Google Chrome** and **Microsoft Edge**
* Once installed, it seamlessly connects your **LinkedIn account** to Delpha, allowing for smoother and more accurate data enrichment

This integration helps automate and enhance LinkedIn data collection within your Delpha workflows.


# Import Conversations

Import conversations into Delpha to enable advanced data quality and deduplication use cases. Select recommended components for full feature coverage and smarter data management.

## Importing Conversations into Delpha

{% hint style="success" %}
For an initial setup, the conversations are automatically imported by applying the step **Delpha Conversations** in the **Delpha Integration** section of the **Delpha Setup** app.\
Later on, you can reimport or update the conversations following the steps below.&#x20;
{% endhint %}

To import [conversations](/delpha-for-salesforce/delpha-apps/delpha-setup/conversations) for use in Delpha’s data quality workflows:

1. Open the **Delpha Setup** app in Salesforce
2. Navigate to the **Import Conversations** tab
3. Select the components you wish to import
4. Click **Import Data** to begin the process

For full functionality, it’s recommended to include the following components:

{% hint style="warning" %}

* **Version 3.56 and onward**: the conversation package Data Quality is **no longer needed**. All the Data Quality topics being handled in the score meter.&#x20;

* **Versions 3.60 and onward**: most of the data quality and duplicate conversations are managed from the Score meter.&#x20;
  {% endhint %}

* `DuplicateLeadWD`

* `DuplicatePersonAccount`

* `LeadVsContact`

* `LinkedInEnrichmentAdvanced`

* `LinkedInEnrichment`

{% hint style="warning" %}

* Additional information on [Delpha Conversations](/delpha-for-salesforce/delpha-apps/delpha-setup/conversations)
* By importing these components you add the Delpha standard conversations to the org. They are all listed in the app Delpha Setup below the [**Conversation Builder**](/delpha-for-salesforce/delpha-apps/delpha-setup/conversation-builder) tab. &#x20;
  {% endhint %}


# Delpha Upgrade

Access Delpha’s release notes to upgrade versions using a package ID and virtual install URL. Quickly apply updates in Salesforce by selecting your desired version from the official documentation.

## Step 1: Check [what's new](/delpha-for-salesforce/delpha-upgrade/whats-new)

## Step 2: Apply the upgrade

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=**<mark style="color:orange;">**VersionId**</mark>
{% endhint %}

## Step 3: [Perform Upgrade tasks](/delpha-for-salesforce/delpha-upgrade/upgrade-tasks)

### From a side release update package

If some scripts must be applied for compatibility topics between versions of Delpha, a side release package and a 'how to' will be provided in the release notes of the target build.

### From Delpha Setup app&#x20;

* Open the Delpha Setup app and select the tab **Delpha Configuration**
* In the section **First Steps**, consider the **Review Configuration** block\
  You will find here all the items that needs a manual update with enough information for a quick application.&#x20;
* Once the updates are done, refresh your page. The section should only display green ticks.


# Up to Build 3.50.6

{% hint style="success" %}

## For Delpha versions later than 3.50.6, [the upgrade steps and new capabilities are in the What's New section. ](/delpha-for-salesforce/delpha-upgrade/whats-new)

{% endhint %}

## Upgrade Delpha Using the Release Notes Document

To upgrade Delpha to a newer version:

1. Open the [**Release Notes**](https://docs.google.com/document/d/1cNZuRZItcgE1v0VEBB28Ti12Ecc5elxpYvLcEIeVgVA/edit?tab=t.0#heading=h.rjscg9vnk9k9) (external document)
2. Select the version you want to install and **copy the Delpha Package ID**
3. Apply the upgrade using the virtual URL method:

```
https://MyOrgName.lightning.force.com/packagingSetupUI/ipLanding.app?apvId=DelphaPackageId
```

Replace `MyOrgName` with your Salesforce org domain and `DelphaPackageId` with the ID from the document.

{% embed url="<https://docs.google.com/document/d/1cNZuRZItcgE1v0VEBB28Ti12Ecc5elxpYvLcEIeVgVA/edit?usp=sharing>" %}


# Upgrade tasks

{% hint style="danger" %}
**Migration steps are not cumulative**. Depending on your initial version, you will have to apply all upgrade tasks listed on the main Build Item (eg: Build 3.58.x), all the way from your current version up to the version you are upgrading to. &#x20;
{% endhint %}


# Build 3.56 (04tRl000001D4hxIAC)

## From all versions below 3.50.6

* Reconnect your Org to Delpha: App **Delpha Setup** / Section: **Delpha Integration** / Click the **Connect** button
* Update conversations: App Delpha Setup / Section: Import Conversation&#x20;
  * Remove Data: Select All conversation package and click on 'Remove Data
  * Import Data: Based on the use cases you are implementing, select your packages : DuplicateAccountsWD, Duplicate ContactWD, DuplicateLeadWD, DuplicatePersonAccount, LeadVsContact, LinkedInEnrichment, LinkedInEnrichmentAdvanced.&#x20;

{% hint style="warning" %}
Do not select the package **Data Quality** as the corresponding [conversations have been integrated to the Score Meter](/delpha-for-salesforce/delpha-upgrade/whats-new/data-quality#new-score-meter-review-and-fix-everything-in-one-place).
{% endhint %}

* [Set the automatic merge schedule for Auto Yes and Steward Yes](broken://pages/St6O0I2fDEiSsXJ8Dy3w#enable-scheduled-merge-job) pairs following these steps&#x20;
  * delete current scheduled tasks involving the Apex class: **DDQ\_DuplicateRecordAutoMerge**
  * from the app Delpha Setup > Duplicate > Initialization, section **Auto Merge Scheduler**, select the hours to run the auto merge.&#x20;
* Apply a migration script.&#x20;

This script updates the existing Duplicate Expressions and Filtering rules and ensure their proper display with the [new Duplicate Settings layout](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate#visual-rule-builder-for-duplicate-management). &#x20;

Open the developer console and apply the following script.&#x20;

```apex
List<delpha__DDQ_DuplicateObject__c> dupObjs = [SELECT Id, Name, delpha__Expression__c FROM delpha__DDQ_DuplicateObject__c];
for(delpha__DDQ_DuplicateObject__c dupObj : dupObjs) {
    String expRuleStr = dupObj.delpha__Expression__c;
    System.debug('Current Rule: ' + expRuleStr);
    
    if(String.isBlank(expRuleStr) || !(expRuleStr.startsWith('[[') && expRuleStr.endsWith(']]'))) { //check here if expRule is in old format (field is not filterable in query)
        continue; //skip if already in new format
    }
    
    List<Object> expRuleList = (List<Object>) JSON.deserializeUntyped(expRuleStr);
    List<Map<String, Object>> newExpRules = new List<Map<String, Object>>();
	Integer i = 1;    
	for(Object rule : expRuleList) {
        Map<String,Object> newRule = new Map<String, Object> {
            'name' => 'Rule ' + i, 
            'rules' => rule
        };
        newExpRules.add(newRule);
        i++;
    }
    System.debug('New Rule: ' + JSON.serialize(newExpRules));
    dupObj.delpha__Expression__c = JSON.serialize(newExpRules);
}
Database.update(dupObjs);
```


# Build 3.58.x

What to do when you upgrade to a 3.58.x build

## Upgrade Steps from any version previous 3.58.0

* Apply the package
* After the main Delpha package is installed, add the **DelphaUpgrade358** package (unmanaged) to your org. It will facilitate the migration process. &#x20;
  * Package Id: 04tRl000001LuppIAC
  * Package URL : **/packaging/installPackage.apexp?p0=**&#x30;4tRl000001LuppIAC

Once the upgrade package is installed, open a developer console and run the script below.&#x20;

```apex
delpha.DDQ_DuplicateSettingsMigration.quickMigration();
```


# Build 3.58.2 (04tRl000001EpLRIA0)

## Duplicate Settings - Migration to the new JSON based format

From this version, the Duplicate Settings have been moved from SObejcts into a unique JSON.&#x20;

This reduces the complexity of Duplicate settings spanned over many objects (mainly DDQ Duplicate Objects, DDQ Duplicate fields...). This change requires a migration step that is made simpler by using a dedicated migration package provided by Delpha.&#x20;

* After the main Delpha package is installed, add the **DelphaUpgrade258** package (unmanaged) to your org. It will facilitate the migration process. &#x20;
  * Package Id: 04tRl000001EAVBIA4
  * Package URL : **/packaging/installPackage.apexp?p0=**&#x30;4tRl000001EAVBIA4

Once the upgrade package is installed, open a developer console and run the script below.&#x20;

```apex
delpha.DDQ_DuplicateSettingsMigration.quickMigration();
```


# Build 3.58.5 (04tRl000001FAmTIAW)

Apply the package.&#x20;

{% hint style="warning" %}
If you are upgrading from a version below 3.58, you must run the [migration script](/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/build-3.58.x)
{% endhint %}


# Build 3.58.6  (04tRl000001FVsXIAW)

Apply the package&#x20;

{% hint style="warning" %}
If you are upgrading from a version below 3.58, you must run the [migration script](/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/build-3.58.x)
{% endhint %}


# Build 3.58.7 (04tRl000001GPzZIAW)

Apply the package&#x20;

{% hint style="warning" %}
If you are upgrading from a version below 3.58, you must run the [migration script](/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/build-3.58.x)
{% endhint %}


# Build 3.58.8 (04tRl000001GhDJIA0)

Apply the package&#x20;

{% hint style="warning" %}
If you are upgrading from a version below 3.58, you must run the [migration script](/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/build-3.58.x)
{% endhint %}


# Build 3.60.x

No migration step when upgrading from 3.58x.


# Build 3.60.1 (04tRl000001IJTRIA4)

Apply the package


# Build 3.60.4 (04tRl000001IyUzIAK)

Apply the package


# Build 3.60.6 (04tRl000001K4lFIAS)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001K4lFIAS`
{% endhint %}


# Build 3.60.7 (04tRl000001LB7xIAG)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001LB7xIAG`
{% endhint %}

## Fixes:

* \[Score meter] Fix tooltip not displaying for bullets
* \[Data steward] Adjust combobox size to fix the content
* \[Data quality] Yellow bullet for unknown is now a triangle
* \[Duplicate] Add missing permission set for duplicate merge editor


# Build 3.70.x

## Upgrade Steps from any version previous 3.63.0

* Apply the package
* After the main Delpha package is installed, add the **DelphaUpgrade363** package (unmanaged) to your org. It will facilitate the migration process. &#x20;
  * Package Id: 04tRl000001JK45IAG
  * Package URL : **/packaging/installPackage.apexp?p0=04tRl000001JK45IAG**

Once the upgrade package is installed, open a developer console and run the script below.&#x20;

```apex
delpha.DDQ_MultiDuplicateSettingsMigration.executeMigration();
```

* If you use a boolean field (e.g., **Do Not Assess**) to exclude certain records from duplicate detection, make sure to update your detection scope in **App Delpha Setup > Duplicate > Detection Settings**, under the [**Record Filter** section](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0#record-filter).

{% hint style="warning" %}
If you skip this configuration, the duplicate analysis will run on ***all*** records, which may consume more credits than intended.
{% endhint %}


# Build 3.70.0 (04tRl000001NAirIAG)

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=04tRl000001NAirIAG**
{% endhint %}

Check [What's New section](/delpha-for-salesforce/delpha-upgrade/whats-new)&#x20;

* [Delpha Setup](/delpha-for-salesforce/delpha-upgrade/whats-new/delpha-setup/build-3.70.0)&#x20;
* [Duplicate](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0)
* [Data Quality](/delpha-for-salesforce/delpha-upgrade/whats-new/data-quality/build-3.70.0)
* [Data Steward View](/delpha-for-salesforce/delpha-upgrade/whats-new/data-steward-views/build-3.70.0)


# Build 3.71.x


# Build 3.71.0 (04tRl000001NF4DIAW)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001NF4DIAW`
{% endhint %}

Check [What's New section](/delpha-for-salesforce/delpha-upgrade/whats-new)

* [Duplicate](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.71.0)


# Build 3.71.1 (04tRl000001NJnlIAG)

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=04tRl000001NJnlIAG**
{% endhint %}

## Fixes

* Duplicates:  customer-specific display issue in Duplicate Data Steward View (Pairs not displayed)


# Build 3.72.x


# Build 3.72.1 (04tRl000001Nh5JIAS)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001Nh5JIAS`
{% endhint %}

## [What's New](/delpha-for-salesforce/delpha-upgrade/whats-new)

* [Score Meter](/delpha-for-salesforce/delpha-upgrade/whats-new/data-quality/build-3.72.1)
* [Duplicate](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.72.1)
  * Detection of duplicates at creation
  * Highlight differences in grouping when merging manually

## Fixes

* **Setup**: review of Delpha permission sets for Apex permissions
* **Score Meter**: fix incorrect duplicate count
* **Steward View**:
  * Cosmetic & Consistency
  * True / false value properly set when creating a filter involving a boolean
* **Setup**: Add Ultimate tokens to the count of tokens.


# Build 3.73.x


# Build 3.73.3 (04tRl000001OfizIAC)

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=**&#x30;4tRl000001OfizIAC
{% endhint %}

## Fixes

* **Duplicate**
  * Scheduled delta analysis not always triggered&#x20;
  * Real time duplicate detection not working when an exact includes a boolean (asynchronous detection is ok) &#x20;


# Build 3.74.x


# Build 3.74.1 (04tRl000001PP5tIAG)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001PP5tIAG`
{% endhint %}

## What's New

* **Data Quality for Lead:** the lead data is an hybrid of contact (Name, Email, LinkedIn profile, phone) and account (Legal Id, LinkedIn, Website, phone) data.
  * [Dedicated setup in Delpha Setup app](/delpha-for-salesforce/delpha-apps/delpha-setup/delpha-configuration/data-quality-lead)
  * [Data quality fields for data analysis and recommendations](/delpha-for-salesforce/how-to-faq/delpha-data-quality/data-quality-on-salesforce-leads)
  * Data Steward view
  * Score Meter view

{% hint style="warning" %}

* LinkedIn **enrichment** is not supported for Leads
* **Mass analysis** of Leads cannot be done with a Campaign. You must rely on the [global settings of Lead Data Quality](/delpha-for-salesforce/delpha-apps/delpha-setup/delpha-configuration/data-quality-lead#key-configuration-areas) or on the Steward view 'Analyse' feature
  {% endhint %}

- **Duplicate**
  * New UI for Merge Field Rules creation
  * Improve Merge Field Rule issue detection
  * Enhancement of the merge editor:
    * better difference display, especially in groupings
    * displays the same data as the Steward View
  * Updated Merge Field rules templates
- **Steward View**
  * Better filtering options for dates
  * List view menu is now searchable
  * Enable Long Text fields display for data stewards.\
    For example, when reviewing a Legal ID, you can now view the current address alongside the Legal ID recommended address for easier decision making.


# Build 3.76.x


# Build 3.76.1 (04tRl000001R0PxIAK)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001R0PxIAK`
{% endhint %}

## **What's New**

* **Duplicate**:
  * New status for a pair that becomes invalid after one of its members is deleted due to another merge. This pair, once removed, is now being monitored.

    <table data-header-hidden><thead><tr><th width="151">Status</th><th width="138">Processed</th><th>Comment</th></tr></thead><tbody><tr><td><strong>Status</strong></td><td><strong>Processed</strong></td><td><strong>Comment</strong></td></tr><tr><td>Auto No</td><td>True</td><td>Associated record 001an00000ayYNlAAM was merged or deleted by user</td></tr></tbody></table>
  * Template of Account duplicate settings enhanced.
  * Enhancing Merge Rule Invalidity Detection
  * Auto merge job scheduler is now per setting instead of global

<div align="left"><figure><img src="/files/Y8XPaDPpDN0W7YyO6TGY" alt="" width="361"><figcaption></figcaption></figure></div>

## **Fixes**

* **Duplicate**:
  * Fix pair becoming invalid after merging another pair with related record
* **Data Steward View**
  * Error when sharing a view being a standard SFDC user profile
  * Billing & Shipping Address: Mass apply / reject from the data steward view is no longer failing.


# Build 3.77.x


# Build 3.77.1 (04tRl000001SX8XIAW)

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=**&#x30;4tRl000001SX8XIAW
{% endhint %}

## What's New

* **Duplicate Setup: New organisation of Duplicate Settings**

{% columns %}
{% column %}

<figure><img src="/files/T1xLtROln5YxloQnr9LF" alt=""><figcaption></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="/files/ZFwCY8UjiKe99MkIUp0C" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

* **Duplicate: Update on Auto No Pair Processing**

"Auto No pairs" or "Discarded Pairs" can now be managed directly in the merge editor when a custom merge is required. The mass processing feature from the Duplicate Data Steward view remains available.

<figure><img src="/files/IIsQRXLCF5CH9tGYlcC8" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
This feature is exclusively for Delpha Admins and Delpha Data Stewards. It is controlled through a specific permission set. For more information, please contact Delpha.
{% endhint %}

## Fixes

* **Data Quality**: Do not evaluate fields with the status set to "DoNotAssess." The global Do Not Assess feature, which limits the overall record analysis scope, functions properly and remains unaffected.
* **Data Quality**: Fix score computation when applying recommendation from the score meter.


# Build 3.79.x


# Build 3.79.1 (04tRl000001XmDNIA0)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001XmDNIA0`
{% endhint %}

## **What's New**

### Duplicate Settings

* You can now provide a **description** when creating or editing duplicate settings. This description is also used in the Merge Record On Demand feature.
* When defining your duplicate population using the Record Filter section, the **count of targeted records** now appears in the section header.
* You can now enable or disable the filtering rules.

### Duplicate - Merge Editor

[**Merge Records on Demand**](/delpha-for-salesforce/how-to-faq/delpha-duplicate/how-can-i-merge-records-on-demand)

If you're a Delpha data steward or admin, you can merge records on demand. To do this:

1. Open a record.
2. In the Delpha Score Meter, click the "Duplicate" link.
3. Click the "Add Duplicate" button.
4. In the new window, select the second record and choose the duplicate settings.
5. Confirm the pair and proceed in the Merge Editor.

{% hint style="info" %}

* To select a record, use its ID or name.
* Delpha evaluates duplicate settings to see which is suitable for your record, but you can choose any setting even if it doesn't align with your data.
  {% endhint %}

**Check Duplicate settings compatibility**\
In the merge editor, when merging multiple potential pairs, Delpha checks for duplicate settings compatibility. It will alert you of any issues and halt the merge process until resolved.

## **Fixes**

### Duplicate Settings

* The comment set in an Exact Match rule is now visible in both the Duplicate Data Steward view and the Merge Editor.

### Conversations

The conversation list from the Delpha setup has been updated to align with the Score Meter enhancements.


# Build 3.82.x

Includes Salesforce-aligned security enhancements, a shift to JSON data structures for recommended values, and a new Chrome extension. Migration scripts from versions prior to 3.80.0 are provided.

## Delpha Update Notice: Version 3.82.x

{% hint style="warning" %}
**Important:** This version includes significant updates. Please follow the upgrade instructions to continue using Delpha.
{% endhint %}

## Upgrade Instructions f**rom all versions Pre-3.80.0**

### **Data Structure Migration**

* Install the latest available Delpha package Delpha 3.82.x &#x20;
* Install the **DelphaUpgrade382** (version 1.3) unmanaged package to assist with migration.
  * Package ID: `04tRl000001hu6PIAQ`
  * Package URL: `/packaging/installPackage.apexp?p0=04tRl000001hu6PIAQ`
* Execute the following scripts in the developer console (with 200 being the Integer batch size):&#x20;

  ```apex
  delpha.DDQ_DataQualityShowMoreMigration.startMigration(200);
  ```

{% hint style="info" %}
If you want more control on the upgrade process, you can select and run the components manually from the list below.&#x20;
{% endhint %}

```
Integer batchSize = 500;
// Name
delpha.DDQ_DataQualityShowMoreMigration.startMigrationName('Contact', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationName('Lead', batchSize);
// Email
delpha.DDQ_DataQualityShowMoreMigration.startMigrationEmail('Contact', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationEmail('Lead', batchSize);
// Website
delpha.DDQ_DataQualityShowMoreMigration.startMigrationWebsite('Account', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationWebsite('Lead', batchSize);
// LinkedIn
delpha.DDQ_DataQualityShowMoreMigration.startMigrationLinkedIn('Account', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationLinkedIn('Contact', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationLinkedIn('Lead_Account', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationLinkedIn('Lead_Contact', batchSize);
// Address
delpha.DDQ_DataQualityShowMoreMigration.startMigrationAddress('Account_Billing', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationAddress('Account_Shipping', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationAddress('Contact', batchSize);
delpha.DDQ_DataQualityShowMoreMigration.startMigrationAddress('Lead', batchSize);
// Ultimate
delpha.DDQ_DataQualityShowMoreMigration.startMigrationUltimate(batchSize);
// LegalId
delpha.DDQ_DataQualityShowMoreMigration.startMigrationLegalId(batchSize);
```

### **New Delpha Chrome Extension**&#x20;

If you're using the Chrome browser extension for job tracking or lead generation, uninstall the old **Delpha LinkedIn Connector.** Install the brand new [**Delpha Chrome Extension**](https://chromewebstore.google.com/detail/delpha-chrome-extension/lcdoffemlkeghcmolmlafbkdiajkllni) from the Chrome webstore which features enhanced stability and fewer disconnections

{% hint style="warning" %}
After completing the upgrade steps, navigate to the Delpha Setup app to verify if your organization remains connected.
{% endhint %}

## What's New

### **Security Enhancements**

Delpha now includes enhanced security features in line with Salesforce's latest guidelines. See [Salesforce Security Recommendations](https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/secure_code_ac_eca.htm) for detailed information. All versions from 3.80.0 onward comply with these updates.

> **Important Connection Notice**
>
> Due to recent **Salesforce security enforcements**, the connection architecture between your Salesforce Org and Delpha has been completely redesigned.
>
> We strongly recommend checking your connection status whenever a problem or data disruption appears. If your org shows as **disconnected**, please notify the Delpha team.
>
> **Action Required:** You must reconnect your environment to continue using Delpha services without interruption.

### **Data Structure Changes**

To provide richer insights and better decision-making capabilities, Delpha has upgraded its recommendation engine. Instead of overwriting a field with a single suggested value, Delpha now utilizes a structured JSON approach.

**Why the switch?**

1. **Multiple Options**: Instead of forcing a single choice, the system can now return a list of the top potential matches, allowing users to select the most accurate one.
2. **Rich Context**: Recommendations now carry extensive metadata (like revenue, employee count, and registered addresses) so users can confidently verify the suggestion before applying it.

Example: Legal Id

* **Before 3.82.x:** Recommended values for D Legal Id were stored in  `account.delpha__DDQ_QualityLegalIdRecommended__c`.
* **From 3.82.x:** REcommended Values are now stored as JSON in `account.delpha__DDQ_QualityLegalIdRecommendedData__c`.

This change allows users to access comprehensive recommendation data upon acceptance. For further details, refer to the [<mark style="color:$primary;">Documentation on Data Quality Field Structure</mark>](/delpha-for-salesforce/how-to-faq/delpha-data-quality/delpha-data-quality-field-pack-for-salesforce) and the [<mark style="color:$primary;">Score Meter</mark>](https://help.delpha.io/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/pages/TXkLPi5ENGXFxkUoaHiu#id-2.-data-quality-review-and-apply-suggestions-inline)<mark style="color:$primary;">.</mark>


# Build 3.82.1 (04tRl000001grovIAA)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001grovIAA`
{% endhint %}

### What's New

* **Data Quality**
  * New Json structure for data quality recommendations
* **Score Meter**
  * Show more option to display extra recommendations.
* **Ultimate**:
  * New algorithm
* **LinkedIn Connector**
  * Now relies on the new [Delpha Chrome Extension](/delpha-for-salesforce/delpha-setup/extra-tasks/install-delpha-chrome-extension)


# Build 3.82.2 (04tRl000001h8xpIAA)

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=**&#x30;4tRl000001h8xpIAA
{% endhint %}

### What's Fixed&#x20;

* **Ultimate account**: No Ultimate recommendation proposed in the data steward view when no potential match is found in the org.&#x20;

{% hint style="warning" %}
Update is recommended if you are using or plan to use Ultimate Accounts.&#x20;
{% endhint %}


# Build 3.83.x

{% hint style="warning" %}
If you are upgrading from a version below 3.80, you must follow the [Upgrade Instructions f**rom all versions Pre-3.80.0**](https://help.delpha.io/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/pages/Ow1K3NRTnSrybFHSpov5#upgrade-instructions-from-all-versions-pre-3.80.0)
{% endhint %}


# Build 3.83.0 (04tRl000001iVifIAE)

{% hint style="info" %}
Add this segment to your org url.&#x20;

**/packaging/installPackage.apexp?p0=**&#x30;4tRl000001iVifIAE
{% endhint %}

## What's New&#x20;

### Score meter&#x20;

* **Connection Status**: If your org is no longer connected to Delpha, a visual sign will be displayed on the Data Quality Refresh button that becomes inactive until [the connection is re-established](/delpha-for-salesforce/delpha-setup/install-delpha/connect-the-org-to-delpha). \
  ![](/files/PkbBv2jwSCjdQulm5xMC)&#x20;
* **Cancel Data Quality Refresh**: You can now stop the data quality assessment by mouse hovering the Data Quality refresh button while Delpha is assessing the record. A click on Cancel will stop the assessment. \
  ![](/files/zJxg0x1GpZvtsXmbCmPn)

{% hint style="warning" %}
This new feature requires the system permission [`Allows users to modify Named Credentials and External Credentials` ](/delpha-for-salesforce/delpha-setup/extra-tasks/check-my-org-settings#make-sure-all-delpha-users-have-the-permission-allows-users-to-modify-named-credentials-and-external)
{% endhint %}


# Build 3.85.x

{% hint style="warning" %}
If you are upgrading from a version below 3.80, you must follow the [Upgrade Instructions f**rom all versions Pre-3.80.0**](https://help.delpha.io/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/pages/Ow1K3NRTnSrybFHSpov5#upgrade-instructions-from-all-versions-pre-3.80.0)
{% endhint %}


# Build 3.85.0 (04tRl000001k1mvIAA)

{% hint style="info" %}
Add this segment to your org url.

**/packaging/installPackage.apexp?p0=**&#x30;4tRl000001k1mvIAA
{% endhint %}

## What's New

### Data Enrichment

* **Support annual revenue enrichment.**\
  Delpha can now enrich annual revenue when the source provides it.

### Duplicate

* **Allow non-filterable fields in merge field rules.**\
  You can now add data quality JSON fields to grouped Merge Field Rules and hide them in the Merge Editor.

### Data Steward View

* **Add a Description column for LinkedIn and Website recommendations.**\
  This column gives data stewards extra context when the score alone is not enough.

### Ultimate Account

* **Add data quality dimensions to Ultimate Account.**\
  Ultimate Account analysis now covers six data quality dimensions. Uniqueness is excluded because it does not apply.


# Build 3.88.x

{% hint style="warning" %}
If you are upgrading from a version below 3.80, you must follow the [Upgrade Instructions f**rom all versions Pre-3.80.0**](https://help.delpha.io/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/pages/Ow1K3NRTnSrybFHSpov5#upgrade-instructions-from-all-versions-pre-3.80.0)
{% endhint %}


# Build 3.88.2 (04tRl000001mmD3IAI)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001mmD3IAI`
{% endhint %}

## What's New

{% hint style="warning" %}
If you are upgrading from a version below 3.80, you must follow the [Upgrade Instructions f**rom all versions Pre-3.80.0**](https://help.delpha.io/delpha-for-salesforce/delpha-upgrade/upgrade-tasks/build-3.88.x/pages/Ow1K3NRTnSrybFHSpov5#upgrade-instructions-from-all-versions-pre-3.80.0)
{% endhint %}

### Duplicate

* **Improved filtering rule cleanup**
  * You can now delete a Filtering Rule even if one of its fields was removed from the matching fields, leaving the rule inconsistent.
  * The Filtering Rule editor now prevents non groupable fields in Exact Match rules, which previously lead to an error while processing the duplicates.\*
* **Improved Merge Field rules**
  * You can now use a formula fields as selection field in a grouping rule.

### Data Quality

* **Replace quick actions with LWC**\
  The Delpha tabs, displaying the data quality information on the record, are now managed by a LWC component. Most visible improvement is that this LWC component will be updated automatically when upgrading to a new Delpha version. No more zzz fields in your display.\
  Using this LWC component to add [Delpha fields to your standard layout](/delpha-for-salesforce/how-to-faq/delpha-integration/how-can-i-add-delpha-fields-in-my-standard-layout) is even easier now.

{% hint style="warning" %}

* If you customized the Delpha pages in the Delpha Data Quality app, this update does not apply. Replace the current quick actions with the LWC component manually.
* If you use Delpha quick actions on another page, replace them with the LWC component manually.
  {% endhint %}

### LinkedIn

* **Stability improvement on the LinkedIn connection.**\
  This requires the new [Delpha Chrome Extension](/delpha-for-salesforce/how-to-faq/delpha-linkedin-connector/how-can-i-connect-my-linkedin-account-to-delpha#step-by-step-setup) to work properly


# Build 3.89.x

{% hint style="warning" %}
If you are upgrading from a version below 3.88.x, we recommend you update your Delpha field layout using the new LWC component: Delpha Data Display\
Check this article to add [Delpha fields to your standard layout](/delpha-for-salesforce/how-to-faq/delpha-integration/how-can-i-add-delpha-fields-in-my-standard-layout).
{% endhint %}


# Build 3.89.0 (04tRl000001qQ97IAE)

{% hint style="info" %}
Add this path to your org URL:

`/packaging/installPackage.apexp?p0=04tRl000001qQ97IAE`
{% endhint %}

## What's new

{% hint style="warning" %}
**Delpha Bot** is deprecated. Its conversations are now managed from the Score Meter.

Only the Duplicate Lead vs Contact conversation remains required. If you do not use it, remove Delpha Bot from your FlexiPages.
{% endhint %}

### Delpha Data Quality App

* Removed the **User Settings** and **Duplicate Cases** tabs.

### Data Enrichment

* Run a data quality refresh to launch Account or Contact Enrichment.
  * The **Enrich Account Details** and **Enrich Contact Details** conversations are deprecated. Deactivate them.
* Added the **Revenue** and **Employee Count** fields to the Account Profile layout.

{% hint style="warning" %}
The **Revenue** information is only available when the account has been created from a Sales Navigator Delpha Campaign.&#x20;
{% endhint %}

### Duplicates

* Enhanced Merge Field Rules analysis and troubleshooting.


# What's New

This section helps users quickly access the latest improvements across the platform.

The **"What's New"** section is organized by key feature areas, making it easy to browse recent updates and improvements. Each item links to a dedicated page summarizing the latest changes and enhancements for that component:

* **Delpha Setup** – [Updates related to initial configuration and global settings](/delpha-for-salesforce/delpha-upgrade/whats-new/delpha-setup).
* **Duplicate** – [Enhancements to duplicate detection and resolution workflows](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate).
* **Data Quality** – [Improvements in data assessment and cleaning functionalities](/delpha-for-salesforce/delpha-upgrade/whats-new/data-quality).
* **Data Steward Views** – [Changes in how data stewards can manage, filter, and act on data](/delpha-for-salesforce/delpha-upgrade/whats-new/data-steward-views).

This structure helps users quickly find what’s relevant to their role or workflow.

{% hint style="info" %}
Note that if a version does not impact one of the Delpha components it will not be listed in the corresponding section.&#x20;
{% endhint %}


# Delpha Setup

Explore all the latest updates to the Delpha Setup app here.


# Build 3.56

## **More Logical Sidebar Organization**

in the App **Delpha Setup**, the left-hand menu is now grouped by functional categories (e.g., *Data Quality*, *Duplicates*, *Conversations*), making navigation more intuitive and setup tasks easier to locate.

## Improved “Connect to Delpha” Mechanism

Previously, Delpha asynchronous operations were executed either:

* on behalf of the user who connected the org to Delpha, or
* via the Salesforce **Automated Process user**, which introduced several limitations:
  * No clear audit trail for changes made by Delpha
  * Inability to assign **Permission Set Groups** to the Automated Process user
  * Reduced visibility and control for admins

✅ **Now**, a dedicated named user is explicitly selected during the setup. All actions performed by Delpha will consistently appear under that user’s name, providing:

* Clear traceability of changes
* Full permission customization and access control
* Alignment with Salesforce best practices for automated systems

{% hint style="warning" %}
When upgrading to version **3.53.x or later** from **3.50.x or earlier**, you will need to **reconnect Delpha** as part of the setup process.
{% endhint %}

## **Faster Setup**

* **No email activation required**: You no longer need to Activate Delpha sending an email to activate core features, simplifying the onboarding process.
* **Conversations are now automatically imported** once Delpha is connected, eliminating the need for manual setup steps.

## Locked Records tab

Salesforce Validation Rules set on a record can fire an error and prevent Delpha from updating it. When this happens in a batched process, the whole batch is rejected. The system now more reliably handles these situations to minimize disruption in workflows by catching the error and logging the record ans the error message in the Locked Records table so you can take care of it later. This allows the other members of the batch to be properly updated.&#x20;

{% hint style="info" %}
&#x20;A locked record is **ignored** by Delpha Data Quality as long as it is listed. You must delete the entry from the Locked Record table to let Delpha process the records.&#x20;
{% endhint %}


# Build 3.70.0

### \[Ultimate]

* App Delpha Setup > Data Quality > Account

<div align="left"><figure><img src="/files/PaIDHaoFOTEEAgzBmCn1" alt="" width="324"><figcaption></figcaption></figure></div>

Once the Ultimate toggle is activated, you can manually trigger a reassessment of the Ultimate analysis. &#x20;

### \[LinkedIn]&#x20;

* App Delpha Setup > Data Quality > Contact > LinkedIn&#x20;

<div align="left"><figure><img src="/files/LHo40DH6uni5cZ0BMgOt" alt="" width="313"><figcaption></figcaption></figure></div>

If **Active**, the system will proceed to replace the existing contact title with the new one from LinkedIn, based on the prioritization logic below.

* <mark style="background-color:$info;">`None, do not update the title`</mark>: The system fetches the data but does not push any update to the title field.
* <mark style="background-color:$info;">`Only update with the latest Job Title`</mark>: The system applies the most recent title from the contact's job history.
* <mark style="background-color:$info;">`Only update with the Profile Title`</mark>: The system applies the title listed on the main LinkedIn profile (often the headline).
* <mark style="background-color:$info;">`Prioritize latest Job Title, else use Profile Title`</mark>: The system attempts to apply the latest Job Title first. If it's missing or invalid, it defaults to the Profile Title.
* <mark style="background-color:$info;">`Prioritize Profile Title, else use latest Job Title`</mark>: The system attempts to apply the Profile Title first. If it's missing or invalid, it defaults to the latest Job Title.

### \[Duplicate]&#x20;

* App Delpha Setup > Data Quality > Duplicate\
  Duplicate settings have been separated into two distinct categories: **Detection Settings** and **Merge Settings**.
* App Delpha Setup > Data Quality > Duplicate > Detection Settings

<div align="left"><figure><img src="/files/yL25ik3rElXnADteGDgP" alt="" width="358"><figcaption></figcaption></figure></div>

[All duplicate detection settings are now consolidated within this new section, with parameters grouped by topic into sub-sections.](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0#detection-settings)


# Duplicate

Explore all the latest updates to the Delpha Duplicate use case here.


# Build 3.56

## Single stop for Duplicate setup

All the settings are now available in one single place, in the **Duplicates** section of the Delpha Setup app.&#x20;

## Visual Rule Builder for Duplicate Management

We’ve redesigned the **Duplicate Settings** interface to make it more intuitive and user-friendly.

**Before:**\
Managing duplicate filtering and matching logic required editing complex JSON structures manually.

**Now:**

<figure><img src="/files/52CQMt12tonzCdTF0lE1" alt=""><figcaption><p>Filtering rule editor</p></figcaption></figure>

{% hint style="warning" %}

* Filtering rules are applied from Top to Bottom. Once a rule is applied the filtering processing stops.&#x20;
* You can reorder the rules by drag / drop. We recommend packing the 'Keep' rules at the end of the list, after all the 'Discard' rules.
  {% endhint %}

<figure><img src="/files/VDCw4BoeiP0s85Qd2XLZ" alt=""><figcaption><p>Direct Match rule Editor (Expression)</p></figcaption></figure>

With the new **visual rule builder**, you can:

* Define **Filtering Rules** and **Matching Expressions** using clear, editable blocks.
* Instantly see and adjust logic with intuitive field comparisons (e.g., “if BillingCity is not the same…”).
* Remove the risk of syntax errors—no more editing raw JSON!
* Enjoy a more organized layout for thresholds, filters, and expressions.

{% hint style="success" %}
Existing rules have been migrated automatically—just open the new interface to start using it right away.
{% endhint %}


# Build 3.58.2

## Suggested Discard Value

[With Delpha, you can chose to discard and ignore some labels which values are not accurate and can lead to useless extra processing or false positives.](/delpha-for-salesforce/how-to-faq/delpha-duplicate/how-can-i-discard-values-when-detecting-duplicates#solution-use-discard-values)

Form now on, Delpha performs an analysis on your targeted duplicate population and proposes you to discard in one click all values that may trigger too much pairs.  Thsi information is displayed in the app Delpha Setup > Duplicate > Object Settings, in the **Properties** section of each object.&#x20;

You can&#x20;

* accept the recommendation by clicking on the **Discard Value** button. That will add the string to the Discard Values section.&#x20;
* ignore the recommendation&#x20;


# Build 3.58.6

This build introduces some enhancement in the display of the Duplicate Data Steward pairs. Loading time is divided by 2.


# Build 3.58.7

This version provides a fix on the mass process from the Duplicate Data Steward view: some duplicate records pairs could be deleted before or after being processed

{% hint style="warning" %}
This issue is only impacting the display of the duplicate pairs. No record is wrongly deleted because of it.&#x20;
{% endhint %}


# Build 3.60.1

## Process Duplicates from the Score Meter & Merge process New UI

For **Accounts** and **Contacts**, processing of Duplicates at record level is now part of the Score Meter. It is no longer done in a conversation but in a dedicated layout.&#x20;

{% hint style="warning" %}
The Duplicate standard conversations for Account and Contact are now deprecated. [You should remove them from your org.](/delpha-for-salesforce/delpha-apps/delpha-setup/conversations#importing-conversation-modules-for-delpha-bot)
{% endhint %}

3 step process:&#x20;

Click on the link and enter the Duplicate process.

<div align="left"><figure><img src="/files/m7hOcBwIa4rXREXLlHXt" alt="" width="307"><figcaption></figcaption></figure></div>

Select the potential duplicate candidate or discard the candidates

<figure><img src="/files/TK0EgMvCJ1zdInQ4M3xg" alt=""><figcaption></figcaption></figure>

Select the Master record, review and select the data you want to keep and merge

{% hint style="warning" %}
All the pre-selected values come from the rules set in the [Duplicate Merge section of the Duplicate Setup. ](/delpha-for-salesforce/use-cases-setup/duplicate/duplicate-merge)
{% endhint %}

<figure><img src="/files/aJMz2ulYU3IhMimyLKHB" alt=""><figcaption></figcaption></figure>


# Build 3.60.4

Fix some limitations related to the Auto Number fields when used in Expression or Filtering rules.&#x20;


# Build 3.60.6

Fix some display issued on Cross Merge Field Rules. &#x20;


# Build 3.60.7

* Add missing permission set for duplicate merge editor.


# Build 3.70.0

## Multiple settings for each handled object

Duplicate Settings now support multiple configurations.\
[You can define a dedicated scope for each configuration using advanced rules in the **Record Filter** section.](#record-filter)

Each configuration runs its own full duplicate assessment, and the results appear separately in the **Duplicate Data Steward View**.

To create a new Duplicate Setting, click **Add New**, choose the target object, and decide whether to start from the Delpha default template for detection and merge settings.\
You can also duplicate an existing configuration using the **Clone** option.

## Detection Settings

### General Settings

<table data-header-hidden><thead><tr><th width="163"></th><th width="172"></th><th></th></tr></thead><tbody><tr><td><strong>Setting</strong></td><td><strong>Status/Value</strong></td><td><strong>Explanation</strong></td></tr><tr><td>Activate Duplicate Detection</td><td>Active (Toggle On)</td><td>This is the master switch. Duplicate detection is currently enabled and running based on the configured rules.</td></tr><tr><td>Run Evaluation</td><td>Evaluate (Button)</td><td>This is the action button used to manually trigger the duplicate detection process. When clicked, the system scans the records and flags potential duplicates according to the rules and threshold.</td></tr><tr><td>Detection Threshold</td><td>50</td><td>This sets the minimum match score for a pair of records to be flagged as potential duplicates. Pairs must have a score <span class="math">$\ge 50$</span> (on a likely 0-100 scale) to be surfaced for review. A lower number flags more potential duplicates.</td></tr></tbody></table>

### Record Filter

The goal of the Record Filter is to limit the scope of the duplicate scan, ensuring the system only checks records that meet specific criteria you define.

#### 1. Filter Logic

* Filter Logic: This area allows you to combine multiple individual conditions using boolean operators (`AND`, `OR`, `NOT`) to create complex filtering rules.
* e.g., 1 AND (2 OR 3): This example illustrates how the logic works. It means:
  * Condition 1 must be true, AND
  * Either Condition 2 OR Condition 3 must be true.
  * *The numbers (1, 2, 3) refer to the individual conditions defined below.*

#### 2. Adding Conditions

* Search Input Field: You use this to find and select a field name from your database (e.g., `Status`, `Creation Date`, `Region`).
* Add Condition Button: Once you select a field, you click this button to add a new condition row.
* Condition Rows (implied below the image): Each row will typically let you:
  1. Select a Field (e.g., `Record Status`).
  2. Select an Operator (e.g., `Equals`, `Is Not Null`, `Is Greater Than`).
  3. Enter a Value (e.g., `Active`).

Example Use Case:

You might set up a filter to only check records where:

1. `Status` Equals `Customer`
2. AND `Last Modified Date` Is Greater Than 90 days ago

This filter ensures the duplicate detection process only runs on active customer records that have been modified recently, saving processing time.

{% hint style="warning" %}
If you use a boolean field (e.g., **Do Not Assess**) to exclude certain records from duplicate detection, make sure to update your detection scope in **App Delpha Setup > Duplicate > Detection Settings**, under the **Record Filter** section.\
If you skip this configuration, the duplicate analysis will run on *all* records, which may consume more credits than intended.

You will have to set up a filter to only check records where:

1. `Do Not Assess` Equals `False`
   {% endhint %}

### Filtering Rules

The purpose is  to apply specific rules *before* potential duplicates are reviewed and merged.&#x20;

The rules are divided into different Rule Types that trigger specific actions:

<table data-header-hidden><thead><tr><th width="143"></th><th width="238"></th><th></th></tr></thead><tbody><tr><td><strong>Rule Type</strong></td><td><strong>General Purpose</strong></td><td><strong>Action Taken</strong></td></tr><tr><td><strong>EXACT MATCH</strong></td><td>Used to automatically flag a pair as a certain duplicate if they have an exact match on high-certainty identifiers.</td><td>If the specified conditions are met, the system automatically considers them as perfect duplicates. The score is set to the maximum (100), the Status is set to Auto Yes and a specified comment is added. This can prepare them for automatic or priority merging.</td></tr><tr><td><strong>DISCARD</strong></td><td>Used to prevent a pair of records from being considered duplicates if they match a specific rule. </td><td>If the values in the specified field(s) match, the system discards the pair.  The Status is set to Auto No. The pair is not proposed to the Delpha User and can only be processed (accepted or rejected) by the Data Steward. </td></tr><tr><td><strong>KEEP</strong></td><td>Used to automatically flag a a pair by adding a comment if they match a specific rule.</td><td>When a pair of records meets the criteria of a KEEP rule, the system retains the pair in the set of potential duplicates and add a specific comment. </td></tr></tbody></table>

### Matching Fields

The Matching Fields configuration, is the core mechanism used by the application to calculate the numerical Duplicate Score for any pair of records. This section defines what fields matter and how much they matter when determining if two records are duplicates.

[These fields are involved in the score calculation. ](/delpha-for-salesforce/how-to-faq/delpha-duplicate/how-does-the-duplicate-scoring-work)

### Advanced Settings

This screen shows the Advanced Settings for duplicate detection. This section provides granular control over how the system initially screens for duplicates, cleans data for scoring, and manages duplicate creation in real-time.

#### 1. Screening Fields

Purpose is to quickly filter the large pool of records down to a smaller, more relevant subset before the full, weighted matching score calculation (from the "Matching Fields" section) is performed. This significantly improves performance.\
The system performs a fast initial match (relying on Name). If the name match is inconclusive, it uses these Screening Fields (e.g., ZIP Code, First Letter of Company Name) to narrow down which records should proceed to the full scoring calculation.

#### 2. Discard Placeholder Values

Purpose is to prevent "dummy" or default values in your records from artificially inflating or skewing the duplicate match score.

You can enter common placeholders that should be ignored into the input field or directly select them from the proposed values.

<div align="left"><figure><img src="/files/rc7yHVJGZRuu3ofDFiJK" alt="" width="335"><figcaption></figcaption></figure></div>

#### 3. Duplicates at Creation

Define the system's immediate response when a user attempts to create a new record that matches an existing record. This is a crucial real-time defense against data decay.

You choose an option from the dropdown menu to determine what action the system takes:

<table data-header-hidden><thead><tr><th width="186"></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Option</strong></td><td><strong>System Action</strong></td><td><strong>Outcome</strong></td></tr><tr><td>Allow (Async Detection)</td><td>(Default/Least Restrictive) The record is created immediately.</td><td>The duplicate check runs after creation, and the record is flagged for later review.</td></tr><tr><td>Block (Prevent Creation)</td><td>(Most Restrictive) The system performs a real-time check. If an <a href="#filtering-rules">exact match </a>is found, it stops the creation process and forces the user to resolve the conflict (e.g., update the existing record).</td><td>Creation is prevented, ensuring no new duplicates enter the system.</td></tr></tbody></table>


# Build 3.71.0

## UI - UX

Sections on Duplicate Setup (App Delpha Setup > Duplicates > Detection Settings) have been reorganized.

1. [Define the scope for these duplicate settings](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0#record-filter)&#x20;
2. [Define the fields involved in the duplicate detection process](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0#matching-fields)
3. [Define the filtering rules to apply on top of the duplicate detection (exact match, discard, comment)](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0#filtering-rules)
4. [Define advanced optional settings. ](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.70.0#advanced-settings)

<div align="left"><figure><img src="/files/pSS1hChAyOzQv1DZt1TJ" alt="" width="359"><figcaption></figcaption></figure></div>


# Build 3.72.1

## Duplicate check at creation

is now available from the General Settings bloc in App: Delpha Setup > Duplicate > Detection Settings

<div align="left"><figure><img src="/files/AM5N5zeCr2AWzV8L0KAM" alt="" width="365"><figcaption></figcaption></figure></div>

## New display rules for the Merge Editor

* For an easier analysis, Candidates values are displayed in red when they are different from the Master values.&#x20;

<div align="left"><figure><img src="/files/USlW4qisjf4fWtKT0s35" alt="" width="354"><figcaption></figcaption></figure></div>

* In groupings, Candidates grouped values are displayed in red when they are different from the Master grouped values

<div align="left"><figure><img src="/files/vnMXjOzE5EXd0YhgKNJk" alt="" width="355"><figcaption></figcaption></figure></div>


# Data Quality

Explore all the latest updates to the Delpha Data Quality use case here.


# Build 3.56

## New Score Meter: Review & Fix Everything in One Place

[The Score Meter has been redesigned](/delpha-for-salesforce/delpha-apps/delpha-score-meter) to simplify your workflow and make issue resolution faster and more intuitive:

* **Before**: You had to switch between the Score Meter and the Bot to review and apply corrections.
* **Now**: Everything happens directly in the Score Meter — **review**, **select**, and **apply** corrections all in one place.
* **New interface**: Cleaner, clearer, and optimized for batch actions. You can now apply changes to **1 / some / or all** suggestions with just a few clicks.

No more back and forth. Just smarter data review in a single streamlined experience.

Try it out now and speed up your remediation process!


# Build 3.58.2

## Legal Id types&#x20;

2 new Legal Ids types are supported by Delpha : Australia and New Zealand

## LinkedIn enrichment cleanup

If you remove the **D LinkedIn** URL from your record (Account or Contact), all related information is deleted from Delpha fields, now including the logo / picture profile.

## Validation Rules

Validation rules can act as a blocker for Data Quality.&#x20;

When a record is updated by Delpha in the Data Quality process (assessment or recommendation phases) it must follow the validation rules or the update will be blocked.

* When it happens in a mass assessment process (Automation, Campaign, Data Steward mass update...) the record is detected and blacklisted in the **Delpha Setup** > Tab: **Locked Records** until a Delpha Admin deletes the entry (and takes proper actions to avoid the validation breach again).&#x20;
* When it happens in a single enrichment phase, using the Score Meter, a warning message is displayed to the user so he knows that his record cannot be updated and why.&#x20;


# Build 3.58.5

## Account - Main Entity Address

When enriching an Account, you retrieve the Main Entity address in the tab Delpha > Address. You can reuse this information in a regular address (billing, shipping...).&#x20;

Note that this address can be different from the Legal Address.

## Account Industry

[From now on, Delpha provides the **Account Industry**. It is retrieved in a Delpha field, in the Account Profile tab](/delpha-for-salesforce/how-to-faq/delpha-data-quality/what-is-the-industry-retrieved-by-delpha).&#x20;


# Build 3.58.8

## Bug Fix: Filtering with Select All

Previously, when applying a text filter in the Data Quality or Duplicate Data Steward views, the **Select All** action was incorrectly applied to all records instead of only the filtered results. This issue has been resolved in this release.


# Build 3.60.1

## Manage Duplicate from the Score Meter

The Score Meter now includes the Duplicate information for Accounts and Contacts.\
By clicking on the link you start the [Duplicate Merge process. ](/delpha-for-salesforce/delpha-upgrade/whats-new/duplicate/build-3.60.1)

<div align="left"><figure><img src="/files/m7hOcBwIa4rXREXLlHXt" alt=""><figcaption></figcaption></figure></div>


# Build 3.60.6

## Bug Fix: incomplete Legal ID

Legal address was missing the street part. This is fixed.


# Build 3.60.7

* Score Meter&#x20;
  * Fix tooltips not displaying for bullets
  * Yellow bullet for Status = Unknown is now a triangle&#x20;
  * Display LinkedIn title instead of LinkedIn name


# Build 3.70.0

## LinkedIn&#x20;

{% hint style="warning" %}
Since version 3.70.0, the “Connect to LinkedIn” conversation is no longer used to link your LinkedIn account to Delpha. Connection is now handled through a dedicated UI, which automatically collects the required information from the Delpha Connector Chrome extension. &#x20;
{% endhint %}

### **New LinkedIn connection process**

**Dedicated UI: App Delpha Data Quality > Tab Delpha User Settings**

<div align="left"><figure><img src="/files/gwwbyQk3N7FTDkRjaXPv" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
This UI can only be used if the Delpha Connector Chrome extension is installed in your browser.
{% endhint %}

If the extension is not installed, or if you prefer to manually set a cookie for a user profile, go to *Delpha Setup → User Settings*. Then edit the user settings you want to update.

[How to manually retrieve a linkedIn cookie.](/delpha-for-salesforce/how-to-faq/delpha-linkedin-connector/i-am-not-allowed-to-install-delpha-connector-on-my-browser)

<div align="left"><figure><img src="/files/n0a44KsIT2gQtfaBS9y7" alt="" width="375"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
[The cookie you enter will be encrypted after saving and cannot be retrieved afterward.](/delpha-for-salesforce/how-to-faq/delpha-linkedin-connector/how-your-linkedin-cookie-is-used)
{% endhint %}

### Notification on score meter when LinkedIn cookie needs to be set

You can access this page directly, or simply click the alert shown in the Delpha Score component when a configuration issue is detected.\
Click the red-dot icon to open the Delpha User Settings page instantly.

<div align="left"><figure><img src="/files/8dVpWX42QsLYoIRTUn6X" alt="" width="314"><figcaption></figcaption></figure></div>

## Score Meter&#x20;

### Add address recommendations in score meter

When an address recommendation is available, it is displayed to the end user in the Score Meter. The user can accept or reject it directly from the Score Meter, based on the data quality analysis and the recommendation’s confidence score.

<div align="left"><figure><img src="/files/EJ3tesEoNKqNZbBV4jxn" alt="" width="267"><figcaption></figcaption></figure></div>

### Add uniqueness modal to score meter

For any monitored field, if the unicity value is not equal to 1, you can click the message shown in the score meter to display all records involved in the unicity issue.&#x20;

<div align="left"><figure><img src="/files/ItSfoh27ll6OewCOC4WF" alt="" width="257"><figcaption></figcaption></figure></div>

From that window, you can open and review each record.

<div align="left"><figure><img src="/files/IjS5ZgBpdcwvFvmbNRr7" alt="" width="375"><figcaption></figcaption></figure></div>

Add message/indicator on score meter when record is locked

## Ultimate

* The comments now explain how the Ultimate Parent was determined and provide the justification for mapping it to an existing account.

<div align="left"><figure><img src="/files/bFJTxY0dkfxSx2So2FSc" alt="" width="250"><figcaption></figcaption></figure></div>

* If the Ultimate Parent does not already exist in your org, the resolution process will automatically create it (score meter or data steward view).&#x20;

{% hint style="warning" %}
More info on [Ultimate fields](/delpha-for-salesforce/how-to-faq/delpha-ultimate-parents/what-are-the-delpha-ultimate-parent-fields) and [Ultimate Parent analysis.](/use-cases/ultimate-parent/how-selection-works/understanding-the-ultimate-parent-analysis)
{% endhint %}


# Build 3.72.1

## Score Meter during Data Quality Assessment

* Information that the data quality is being assessed is displayed at icon level

<div align="left"><figure><img src="/files/HU9CyriXzGdjg7Lcwdkp" alt="" width="308"><figcaption></figcaption></figure></div>

* Current information is still available while processing, in read only mode.&#x20;

<div align="left"><figure><img src="/files/Sqp2reiB3jQVEGuPEpdB" alt="" width="300"><figcaption></figcaption></figure></div>


# Build 3.74.1

## Data Quality for Lead


# Data Steward Views

Delpha’s updated Data Steward View offers a fully customizable, Salesforce-native experience. Easily filter records, choose the fields you want to see, and create or share your own views.


# Build 3.56

## New Data Steward View – Improved Usability & Customization

We’ve redesigned the [**Data Quality Steward View**](/delpha-for-salesforce/delpha-apps/delpha-data-quality/data-quality-steward-view) and the[ **Duplicate Steward View**](/delpha-for-salesforce/delpha-apps/delpha-data-quality/duplicate-data-steward-view) interface to align with Salesforce’s native List View experience:

* **Familiar Navigation**: Use the standard cog and filter icons to **create**, **filter**, and **manage** your views—just like any Salesforce list.
* **View Sharing**: Create custom views and share them with your team for easier collaboration.
* **Field Flexibility**: Choose any fields to display—making data analysis faster and more intuitive.

This update simplifies navigation, improves usability, and gives you more control over your quality review workflows.


# Build 3.58.2

## Direct access to filters

Based on the users feedback, we improved the Data Steward view by having the most common filters back on the main data steward screen area.&#x20;

### Data Quality

You can directly select the Object and the field from the main screen. To access the extra filtering capabilities, click on the filter logo.&#x20;

<figure><img src="/files/vu2xvkzloOynQGqxAVDh" alt=""><figcaption></figcaption></figure>

### Duplicate&#x20;

You can select the Object and the processing state (True or False). To access the extra filtering capabilities, click on the filter logo.&#x20;

<figure><img src="/files/zCZMDapeAaubI8EtA66b" alt=""><figcaption></figcaption></figure>


# Build 3.60.1

## You can assess selected records directly from the Data quality Steward view.&#x20;

If you click on the Assess button, all selected records will be Data Quality assessed. This feature is compatible with the Select All, allowing mass reassessment from the Data Quality Steward View.&#x20;

<figure><img src="/files/LF5Rm7xaRdLn3vnal26D" alt=""><figcaption></figcaption></figure>


# Build 3.70.0

Negative view for tiles

Add "Last Modified Date" column to the steward

Implement filtering for data steward views (Data Quality and Duplicate)




---

[Next Page](/llms-full.txt/1)

