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

# fetch_full_contact_emails

> Enrich a dataset containing email addresses with personal information using the _FullContact_ service. 

???+ info "API integration"
To use this step your team needs to have the *Full Contact* integration configured in Graphext. The corresponding credentials
are required to connect to a third-party API. You can configure API integrations following the `INTEGRATIONS` or `ADD INTEGRATION`
link in the top-left corner of your Team's page, selecting `API keys`, and then the name of the desired third-party service.

To enable the *Full Contact* integration in particular you will need access to Full Contact's service. Follow the instructions
[here](https://www.fullcontact.com/developer-portal/) to create the required API key.

## Usage

The following example shows how the step can be used in a recipe.

<Accordion title="Examples" icon="code" defaultOpen="true">
  <Tabs>
    <Tab title="Example 1">
      The step has no configuration parameter, so it's simply

      ```stan theme={null}
      fetch_full_contact_emails(ds.email) -> (
        ds.fullName,
        ds.age,
        ds.gender,
        ds.location,
        ds.title,
        ds.organization,
        ds.twitter,
        ds.linkedin,
        ds.facebook,
        ds.bio,
        ds.avatar,
        ds.website,
        ds.given_name,
        ds.family_name,
        ds.education_institution,
        ds.education_degree
      )
      ```
    </Tab>

    <Tab title="Signature">
      General syntax for using the step in a recipe. Shows the inputs and outputs the step is expected to receive and will produce respectively. For futher details see sections below.

      ```stan theme={null}
      fetch_full_contact_emails(email: category, {
          "param": value,
          ...
      }) -> (
      	fullName: category,
      	age: number,
      	gender: category,
      	location: category,
      	title: category,
      	organization: category,
      	twitter: category,
      	linkedin: category,
      	facebook: category,
      	bio: text,
      	avatar: url,
      	website: url,
      	given_name: category,
      	family_name: category,
      	education_institution: category,
      	education_degree: category
      )
      ```
    </Tab>
  </Tabs>
</Accordion>

## Inputs & Outputs

The following are the inputs expected by the step and the outputs it produces. These are generally
columns (`ds.first_name`), datasets (`ds` or `ds[["first_name", "last_name"]]`) or models (referenced
by name e.g. `"churn-clf"`).

<Accordion title="Inputs" icon="right-to-bracket">
  <ParamField path="email" type="column[category]" required>
    Emails to fetch personal information for.
  </ParamField>
</Accordion>

<Accordion title="Outputs" icon="right-from-bracket">
  <ParamField path="fullName" type="column[category]" required>
    Full name of the person.
  </ParamField>

  <ParamField path="age" type="column[number]" required>
    Age of the person.
  </ParamField>

  <ParamField path="gender" type="column[category]" required>
    Gender of the person (M/F).
  </ParamField>

  <ParamField path="location" type="column[category]" required>
    Currently known location.
  </ParamField>

  <ParamField path="title" type="column[category]" required>
    Current title the person holds at the organization.
  </ParamField>

  <ParamField path="organization" type="column[category]" required>
    Current organization a person belongs to.
  </ParamField>

  <ParamField path="twitter" type="column[category]" required>
    Twitter profile.
  </ParamField>

  <ParamField path="linkedin" type="column[category]" required>
    LinkedIn profile.
  </ParamField>

  <ParamField path="facebook" type="column[category]" required>
    Facebook profile.
  </ParamField>

  <ParamField path="bio" type="column[text]" required>
    Biography as extracted from social media accounts.
  </ParamField>

  <ParamField path="avatar" type="column[url]" required>
    Picture uses in social media accounts.
  </ParamField>

  <ParamField path="website" type="column[url]" required>
    Personal website.
  </ParamField>

  <ParamField path="given_name" type="column[category]" required>
    Person's given name.
  </ParamField>

  <ParamField path="family_name" type="column[category]" required>
    Person's family name.
  </ParamField>

  <ParamField path="education_institution" type="column[category]" required>
    Category containing the most relevant educational institution the person attended.
  </ParamField>

  <ParamField path="education_degree" type="column[category]" required>
    Category representing the degree obtained at this institution.
  </ParamField>
</Accordion>

## Configuration

The following parameters can be used to configure the behaviour of the step by including them in
a json object as the last "input" to the step, i.e. `step(..., {"param": "value", ...}) -> (output)`.

<Accordion title="Parameters" defaultOpen="true" icon="sliders">
  <ParamField path="integration" type="string" required>
    ID of the integration you'd like to use.
  </ParamField>
</Accordion>
