# n8n-nodes-fullenrich

This is an n8n community node that lets you use FullEnrich in your n8n workflows.

**FullEnrich** is a contact enrichment service that takes minimal input (such as first name, last name, company domain, or Professional Network URL) and returns enriched contact data like emails, phone numbers, and company information.
This node enables you to **start asynchronous enrichment requests** and **receive enriched results via webhook**, all within n8n.


[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

[Installation](#installation)
[Operations](#operations)
[Credentials](#credentials)
[Compatibility](#compatibility)
[Usage](#usage)
[Resources](#resources)
[Version history](#version-history)

---

## Installation

Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

Example:

```bash
npm install n8n-nodes-fullenrich
```

Then restart your n8n instance.

---

## Operations

This package provides two nodes, both available in version `1` (legacy) and version `2` (current, default):

### FullEnrich — Start Enrichment
- Accepts one or multiple contacts from previous nodes (e.g., Sheets, forms, or manual input).
- Supports additional custom fields per contact (e.g. `row_id`, `user_id`).
- Sends each contact to FullEnrich's API enrichment endpoint.
- Available as an AI Agent tool (`usableAsTool: true`) for use in LangChain workflows.

### FullEnrich Trigger — Receive Enrichment Result (Webhook)
- Acts as a webhook endpoint.
- Listens for enrichment results returned via `webhook_url` from FullEnrich.
- Outputs enriched contact data in a format usable by other nodes like Google Sheets, Airtable, or CRMs.
- In version `1`, the V2 API response is automatically translated to the legacy V1 shape for backward compatibility with existing workflows.

---

## Credentials

The node uses **Bearer token** authentication via your FullEnrich API key.

- Go to **n8n → Credentials → New**.
- Choose **FullEnrich API**.
- Paste your API key (generated from your FullEnrich dashboard).

The credential automatically sets the `Authorization: Bearer <apiKey>` header on every request.

---

## Compatibility

- Minimum **n8n version**: `1.22.0`
- Tested on: `1.22.0`, `1.25.1`, `1.28.0`
- Requires the FullEnrich API V2 (used by both node versions).

---

## Usage

- The **FullEnrich** node supports contacts from:
  - Previous nodes (e.g., Google Sheets, Airtable, Manual Trigger).
  - Manual input from the UI form (via structured fields).
- You can pass **custom fields** (e.g. `user_id`) per contact to track each request in your workflow — values are forwarded under the `custom` object and echoed back in the webhook payload.
- The **FullEnrich Trigger** node acts as a webhook and must be connected to the URL you provide to FullEnrich (auto-generated by n8n in most cases).

**Example Use Case:**
1. Load leads from a Google Sheet.
2. Send them to **FullEnrich** (Start Enrichment).
3. Receive enriched data via **FullEnrich Trigger**.
4. Update the same Google Sheet.

---

## Resources

- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
- [FullEnrich API V2 documentation](https://docs.fullenrich.com/api/v2/general/introduction)

---

## Version history

### 0.2.0
- Migrated to the FullEnrich API V2 under the hood.
- Added node version `2` (default) for both the action node and the webhook trigger.
- Version `1` still works: the V2 response is translated back to the legacy V1 payload shape for backward compatibility with existing workflows.
- Added `usableAsTool: true` so the action node can be used in n8n AI Agent workflows.
- Switched the build, lint, and release pipeline to `@n8n/node-cli` with eslint 9.

### 0.1.x
- Initial public releases on the FullEnrich API V1.
