Skip to content
Book a Demo Open a Case

Salesforce apps by To A Finish

Four managed packages that run inside your own Salesforce org.

Simple Signature

Document creation and e-signatures in Salesforce

Address Verification

Clean, verify and geocode Salesforce addresses

Highlighter

Colors, renames or hides Salesforce fields

List Browse

Browse Salesforce records without list clicking

Get started

Install, configure and roll out a TAF package.

Implementation guides

Guides for all four apps are ready.

How-to articles

One article per task

Book a demo

See a package in a live org

Compatibility

Editions and releases we support

Get help

Open a case and a person reads it.

Open a support case

The fastest route to an answer

Give us access

Let us sign in and see the problem

Support home

Guides, release notes and the case form

Troubleshooting

Search by the error text you see

Documentation

Written for admins, not for developers.

Implementation guides

Guides for all four apps are ready.

How-to articles

One task per article

Change log

What changed in each release

Compatibility

Editions and seasonal releases

Simple Signature Address Verification Highlighter List Browse Support Book a Demo
Address Verification · How-to

Check email addresses and phone numbers

How to do it in Address Verification, one step at a time.

Last updated 11 Oct 2026

Only with the email or phone add-on from TAF.

Address Verification checks phone numbers and email addresses through a TAF service. To buy the add-on, email [email protected].

Each phone or email field needs its own result fields and its own entry on the Data Mapping tab. No email entry exists at first. A Contact Mobile entry exists, but it is not active, and it maps only the phone field.

  1. Make the result fields for each phone number.

    Make them on the object of the phone field, as in step 1 of Verify addresses on a custom object. The labels are examples for a phone field named Mobile.

    Example labelTypeWhat it holds
    MobilePhoneThe phone number. Most objects already have it.
    Mobile VerifiedCheckboxTicked when the number is verified. Verify skips a number whose box is ticked.
    Mobile CountryText(40)The two-letter code of the country of the number, for example US. When it is empty, Address Verification uses US.
    Mobile Last VerifiedDate/TimeThe date and time of the last check.
    Mobile Return CodeText(40)The result of the check. See Return codes for phone numbers.
    Mobile API ResponseLong Text AreaThe whole answer from the service. It is not for display.

    Make these fields for the Contact Mobile entry too. Contact has no result fields for phones or emails at first.

  2. Make the result fields for each email address.

    Example labelTypeWhat it holds
    EmailEmailThe email address. Most objects already have it.
    Email VerifiedCheckboxTicked when the address is verified. Verify skips an address whose box is ticked.
    Email Last VerifiedDate/TimeThe date and time of the last check.
    Email Return CodeText(40)The result of the check. See Return codes for email addresses.

    For more data, see Optional fields for phone and email below.

  3. On the Data Mapping tab, click New Phone. Fill in the entry. Then click Save.

    To use the default entry, click Edit beside Contact Mobile instead.

    Type a Name that starts with the object name. Select the object. Tick Active. Pick the fields for Phone, Verified, Country, Return Code, Last Verification and Phone Response. Map the optional fields you made.

    The optional fields sit under Response Fields. With Clear all verified fields after Phone change ticked, a new number clears every mapped field. Without it, a new number unticks Verified and clears Return Code.

    The Edit Contact Mobile window: Active ticked, the six required fields mapped, the Response Fields and the option Clear all verified fields after Phone change.
  4. Click New Email. Fill in the entry. Then click Save.

    Type a Name that starts with the object name. Select the object. Tick Active. Pick the fields for Email, Verified, Last Verification and Return Code. Map the optional fields you made.

    The Return Code list offers every text field of the object. Pick your Return Code field with care.

    With Clear all verified fields after Email change ticked, a new email address clears every mapped field. Without it, only Verified and Return Code change.

    The New Email window: Active ticked, the four required fields and Sub Status Code mapped, and the option Clear all verified fields after Email change.
  5. Add the Verify action for phones or emails to the page layout.

    Add it as in step 4 of Add the Verify button. In the palette, each label shows twice: as a Quick Action and as a Custom Button for Classic. Point at each one to see its name. Use the Quick Action. Its name starts with the object name and a dot, for example Lead.smartystreets__VerifyEmails. The table leaves out that start.

    ObjectAction labelQuick Action name
    ContactVerify Phonessmartystreets__Verify_Phone_Lightning_Contact
    ContactVerify Emailssmartystreets__Verify_Emails
    LeadVerify Phonessmartystreets__Verify_Phone_Lightning_Lead
    LeadVerify Emailssmartystreets__VerifyEmails

    Do not use the Custom Buttons for Classic, or the actions marked Deprecated.

    On a custom object, make a new action as in step 5 of Verify addresses on a custom object. Use the component smartystreets:VerifyPhone for phone numbers, or smartystreets:VerifyEmail for email addresses.

  6. Open a record with a phone number or an email address. Click the Verify action.

    A message reads Record Updated, with Phone Verified. or Email Verified. The message shows for every result, also a bad one.

    Reload the page. The Return Code field shows the result. The Verified box stays empty when the result is not valid. Each check uses one lookup from your add-on.

    See Return codes for phone numbers and Return codes for email addresses.

  7. On a custom object, add a Flow that marks a changed number or email.

    Build it as in Mark changed addresses on a custom object, with two conditions. Row 1: the phone or email field, Is Changed, True. Row 2: its Verified field, Equals, True. Use the logic 1 AND 2. Set the Verified field to False and the Return Code to Changed.

    On Contact and Lead, the triggers of Address Verification do this, when Active is ticked for the object on the Automation tab.

