<!-- BusyBot node reference — https://busybot.net/tools/uplead/ -->

> Node: Uplead (`uplead`) · Action · v1
> Category: Sales · Credentials: Uplead API (`upleadApi`)
> Updated: 2026-08-16

# Uplead

> Enrich B2B company and person/contact data using the Uplead sales intelligence API.

## Overview

Uplead is a B2B sales intelligence and data enrichment platform. This tool can enrich company data by looking up a domain name or company name, and enrich person/contact data by looking up an email address or a combination of domain + first name + last name.

**Category:** Sales  
**Tool Name:** `uplead`  
**Version:** 1

**Appearance:** Icon: `lucide-UserSearch` | Color: `#5438DC`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Uplead API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/uplead-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Company | `company` |
| Person | `person` |

### Operations

| Operation | Value | Description |
|-----------|-------|-------------|
| Enrich | `enrich` | Enrich data for the selected resource. |

### Parameters

Every field below is optional — you supply whichever identifiers you have. See [Tips](#tips) for the combinations Uplead accepts.

#### Company: Enrich

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Company | `string` | No | — | The name of the company (e.g., "amazon"). |
| Domain (`domain`) | `string` | No | — | The domain name (e.g., "amazon.com"). |

#### Person: Enrich

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Email | `string` | No | — | Email address (e.g., "mbenioff@salesforce.com"). |
| First Name | `string` | No | — | First name of the person (e.g., "Marc"). |
| Last Name | `string` | No | — | Last name of the person (e.g., "Benioff"). |
| Domain (`personDomain`) | `string` | No | — | The domain name (e.g., "salesforce.com"). Used with first/last name for person lookup. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. |

## Output Data

This node **replaces** the input item's JSON with the enrichment record Uplead returns — the fields you sent in are not carried through, so capture anything you still need before this node or re-join it downstream. Binary data on the input item is forwarded unchanged in every case.

How many items you get back depends on what Uplead returns:

- **One match** — one output item whose JSON is the returned record.
- **Several matches** — one output item **per match**, so a single input item can fan out into many. Both `company` and `person` enrichment can do this.
- **No match** — one output item carrying the **original input JSON, unchanged**. Nothing is added, so an item that looks untouched after this node is a miss, not a failure. Test for a field you expect (for example `{{ $json.domain }}`) rather than assuming enrichment succeeded.

The record's own fields are whatever the Uplead API returns for that lookup; the node does not rename, nest or filter them. Reference them directly downstream, e.g. `{{ $json.name }}`.

## Usage Examples

- Enrich a company by domain name
- Look up company data by company name
- Enrich a person by email address
- Look up a contact by first name, last name, and domain
- Get B2B lead data from Uplead

## Example Configuration

Enrich a company from a domain carried on the item:

```json
{
  "type": "uplead",
  "parameters": {
    "resource": "company",
    "operation": "enrich",
    "domain": "{{ $json.domain }}",
    "maxConcurrency": 20
  }
}
```

Look a company up by name instead:

```json
{
  "type": "uplead",
  "parameters": {
    "resource": "company",
    "operation": "enrich",
    "company": "Salesforce",
    "maxConcurrency": 5
  }
}
```

Enrich a person straight from a collected email address:

```json
{
  "type": "uplead",
  "parameters": {
    "resource": "person",
    "operation": "enrich",
    "email": "{{ $json.email_address }}",
    "maxConcurrency": 10
  }
}
```

Find a contact when you only have a name and the company domain:

```json
{
  "type": "uplead",
  "parameters": {
    "resource": "person",
    "operation": "enrich",
    "firstname": "{{ $json.first_name }}",
    "lastname": "{{ $json.last_name }}",
    "personDomain": "{{ $json.company_domain }}",
    "maxConcurrency": 8
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Enrich B2B company or person data using the Uplead sales intelligence API by domain, company name, email, or name.

### Parameter Relationships

1. **Resource Selection**: Choose between `"company"` or `"person"`
2. **Operation**: Always `"enrich"` for both resources
3. **Company Enrichment**: Use either `company` name OR `domain`
4. **Person Enrichment**: Use either `email` directly OR combine `firstname` + `lastname` + `personDomain`