import app from "../../people_data_labs.app.mjs";
export default {
key: "people_data_labs-enrich-person",
name: "Enrich a person",
description: "The Person Enrichment API provides a one-to-one match, retrieving up-to-date information on a unique individual. [See the docs here](https://docs.peopledatalabs.com/docs/reference-person-enrichment-api)",
version: "0.0.4",
type: "action",
props: {
app,
name: {
label: "Name",
type: "string",
description: "The person's full name, at least first and last.",
optional: true,
},
firstName: {
label: "First name",
type: "string",
description: "The person's first name.",
optional: true,
},
lastName: {
label: "Last name",
type: "string",
description: "The person's last name.",
optional: true,
},
middleName: {
label: "Middle name",
type: "string",
description: "The person's middle name.",
optional: true,
},
location: {
label: "Location",
type: "string",
description: "The location in which a person lives. Can be anything from a street address to a country name.",
optional: true,
},
streetAddress: {
label: "Street address",
type: "string",
description: "A street address in which the person lives.",
optional: true,
},
locality: {
label: "Locality",
type: "string",
description: "A locality in which the person lives.",
optional: true,
},
region: {
label: "Region",
type: "string",
description: "A state or region in which the person lives.",
optional: true,
},
country: {
label: "Country",
type: "string",
description: "A country in which the person lives.",
optional: true,
},
postalCode: {
label: "Postal code",
type: "string",
description: "The postal code in which the person lives, must be used with either a country or a region.",
optional: true,
},
company: {
label: "Company",
type: "string",
description: "A name, website, or social url of a company where the person has worked.",
optional: true,
},
school: {
label: "School",
type: "string",
description: "A name, website, or social url of a university or college the person has attended.",
optional: true,
},
phone: {
label: "Phone",
type: "string",
description: "A phone number the person has used.",
optional: true,
},
email: {
label: "Email",
type: "string",
description: "An email the person has used.",
optional: true,
},
emailHash: {
label: "Email hash",
type: "string",
description: "A sha256 email hash.",
optional: true,
},
profile: {
label: "Profile",
type: "string",
description: "A social profile the person has used. [List of available social profiles](https://docs.peopledatalabs.com/docs/social-networks).",
optional: true,
},
lid: {
label: "Linkedin ID",
type: "integer",
description: "A LinkedIn numerical ID.",
optional: true,
},
birthDate: {
label: "Birth date",
type: "string",
description: "The person's birth date. Either the year, or a full birth date.",
optional: true,
},
required: {
label: "Required",
type: "string",
description: "Parameter specifying the fields and data points a response must have to return a 200. [See docs](https://docs.peopledatalabs.com/docs/required-parameter).",
optional: true,
},
pretty: {
propDefinition: [
app,
"pretty",
],
},
minLikelihood: {
propDefinition: [
app,
"minLikelihood",
],
},
},
async run({ $ }) {
const params = {
name: this.name,
first_name: this.firstName,
last_name: this.lastName,
middle_name: this.middleName,
location: this.location,
street_address: this.streetAddress,
locality: this.locality,
region: this.region,
country: this.country,
postal_code: this.postalCode,
company: this.company,
school: this.school,
phone: this.phone,
email: this.email,
email_hash: this.emailHash,
profile: this.profile,
lid: this.lid,
birth_date: this.birthDate,
min_likelihood: this.minLikelihood || 0,
required: this.required,
pretty: this.pretty || true,
};
const res = await this.app.enrichPerson({
$,
params,
});
if (!res) {
$.export("$summary", "No results found");
} else {
$.export("$summary", "Successfully enriched a person");
}
return res;
},
};