Optional fields for phone and email

Make the ones you need. Then map each one in the entry.

Field in the entryExample labelTypeWhat it holds
CarrierMobile CarrierText(255)The phone company.
Line TypeMobile Line TypeText(40)The type of line, for example mobile or landline.
LocationMobile LocationText(100)The city or place of the owner, if known. Often where the phone was bought.
Country Full NameMobile Full Country NameText(100)The full name of the country in the Country field.
Domain Age DaysEmail Domain Age DaysNumberThe days since the domain of the email was registered. Divide by 365 for years.
Free Email AccountEmail Free AccountCheckboxTicked for a throwaway address, made only for a short time. TAF advises never to email it.
First Name, Last NameEmail Owner First Name, Email Owner Last NameText(100)The name of the owner, if known.
Email ResponseEmail Verification ResponseLong Text AreaThe whole answer from the service.
GenderEmail Owner GenderText(40)The gender of the owner, if known.
SMTP ProviderEmail SMTP ProviderText(100)The email host.
Sub Status CodeEmail Sub Status CodeText(100)More detail about the result. See Sub codes for email addresses.

Formula fields for phone and email

Make them as in Formula fields that show the result. Replace RETURNCODE with your Return Code field.

Phone Status shows the result of a phone check with an icon.

If(RETURNCODE = "Valid", IMAGE("/img/msg_icons/confirm16.png", "Valid", 16, 16) & " Valid",
If(RETURNCODE = "Error", IMAGE("/img/msg_icons/error16.png", "Error", 16, 16) & " Error",
IMAGE("/img/msg_icons/info16.png", "Not Verified", 16, 16) & " Not Verified"))

Email Status shows the result of an email check with an icon.

If(RETURNCODE = "valid", IMAGE("/img/msg_icons/confirm16.png", "Valid", 16, 16) & " Valid",
If(RETURNCODE = "catch-all", IMAGE("/img/msg_icons/warning16.png", "Accept all (Unverifiable)", 16, 16) & " Accept all (Unverifiable)",
If(RETURNCODE = "do_not_mail", IMAGE("/img/msg_icons/warning16.png", "Do Not Mail", 16, 16) & " Do Not Mail",
If(RETURNCODE = "invalid", IMAGE("/img/msg_icons/error16.png", "Invalid", 16, 16) & " Invalid",
If(Or(RETURNCODE = "disposable", RETURNCODE = "spamtrap"), IMAGE("/img/msg_icons/error16.png", "Disposable", 16, 16) & " Disposable",
If(RETURNCODE = "unknown", IMAGE("/img/msg_icons/error16.png", "Unknown", 16, 16) & " Unknown",
IMAGE("/img/msg_icons/info16.png", "Not Verified", 16, 16) & " Not Verified"))))))

Applies to

Address Verification 7.3.x. These steps come from the tested Address Verification implementation guide, where they sit with the steps before and after them.

Was this helpful?

Related

Support

Still stuck?

Open a case and paste the exact error text. A person reads every case.