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

# Verify a lead's email address

> The Verify pill and its three outcomes: verified, failed, and inconclusive, which leaves the address unverified.

export const UiPath = ({children}) => {
  const parts = String(children).split(/\s*(?:→|>)\s*/).filter(Boolean);
  return <span className="pl-path">
      {parts.map((part, index) => <span key={`${index}-${part}`}>
          {index > 0 && <span className="pl-path__sep">→</span>}
          {part}
        </span>)}
    </span>;
};

export const Screenshot = ({id, alt, caption, frame = 'browser', url, marks = [], lang = 'en', workspace = 'northwind-outbound'}) => {
  const src = `/images/screenshots/${lang}/${id}.png`;
  const chrome = url ? `app.pipelime.ai/${workspace}${url}` : 'app.pipelime.ai';
  return <figure className={`pl-shot pl-shot--${frame} not-prose`}>
      <div className="pl-shot__frame">
        {frame !== 'bare' && <div className="pl-shot__bar">
            <span className="pl-shot__dots">
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
              <span className="pl-shot__dot" />
            </span>
            <span className="pl-shot__url">{chrome}</span>
          </div>}
        <div className="pl-shot__media">
          <img src={src} alt={alt} loading="lazy" />
          {marks.map(mark => <span key={mark.n} className="pl-shot__mark" style={{
    left: `${mark.x}%`,
    top: `${mark.y}%`
  }} aria-hidden="true">
              {mark.n}
            </span>)}
        </div>
      </div>
      {caption && <figcaption className="pl-shot__caption">{caption}</figcaption>}
    </figure>;
};

By the end of this page you can run a live check on a lead's email address from its row, and read what each of the three results means.

<div className="pl-availability">
  <div className="pl-availability__row">
    <div className="pl-availability__label">Where</div>
    <div className="pl-availability__value"><span className="pl-path">Leads<span className="pl-path__sep">→</span>Prospects</span></div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">Your role needs</div>
    <div className="pl-availability__value">Read access to Prospects <code>read-leads</code>. Admin, Member and Viewer have it by default.</div>
  </div>

  <div className="pl-availability__row">
    <div className="pl-availability__label">To create or change</div>
    <div className="pl-availability__value"><code>create-leads</code> to add one, <code>update-leads</code> to change one, on top of the permission above.</div>
  </div>

  <div className="pl-availability__note">If you cannot find this in your sidebar, your workspace may have a custom menu configuration. Contact support and we will check it for you.</div>
</div>

## Before you begin

* You need permission to update leads. Without it you still see the verified badge and the failed icon, but there is nothing to press and clicking the failed icon does nothing.
* The row only ever checks the lead's first email address. A lead with more shows a "(+1 others)" line underneath, and those addresses are not part of this check.
* The list shows leads that already have an email or a phone, so a lead with nothing on file is not on it. A lead reachable only by phone is, and its row has no address to check.

## Steps

<Steps>
  <Step title="Find the address">
    Go to <UiPath>Leads → Prospects</UiPath>. Each lead's first email address sits in the **Email / Phone**
    column, and the mark beside it says where that address stands. A red × (1) means it failed verification;
    its tooltip reads "Email verification failed. Click to verify again." A small blue badge with a white tick
    (2) means verified, and hovering it reads "Email verified". An outlined **Verify** button (3) means the
    address has no answer against it yet; hovering it reads **Validate email**.

    <Screenshot id="leads/verify-an-email-address--three-states" url="/leads/prospects" alt="Three lead rows in the Email / Phone column: a red × on a failed address, a blue verified badge on another, and an outlined Verify button on one that has not been checked yet" caption="All three live in the same column. The mark next to the address is the only thing that tells them apart." marks={[{ n: 1, x: 44, y: 44 }, { n: 2, x: 44, y: 49 }, { n: 3, x: 44, y: 63 }]} />
  </Step>

  <Step title="Click Verify, or the red × to try again">
    Both run the same check, and both run it inside the request rather than queueing a job: nothing to wait
    on, nothing to poll. The button reads "Verifying..." while the answer comes back.
  </Step>

  <Step title="Read the result">
    A notification reports one of three outcomes, and the row updates to match:

    * "Email verification result: verified" means the row now shows the blue badge.
    * "Email verification result: failed" means the row shows the red ×; click it any time to try again.
    * "Email verification was inconclusive" means nothing on the row changes, and the **Verify** button is
      still there.

    <Screenshot id="leads/verify-an-email-address--inconclusive" url="/leads/prospects" alt="A blue notification reading Email verification was inconclusive, after clicking Verify on a lead row" caption="A representative example: an inconclusive result needs a catch-all or greylisting domain, which a seeded workspace can't produce on demand, so this is captured against a simulated response." />
  </Step>
</Steps>

## What happens next

<Check>
  A verified or a failed result is written against the address and the row redraws with the new mark. An
  inconclusive one writes nothing, so the row is exactly as you left it and the **Verify** button is still
  there the next time you look.
</Check>

Only the first two answers are kept, which shapes everything that follows. A check you run by hand settles for
inconclusive rather than reaching for the second opinion the product keeps for its own queued work, so the
same address can keep coming back inconclusive from this button. If that address was already verified or
failed on another record recently, we reuse that answer instead of probing again. That's why some checks
come back instantly.

Running the check costs you nothing by itself. An address that comes back verified does mark its lead
chargeable, which is the flag that decides whether the lead counts against your credits;
[what consumes credits](/en/billing/what-consumes-credits) has the rule. And a verified address does not stay
trusted forever: before a campaign email goes out, outreach checks the recipient again on its own once the
last verified result has gone stale, unless the lead has already sent a genuine reply.

## Troubleshooting

<AccordionGroup>
  <Accordion title="It comes back inconclusive every time">
    Only a verified or a failed result is written to the address. An inconclusive one leaves nothing behind,
    so the next click runs the same check again with the same odds of the same answer. A catch-all domain,
    which accepts mail for any address, lands here; so does a mailbox that reports itself full, and so does one
    that stalls the check (greylisting, a blocked connection, a timeout). See
    [Email verification was inconclusive](/en/troubleshooting/email-verification-inconclusive) for what to do
    about an address stuck this way.
  </Accordion>

  <Accordion title="There's no Verify button on this row">
    The button only appears on an address with no answer yet: once a check has verified or failed it, the badge
    or the red × takes the button's place. Otherwise it is one of two things: the row has no email address at
    all, which is normal for a lead you reach by phone, or your role has no permission to update leads, in
    which case the marks still show but nothing on them is clickable.
  </Accordion>

  <Accordion title="It fails with an error instead of a result">
    A notification reading "Error verifying email" means the request itself did not complete, so no answer was
    recorded either way. Click **Verify** again; if it keeps failing, email
    [support@pipelime.ai](mailto:support@pipelime.ai).
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Email Verification: verdicts and what they mean" icon="shield" href="/en/email-accounts/email-verification">
    The five internal verdicts behind the three words you see here, and everywhere else in the product they show up.
  </Card>

  <Card title="Email verification was inconclusive" icon="circle-question-mark" href="/en/troubleshooting/email-verification-inconclusive">
    Why a catch-all or greylisting domain can't give a straight answer, and what outreach does with an address stuck there.
  </Card>

  <Card title="Working the Prospects list" icon="table" href="/en/leads/prospects-list">
    Every other column and row action on the same table this page lives in.
  </Card>

  <Card title="Leads troubleshooting" icon="circle-alert" href="/en/leads/troubleshooting">
    Symptom-first answers for the rest of what can go sideways with a lead.
  </Card>
</CardGroup>
