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

# Enrow in n8n

> Connect the Enrow API to n8n with Header Auth and build your first email-finding workflow with webhooks

This guide shows you how to connect the Enrow API to n8n and build your first workflow: a single email search that returns its result automatically through a webhook. n8n is a workflow automation tool that lets you connect Enrow with hundreds of other services, and it can be self-hosted or run on n8n Cloud.

<Note>
  **Don't have n8n?** [Install n8n](https://docs.n8n.io/hosting/) or use [n8n Cloud](https://n8n.io/cloud/) to get started in minutes.
</Note>

## What do I need before I start?

To follow this guide you need two things:

* n8n installed (self-hosted or cloud)
* An Enrow API key ([get one here](https://app.enrow.io/settings/api-keys))

Every Enrow request is authenticated with the API key in the `x-api-key` header — there are no OAuth flows or bearer tokens. For the full details, see [Authentication](/authentication).

## How do I store my Enrow API key in n8n?

Store the API key once as a reusable **Header Auth** credential so you don't paste it into every node:

1. In n8n, open **Credentials** → **New**
2. Choose **Header Auth**
3. Set **Name** to `x-api-key`
4. Set **Value** to your Enrow API key
5. Save the credential (for example, name it "Enrow API")

You can now reference this credential from any HTTP Request node across your workflows.

## How do I build a workflow that finds a single email?

The workflow has three parts: a trigger to start it, an HTTP Request node that calls the [Find Single Email](/api-reference/email-finder/find-single) endpoint, and a Webhook node that receives the result when the search completes.

### Step 1: Create a new workflow

1. Open n8n
2. Click **"New Workflow"**
3. Name it "Enrow - Find Email"

### Step 2: Add a Manual Trigger

1. Click the **"+"** button
2. Search for **"Manual Trigger"**
3. Add it to your canvas

The Manual Trigger lets you run the workflow on demand while you test it.

### Step 3: Add an HTTP Request node

1. Click **"+"** after the Manual Trigger
2. Search for **"HTTP Request"**
3. Configure it:

**Authentication:**

* Authentication: `Generic Credential Type`
* Generic Auth Type: `Header Auth`
* Name: `x-api-key`
* Value: `YOUR_ENROW_API_KEY`

**Request:**

* Method: `POST`
* URL: `https://api.enrow.io/email/find/single`
* Body Content Type: `JSON`
* JSON Body:

```json theme={null}
{
  "company_domain": "apple.com",
  "fullname": "Tim Cook"
}
```

### Step 4: Test the workflow

1. Click **"Execute Workflow"** at the top
2. You should see a response with a search `id`
3. The search is processing asynchronously — the `id` is what you'll use to retrieve the result

### Step 5: Receive results with a webhook

Enrow runs searches asynchronously, so instead of polling, let n8n receive the result automatically. The Enrow API will POST the result to your webhook URL once the search finishes. See [How webhooks work](/how-webhooks-work) for the full flow.

1. Add a **"Webhook"** node to your canvas

2. Set:
   * HTTP Method: `POST`
   * Path: `enrow-email-result`

3. Copy the **Production URL** (e.g., `https://your-n8n.com/webhook/enrow-email-result`)

4. Update your HTTP Request node JSON to include the webhook in `settings`:

```json theme={null}
{
  "company_domain": "apple.com",
  "fullname": "Tim Cook",
  "settings": {
    "webhook": "https://your-n8n.com/webhook/enrow-email-result"
  }
}
```

5. Save and activate the workflow

Now when the search completes, Enrow will POST the result to your webhook node.

## Can I import a ready-made workflow?

Yes. Copy the JSON below to get started quickly, then import it into n8n.

```json theme={null}
{
  "name": "Enrow - Find Email with Webhook",
  "nodes": [
    {
      "parameters": {},
      "name": "Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.enrow.io/email/find/single",
        "authentication": "headerAuth",
        "sendBody": true,
        "bodyContentType": "json",
        "jsonBody": "={\n  \"company_domain\": \"apple.com\",\n  \"fullname\": \"Tim Cook\",\n  \"settings\": {\n    \"webhook\": \"{{$node[\"Webhook\"].json[\"webhookUrl\"]}}\"\n  }\n}",
        "options": {}
      },
      "name": "Find Email",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 3,
      "position": [450, 300],
      "credentials": {
        "headerAuth": {
          "name": "Enrow API"
        }
      }
    },
    {
      "parameters": {
        "httpMethod": "POST",
        "path": "enrow-email-result",
        "responseMode": "onReceived",
        "options": {}
      },
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "typeVersion": 1,
      "position": [650, 300],
      "webhookId": "your-webhook-id"
    }
  ],
  "connections": {
    "Manual Trigger": {
      "main": [[{"node": "Find Email", "type": "main", "index": 0}]]
    },
    "Find Email": {
      "main": [[{"node": "Process Result", "type": "main", "index": 0}]]
    }
  }
}
```

To import the workflow:

1. Copy the JSON above
2. In n8n, click **"..."** → **"Import from File/URL/String"**
3. Paste the JSON
4. Update the API key in credentials
5. Activate!

## What are the best practices for n8n + Enrow?

<AccordionGroup>
  <Accordion title="Store the API key as a credential">
    Create a **Header Auth** credential with:

    * Name: `x-api-key`
    * Value: Your Enrow API key

    Reuse this credential across workflows instead of pasting the API key into each node.
  </Accordion>

  <Accordion title="Use webhooks, not Wait nodes">
    Webhooks are more reliable than polling with Wait nodes. Always pass the `settings.webhook` parameter so Enrow delivers the result as soon as the search completes.
  </Accordion>

  <Accordion title="Handle errors gracefully">
    Add an **"Error Trigger"** node to catch and handle API errors. See [Error handling](/error-handling) and [Status codes](/status-codes) for the response formats to expect.
  </Accordion>

  <Accordion title="Use bulk endpoints for multiple searches">
    If you're processing many contacts, use the [Find Bulk Emails](/api-reference/email-finder/find-bulk) endpoint (up to 5,000 searches per batch) instead of looping single requests.
  </Accordion>
</AccordionGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Why do I get an Unauthorized error?">
    A `401 Unauthorized` means the API key is missing or invalid. Check that the **Header Auth** credential has `x-api-key` as the **Name** and your valid Enrow API key as the **Value**. See [Authentication](/authentication) for details.
  </Accordion>

  <Accordion title="Why isn't my webhook receiving data?">
    First, make sure the workflow is **activated**, not just saved. Then confirm the webhook URL in the `settings.webhook` parameter matches the Webhook node's **Production URL**. You can test the URL directly with a tool like Postman. See [How webhooks work](/how-webhooks-work) for the delivery flow.
  </Accordion>

  <Accordion title="Why do I get a Rate Limit Exceeded error?">
    A rate-limit error means you sent too many requests too quickly. Add a **"Wait"** node between batch operations, or use the bulk endpoints instead of looping. See [Rate limits](/rate-limits) for the current limits.
  </Accordion>

  <Accordion title="Where can I get help?">
    For workflow questions, use the [n8n Community Forum](https://community.n8n.io). For API questions, contact [Enrow Support](https://help.enrow.io).
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Email Enrichment" icon="table" href="/playbooks/n8n/email-enrichment-workflow">
    Enrich contacts from a spreadsheet in n8n.
  </Card>

  <Card title="Email Verification" icon="shield-check" href="/playbooks/n8n/lead-verification-workflow">
    Verify lead email lists in an n8n workflow.
  </Card>

  <Card title="Find Single Email" icon="envelope" href="/api-reference/email-finder/find-single">
    See the endpoint parameters and response format.
  </Card>

  <Card title="How webhooks work" icon="bell" href="/how-webhooks-work">
    Get notified automatically when a search completes.
  </Card>
</CardGroup>
