# Lead Data Layer





The Lead Data Layer is one record per person. Scoring, routing and campaigns
read it, and the agents that work a lead write back to it rather than into a
tool of their own.

<Frame caption="One row per person: identity, company, lead source and the traffic source that produced them.">
    <img alt="The leads table" src="__img0" />
</Frame>

## What a Lead Record Holds [#what-a-lead-record-holds]

| Group         | Fields                                                                                                |
| ------------- | ----------------------------------------------------------------------------------------------------- |
| **Identity**  | First and last name, work email, job title, LinkedIn, phone                                           |
| **Company**   | Company name, industry, employee count, annual revenue                                                |
| **Behaviour** | Sessions, scroll depth, website activity, forms viewed and started, partial answers, email engagement |
| **Source**    | Surface form, external HTML form, webhook, import                                                     |
| **Journey**   | Traffic source (organic, paid, email, social, referral), landing page                                 |
| **Judgement** | [AI lead score](/platform/lead-agents/scoring), intent, `latest_signal`                               |
| **Outcome**   | Meeting status, plus deal data from a connected CRM                                                   |

Without the outcome fields, you cannot tell whether a score is any good.

Columns are configurable, so what the leads table shows you is a subset of what
the record holds.

## How a Record Is Built [#how-a-record-is-built]

<Steps>
  <Step title="Capture the signal">
    A visit, a form interaction, a campaign response or a webhook. Partial form
    answers count.
  </Step>

  <Step title="Resolve the person and the company">
    Identity plus firmographics merged onto one record, not appended as a
    second row. → [Enrichment](/platform/leads/enrichment)
  </Step>

  <Step title="Qualify">
    Fit against your [ICP](/platform/leads/icp) plus observed intent produce the
    lead score. → [Lead Agents](/platform/lead-agents/overview)
  </Step>

  <Step title="Activate">
    Segments, routing, CRM writes and campaign audiences all read the same
    record. → [Segments](/platform/leads/segments)
  </Step>

  <Step title="Compare">
    Meetings and CRM outcomes land on the same record, so you can check what
    scored well against what actually booked.
  </Step>
</Steps>

## Leads and Responses Are Different Things [#leads-and-responses-are-different-things]

* A **response** is one submission of one form. Completion rate, drop-off and
  field-level analytics are about responses. → [Responses](/platform/forms/responses)
* A **lead** is one person, and can have many responses. Pipeline, routing,
  scoring and segments are about leads.

## Working with It [#working-with-it]

| Task                            | Where                                                                                             |
| ------------------------------- | ------------------------------------------------------------------------------------------------- |
| Filter, search, sort and export | The Leads table in the app                                                                        |
| Build a live audience           | [Segments](/platform/leads/segments)                                                              |
| Define who counts as a fit      | [ICP](/platform/leads/icp)                                                                        |
| See what created the lead       | [Lead sources](/platform/leads/sources)                                                           |
| Read or import over MCP         | `list_leads`, `get_leads_count`, `import_leads`, in the [tool reference](/mcp-server/tools#leads) |
| Keep the CRM in step            | [System Agents](/platform/system-agents/overview)                                                 |

<Tip>
  `get_leads_count` with `bySource: true` or `byEventType: true` splits the count
  by origin and by funnel stage. Fastest check that capture works.
</Tip>
