Analytics and product tools

Check phone numbers, country codes and email domains in Pendo

Add country and number type to the phone attributes in your account and visitor export, so segments by region and contact type are trustworthy.

Why the data matters in Pendo

Guides and segments in a product tool are targeted by visitor and account fields. When phone attributes come from sign-up forms in mixed formats, regional segments miss people and a guide meant for one market reaches another, which makes adoption numbers by region hard to trust.

What LookValid checks

LookValid checks for Pendo
ProductWhat it does hereCredits
Phone Numbering-Plan ValidationReturns E.164, country and number type from open numbering-plan data. It does not say if a line is active.1 credit per valid number
Country Calling CodesLooks up a calling code or country name and returns shared regions and national number lengths for segment labels.1 credit per lookup (an unknown code, country or name is free)
Email Domain CheckReads the domain of a visitor email and flags free providers and role mailboxes, helping tell company accounts from personal ones.1 credit per address checked

Connect it in four steps

  1. Create a LookValid account and an API key from the dashboard, which a person does once.
  2. Keep the key in the LOOKVALID_API_KEY environment variable of the job or notebook that processes the export, and not in the exported file or its folder.
  3. Call the function for every phone value; a None return means found was false, so keep the original value, and an exception carries the error code and fix.
  4. Create matching custom metadata fields on the Metadata page first, then write the E.164, country and type values into columns named exactly like those fields, because a CSV upload fails when a header does not match, and each file takes up to 24 fields. Use the new fields when you build regional segments.

A script that reads a visitor or account file, checks each phone value and writes a cleaned CSV whose first column is visitorId, ready for the custom-field CSV upload in Pendo. The call is POST https://YOUR_API_HOST/v1/phone and costs 1 credit per valid number.

clean_visitor_phone.py
import json
import os
import urllib.error
import urllib.request
​
API_URL = "https://YOUR_API_HOST/v1/phone"
​
​
def clean_visitor_phone(value):
    request = urllib.request.Request(
        API_URL,
        data=json.dumps({
            "phone": value,
        }).encode(),
        headers={
            "Authorization": "Bearer " + os.environ["LOOKVALID_API_KEY"],
            "Content-Type": "application/json",
        },
        method="POST",
    )
    try:
        with urllib.request.urlopen(request, timeout=30) as response:
            result = json.load(response)
    except urllib.error.HTTPError as error:
        failure = json.load(error)["error"]
        raise RuntimeError(failure["code"] + ": " + failure["fix"])
    if not result["found"]:
        return None
    return {
        "phone_e164": result.get("data", {}).get("e164"),
        "phone_country": result.get("data", {}).get("country"),
        "phone_type": result.get("data", {}).get("number_type"),
    }
Where each response field goes in Pendo
Response fieldGoes into
data.e164phone_e164
data.countryphone_country
data.number_typephone_type

The recipe returns nothing when the lookup finds nothing, which costs no credits for this product, and stops with the error code and fix on a failed request.

Without code

No script is required if you would rather use an automation platform: its generic HTTP request step can take each row of the file, send the phone to LookValid and then update the custom field through Pendo's API, which accepts single or bulk updates with an integration key that has write access. No dedicated LookValid app is involved.

REST and MCPOne shared credit balance

Questions

What does it cost in credits?

The pricing page lists the credits for the phone product. Run it on distinct numbers and keep the cleaned file to avoid repeat checks.

What does the phone check not do?

It follows the numbering plan only, so it cannot tell whether a number is active, who holds it or whether it receives calls.

Where does the key go?

In an environment variable of the job that processes the file. Pendo's own integration key, if you use its API, belongs there too.

Sources

LookValid is run by Meralume Labs. It is not connected to, endorsed by or a partner of any company or product named on this page, and every product name belongs to its owner.

LookValid bills every lookup in credits from one shared balance, so the same key works for each check above.

See Phone Numbering-Plan Validation