> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erdo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Lead reachability

> Whether each lead has ever answered you, for a whole leads dataset in one read, from the same reading the follow-up engine decides by.

# Lead reachability

The first thing to know about a lead is whether anybody is there. Erdo's
follow-up engine keeps one answer to that for every lead, and it decides how
hard to chase by it: a lead who has never answered is followed up sooner and
across channels, and one who has answered moves onto the slower cadence of
somebody you are talking to.

Lead reachability reads that answer for every lead in a dataset at once, so a
lead list, an export or a monthly report can show it without opening each
lead's timeline.

## What counts as an answer

A lead is `confirmed` once they have answered on any channel, and `unconfirmed`
until then. Any of these confirms a lead:

* a reply to one of your emails;
* a call from them, or a call of yours they picked up and talked on;
* a text or a WhatsApp message from them;
* a website chat;
* a booking, made on a page, in a chat or on a call.

These do not:

* **Filling in the form.** That is the lead arriving, however many times they
  submit it.
* **An out-of-office or vacation reply.** Their mail system sent it, not them.
* **STOP.** A reply of STOP (or another opt-out word, or the stop button on a
  WhatsApp message) says your text reached a phone, and that the person wants no
  more of them. It is not the lead answering you. A START that undoes their own
  STOP does not count either. Both stay on the lead's timeline, and texts stay
  off for as long as the opt-out stands.

Once confirmed, a lead stays confirmed. `reached_via` names the kind of the
first answer (`email_reply`, `call`, `sms`, `whatsapp`, `chat` or `booking`) and
`reached_at` says when it came. When somebody on your team starts a lead over,
Erdo reads that lead only from the restart on, so its reachability starts over
too.

This is the same reading a lead's [timeline](https://docs.erdo.ai/lead-next-action.md#the-timeline-and-the-dry-run)
shows under `timing` (`reachability`, `reached_via`, `reached_at`), so the list
and the lead page cannot disagree.

## Reading it

Leads come back in `canonical_lead_id` order, up to 500 at a time by default and
5,000 at most. `total` says how many leads the dataset holds; pass `offset` for
the next page. Every page reads your organization's emails, calls, chats and
texts once, so a large page costs no more than a small one.

If one of those sources could not be read, it is named under `unavailable`. A
lead shown as `unconfirmed` while a source is unavailable may have answered
there; a `confirmed` lead is confirmed regardless.

Reading reachability takes organization membership, and it is read in the
dataset's own organization: if you manage a client's account, send the request
as that client's organization.

## REST API

```http theme={null}
GET /v1/datasets/{slug}/lead-reachability?limit=500&offset=0
```

```json theme={null}
{
  "dataset_id": "6d0c…",
  "dataset_slug": "acme.acme-leads",
  "leads": [
    {
      "canonical_lead_id": "0f6b5a0e-…",
      "lead_reference": "0YQ0mBGRmvJRWWrDsPBQaB",
      "reachability": "confirmed",
      "reached_via": "sms",
      "reached_at": "2026-10-25T17:20:03Z"
    },
    {
      "canonical_lead_id": "1a2c…",
      "lead_reference": "1B…",
      "reachability": "unconfirmed"
    }
  ],
  "total": 450,
  "limit": 500,
  "offset": 0
}
```

The SMS and WhatsApp conversation reads carry the same distinction:
`first_person_inbound_at` and `last_person_inbound_at` on a conversation are the
person's own messages, `last_inbound_compliance` says their newest message was
an opt-out or a re-subscribe, and each such message is marked `compliance`.

## MCP

`erdo_list_lead_reachability` takes `dataset_slug`, and optionally `limit` and
`offset`, and returns the same response.

## CLI

```bash theme={null}
erdo leads reachability acme.acme-leads
erdo leads reachability acme.acme-leads --limit 100 --offset 100
erdo leads reachability acme.acme-leads --json
```

## Related

* [Lead next action](https://docs.erdo.ai/lead-next-action.md)
* [Lead identity](https://docs.erdo.ai/lead-identity.md)
* [Lead details](https://docs.erdo.ai/lead-details.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.