Sales engagement

Check phone numbers, phone complaints and country codes in Salesloft

Subscribe to Salesloft events on your own endpoint and check each person's phone, then store the answer in a person custom field.

Why the data matters in Salesloft

Salesloft cadences give reps a daily queue of calls and tasks, so a person whose phone number is in the wrong format or the wrong country occupies a slot in that queue that a rep cannot use. With large teams the cost is not one lost call but a queue that stops being trusted, because reps learn that some phone tasks lead nowhere.

What LookValid checks

LookValid checks for Salesloft
ProductWhat it does hereCredits
Phone Numbering-Plan ValidationNormalizes a person's phone number to E.164 and returns the country and the number type the numbering plan assigns. It cannot say whether the line is active.1 credit per valid number
Phone Spam CheckReturns the count of consumer complaints on file for a number, reported by callers and not checked, so a rep sees a number with a history before the call task opens.1 credit per number with complaints on record
Country Calling CodesReturns the dialing rules for a country calling code, which helps when one cadence covers people in several regions.1 credit per lookup (an unknown code, country or name is free)
Email Domain CheckChecks the email domain of a person for mail servers and throwaway providers before an email step runs. It never confirms a mailbox.1 credit per address checked

Connect it in four steps

  1. Create a LookValid account and generate an API key.
  2. Keep the key in the LOOKVALID_API_KEY environment variable of the webhook receiver, and authenticate your own calls to Salesloft with an API key, which Salesloft provides for customers, held in a separate variable.
  3. On each person event, pass the person phone to the function: it posts to the phone endpoint, returns null if nothing was found and throws the error code and fix if the API refuses the call.
  4. Create person custom fields with the three names and write the returned values into them through the Salesloft People API so cadence rules can filter on the phone type.

the HTTPS endpoint that a Salesloft webhook subscription sends person events to The call is POST https://YOUR_API_HOST/v1/phone and costs 1 credit per valid number.

validateSalesloftPersonPhone.mjs
const API_URL = "https://YOUR_API_HOST/v1/phone";
​
export async function validateSalesloftPersonPhone(value) {
  const response = await fetch(API_URL, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.LOOKVALID_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      "phone": value,
    }),
  });
  const result = await response.json();
  if (!response.ok) throw new Error(`${result.error.code}: ${result.error.fix}`);
  if (!result.found) return null;
  return {
      "Phone E164": result.data?.e164 ?? null,
      "Phone Type": result.data?.number_type ?? null,
      "Phone Country": result.data?.country ?? null,
  };
}
Where each response field goes in Salesloft
Response fieldGoes into
data.e164Phone E164
data.number_typePhone Type
data.countryPhone Country

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

Because a webhook subscription posts events to any URL, an automation platform with a generic HTTP request step can receive them without a dedicated app. After the catch trigger, send the person phone to the phone endpoint with your key in a bearer header, and add one more HTTP step that updates the person custom fields in Salesloft.

REST and MCPOne shared credit balance

Questions

How are credits used when people sync in bulk?

One credit-bearing lookup runs per phone you check. The pricing page shows the amount for the phone check, so you can estimate a batch.

What will the check not show on a Salesloft person?

Whether the number is connected, who the carrier is now or who owns it. It reads the numbering plan only.

Where do both keys live in the receiver?

Two environment variables: LOOKVALID_API_KEY for this check and a separate one for the Salesloft API key. A script that you run for your own team can use that API key.

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