> ## 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.

# E-Mail-Anreicherung (n8n)

> Erstellen Sie einen n8n-Workflow, der Google-Sheets-Kontakte mit verifizierten E-Mails über die APIs Email Finder und Email Verifier von Enrow anreichert

Diese Anleitung führt Sie durch den Aufbau eines n8n-Workflows, der Kontakte aus einem Google Sheet liest, berufliche E-Mails mit dem Endpunkt [Email Finder](/de/api-reference/email-finder/find-single) findet, sie mit dem Endpunkt [Email Verifier](/de/api-reference/email-verifier/verify-single) verifiziert und die Ergebnisse zurück in das Sheet schreibt – automatisch und nach Zeitplan. Neu bei n8n mit Enrow? Beginnen Sie mit der [Einstiegsanleitung für n8n](/de/playbooks/n8n/getting-started).

## Was werden Sie erstellen?

Sie erstellen einen automatisierten Workflow, der:

1. **Kontakte liest** aus einem Google Sheet
2. **E-Mails findet** mit dem Enrow Email Finder
3. **E-Mails verifiziert** auf Zustellbarkeit mit dem Enrow Email Verifier
4. **Ergebnisse zurückschreibt** in das Google Sheet

**Aufbauzeit**: 15 Minuten
**Schwierigkeitsgrad**: Mittel

## Was benötigen Sie vor dem Start?

Bevor Sie den Workflow erstellen, stellen Sie sicher, dass Sie Folgendes haben:

* n8n installiert ([n8n herunterladen](https://n8n.io))
* Einen Enrow-API-Schlüssel – siehe [Authentifizierung](/de/authentication), wie Sie Ihren Schlüssel erhalten und verwenden
* Ein Google-Konto mit einem Sheet voller Kontakte

Jede Suche verbraucht Credits, prüfen Sie daher zuerst Ihr Guthaben. Siehe [Credits & Abrechnung](/de/credits-billing) für die Kosten pro Endpunkt.

## Wie richten Sie das Google Sheet ein?

Erstellen Sie ein Google Sheet mit diesen Spalten:

| First Name | Last Name | Company Domain | Email | Status | Verified |
| ---------- | --------- | -------------- | ----- | ------ | -------- |
| John       | Doe       | apple.com      |       |        |          |
| Jane       | Smith     | microsoft.com  |       |        |          |
| Bob        | Johnson   | meta.com       |       |        |          |

**Name des Sheets**: "Contacts"
**URL**: Speichern und kopieren Sie die Sheet-URL

## Wie sieht der Workflow aus?

Der Workflow läuft nach Zeitplan, liest jeden Kontakt, findet und verifiziert die E-Mail und aktualisiert dann das Sheet:

```mermaid theme={null}
graph LR
    A[Cron Trigger] --> B[Read Google Sheet]
    B --> C[Loop Over Contacts]
    C --> D[Find Email - Enrow]
    D --> E[Verify Email - Enrow]
    E --> F[Update Google Sheet]
```

## Wie bauen Sie den Workflow Schritt für Schritt auf?

Folgen Sie diesen Schritten, um jeden Knoten in n8n zusammenzusetzen.

### Schritt 1: Die Google-Sheets-Verbindung einrichten

1. Fügen Sie einen **"Google Sheets"**-Knoten hinzu
2. Operation: **"Read"**
3. Authentifizieren Sie sich bei Google
4. Wählen Sie Ihre Tabelle aus
5. Name des Sheets: **"Contacts"**
6. Bereich: **"A:F"** (alle Spalten)

### Schritt 2: Den Cron-Trigger hinzufügen

1. Fügen Sie einen **"Cron"**-Knoten als Trigger hinzu
2. Modus: **"Every Hour"** (oder benutzerdefinierter Zeitplan)
3. Verbinden Sie ihn mit dem Google-Sheets-Knoten

Dadurch werden neue Zeilen automatisch jede Stunde verarbeitet.

### Schritt 3: Leere E-Mails filtern

1. Fügen Sie einen **"IF"**-Knoten nach Google Sheets hinzu
2. Bedingung:
   * **Value 1**: `{{$json["Email"]}}`
   * **Operation**: `Is Empty`
3. Leiten Sie "true" zum nächsten Schritt weiter (nur Kontakte ohne E-Mails verarbeiten)

### Schritt 4: Die E-Mail mit Enrow finden

Senden Sie jeden Kontakt an den Endpunkt Email Finder. Authentifizieren Sie sich mit Ihrem API-Schlüssel im Header `x-api-key`.

1. Fügen Sie einen **"HTTP Request"**-Knoten hinzu
2. Konfigurieren Sie:

```
Method: POST
URL: https://api.enrow.io/email/find/single
Authentication: Header Auth
  Name: x-api-key
  Value: YOUR_ENROW_API_KEY

JSON Body:
{
  "company_domain": "{{$json["Company Domain"]}}",
  "fullname": "{{$json["First Name"]}} {{$json["Last Name"]}}"
}
```

### Schritt 5: Auf das Ergebnis warten

Der Email Finder läuft asynchron, daher warten Sie entweder auf einen Webhook oder fragen den GET-Endpunkt nach dem Ergebnis ab.

**Option A: Webhook (Empfohlen)**

1. Fügen Sie einen **"Webhook"**-Knoten hinzu
2. Pfad: `enrow-email-webhook`
3. Kopieren Sie die Webhook-URL
4. Aktualisieren Sie den JSON-Body von Find Email:

```json theme={null}
{
  "company_domain": "{{$json["Company Domain"]}}",
  "fullname": "{{$json["First Name"]}} {{$json["Last Name"]}}",
  "settings": {
    "webhook": "YOUR_WEBHOOK_URL"
  }
}
```

Welche Nutzlast Enrow sendet und wie Sie Endpunkte registrieren, erfahren Sie unter [Wie Webhooks funktionieren](/de/how-webhooks-work).

**Option B: Warten & Abfragen**

1. Fügen Sie einen **"Wait"**-Knoten hinzu: 5 Sekunden
2. Fügen Sie einen **"HTTP Request"**-Knoten hinzu:
   * Method: `GET`
   * URL: `https://api.enrow.io/email/find/single?id={{$json["id"]}}`
3. Fügen Sie einen **"IF"**-Knoten hinzu, um den Status zu prüfen
4. Schleife zurück, wenn noch `ongoing`

Siehe den Endpunkt [Einzelergebnis abrufen](/de/api-reference/email-finder/get-single-result) für das vollständige Antwortformat.

### Schritt 6: Die E-Mail verifizieren

Übergeben Sie die gefundene E-Mail an den Email Verifier, um die Zustellbarkeit zu bestätigen, bevor Sie sie zurückschreiben.

1. Fügen Sie einen **"HTTP Request"**-Knoten hinzu, nachdem die E-Mail gefunden wurde
2. Konfigurieren Sie:

```
Method: POST
URL: https://api.enrow.io/email/verify/single
Authentication: Header Auth (reuse Enrow credential)

JSON Body:
{
  "email": "{{$json["email"]}}"
}
```

### Schritt 7: Das Google Sheet aktualisieren

1. Fügen Sie einen **"Google Sheets"**-Knoten hinzu
2. Operation: **"Update"**
3. Wählen Sie dieselbe Tabelle aus
4. Name des Sheets: **"Contacts"**
5. Bereich: **Zeile abgleichen** (verwenden Sie den Zeilenindex aus den Originaldaten)
6. Felder zuordnen:
   * **Email**: `{{$json["email"]}}`
   * **Status**: `{{$json["confidence"]}}`
   * **Verified**: `{{$json["status"]}}`

## Wo finden Sie das vollständige Workflow-JSON?

Importieren Sie das untenstehende JSON, um den vollständigen Workflow in einem Schritt zu erhalten.

<Note>
  Importieren Sie diesen Workflow, um sofort loszulegen. Aktualisieren Sie einfach Ihre API-Schlüssel!
</Note>

<details>
  <summary>Klicken, um das vollständige Workflow-JSON anzuzeigen</summary>

  ```json theme={null}
  {
    "name": "Enrow - Email Enrichment from Google Sheets",
    "nodes": [
      {
        "parameters": {
          "rule": {
            "interval": [{"field": "hours", "hoursInterval": 1}]
          }
        },
        "name": "Every Hour",
        "type": "n8n-nodes-base.cron",
        "typeVersion": 1,
        "position": [240, 300]
      },
      {
        "parameters": {
          "operation": "read",
          "sheetId": "YOUR_SHEET_ID",
          "range": "Contacts!A:F",
          "options": {}
        },
        "name": "Read Contacts",
        "type": "n8n-nodes-base.googleSheets",
        "typeVersion": 3,
        "position": [460, 300]
      },
      {
        "parameters": {
          "conditions": {
            "string": [
              {
                "value1": "={{$json[\"Email\"]}}",
                "operation": "isEmpty"
              }
            ]
          }
        },
        "name": "Filter Empty Emails",
        "type": "n8n-nodes-base.if",
        "typeVersion": 1,
        "position": [680, 300]
      },
      {
        "parameters": {
          "method": "POST",
          "url": "https://api.enrow.io/email/find/single",
          "authentication": "headerAuth",
          "sendBody": true,
          "bodyContentType": "json",
          "jsonBody": "={\n  \"company_domain\": \"{{$json[\"Company Domain\"]}}\",\n  \"fullname\": \"{{$json[\"First Name\"]}} {{$json[\"Last Name\"]}}\"\n}"
        },
        "name": "Find Email",
        "type": "n8n-nodes-base.httpRequest",
        "typeVersion": 3,
        "position": [900, 300],
        "credentials": {
          "headerAuth": {"name": "Enrow API"}
        }
      },
      {
        "parameters": {
          "amount": 5,
          "unit": "seconds"
        },
        "name": "Wait 5s",
        "type": "n8n-nodes-base.wait",
        "typeVersion": 1,
        "position": [1120, 300]
      },
      {
        "parameters": {
          "method": "GET",
          "url": "=https://api.enrow.io/email/find/single?id={{$json[\"id\"]}}",
          "authentication": "headerAuth"
        },
        "name": "Get Result",
        "type": "n8n-nodes-base.httpRequest",
        "typeVersion": 3,
        "position": [1340, 300],
        "credentials": {
          "headerAuth": {"name": "Enrow API"}
        }
      },
      {
        "parameters": {
          "conditions": {
            "string": [
              {
                "value1": "={{$json[\"status\"]}}",
                "value2": "completed"
              }
            ]
          }
        },
        "name": "Check if Complete",
        "type": "n8n-nodes-base.if",
        "typeVersion": 1,
        "position": [1560, 300]
      },
      {
        "parameters": {
          "method": "POST",
          "url": "https://api.enrow.io/email/verify/single",
          "authentication": "headerAuth",
          "sendBody": true,
          "bodyContentType": "json",
          "jsonBody": "={\n  \"email\": \"{{$json[\"email\"]}}\"\n}"
        },
        "name": "Verify Email",
        "type": "n8n-nodes-base.httpRequest",
        "typeVersion": 3,
        "position": [1780, 300],
        "credentials": {
          "headerAuth": {"name": "Enrow API"}
        }
      },
      {
        "parameters": {
          "operation": "update",
          "sheetId": "YOUR_SHEET_ID",
          "range": "=Contacts!A{{$json[\"row\"]}}:F{{$json[\"row\"]}}",
          "options": {
            "valueInputMode": "USER_ENTERED"
          }
        },
        "name": "Update Sheet",
        "type": "n8n-nodes-base.googleSheets",
        "typeVersion": 3,
        "position": [2000, 300]
      }
    ],
    "connections": {
      "Every Hour": {
        "main": [[{"node": "Read Contacts", "type": "main", "index": 0}]]
      },
      "Read Contacts": {
        "main": [[{"node": "Filter Empty Emails", "type": "main", "index": 0}]]
      },
      "Filter Empty Emails": {
        "main": [[{"node": "Find Email", "type": "main", "index": 0}]]
      },
      "Find Email": {
        "main": [[{"node": "Wait 5s", "type": "main", "index": 0}]]
      },
      "Wait 5s": {
        "main": [[{"node": "Get Result", "type": "main", "index": 0}]]
      },
      "Get Result": {
        "main": [[{"node": "Check if Complete", "type": "main", "index": 0}]]
      },
      "Check if Complete": {
        "main": [
          [{"node": "Verify Email", "type": "main", "index": 0}],
          [{"node": "Wait 5s", "type": "main", "index": 0}]
        ]
      },
      "Verify Email": {
        "main": [[{"node": "Update Sheet", "type": "main", "index": 0}]]
      }
    }
  }
  ```
</details>

## Wie können Sie den Workflow verbessern?

Sobald der Basis-Workflow läuft, machen ihn diese Ergänzungen robuster und kosteneffizienter.

### Fehlerbehandlung hinzufügen

1. Fügen Sie einen **"Error Trigger"**-Knoten hinzu
2. Fügen Sie einen **"Send Email"**- oder **"Slack"**-Knoten hinzu, um bei Fehlern zu benachrichtigen
3. Protokollieren Sie fehlgeschlagene Zeilen in einem separaten Sheet

Welche Statuscodes Ihnen begegnen können und wie Sie darauf reagieren, erfahren Sie unter [Fehlerbehandlung](/de/error-handling) und [Statuscodes](/de/status-codes).

### In großen Mengen verarbeiten

Für bessere Leistung bei vielen Kontakten wechseln Sie von Einzelsuchen zu einem Batch:

1. Ändern Sie den Find-Email-Knoten, um `/email/find/bulk` zu verwenden
2. Fassen Sie Kontakte in Gruppen von 100 zusammen
3. Verarbeiten Sie alle auf einmal statt einzeln

Beispiel für eine Bulk-Anfrage:

```json theme={null}
{
  "searches": [
    {
      "company_domain": "{{$json[\"Company Domain\"]}}",
      "fullname": "{{$json[\"First Name\"]}} {{$json[\"Last Name\"]}}"
    }
  ]
}
```

Der Endpunkt [E-Mails finden](/de/api-reference/email-finder/find-bulk) akzeptiert bis zu 5.000 Suchen pro Batch.

### Bedingte Verifizierung hinzufügen

Verifizieren Sie nur E-Mails mit hoher Konfidenz, um Credits zu sparen:

```javascript theme={null}
// In IF node
{{$json["confidence"]}} === "high"
```

Das spart Credits, indem die Verifizierung für unsichere E-Mails übersprungen wird.

## Wann sollten Sie diesen Workflow verwenden?

Dieser Workflow eignet sich gut für:

* **Vertriebsteams**: Interessentenlisten vor der Ansprache anreichern
* **Recruiter**: Kontaktinformationen von Kandidaten finden
* **Marketer**: E-Mail-Listen aus Unternehmensdatenbanken aufbauen
* **Datenteams**: CRM-Daten bereinigen und anreichern

## Was sind die Best Practices?

<AccordionGroup>
  <Accordion title="Rate-Limits">
    Bei der Verarbeitung großer Listen (1000+ Kontakte):

    * Verwenden Sie Bulk-Endpunkte
    * Fügen Sie Verzögerungen zwischen Batches ein
    * Oder upgraden Sie Ihren Enrow-Tarif

    Siehe [Rate-Limits](/de/rate-limits) für die aktuellen Anfrage-Schwellenwerte.
  </Accordion>

  <Accordion title="Datenqualität">
    * Verifizieren Sie E-Mails immer, bevor Sie sie verwenden
    * Prüfen Sie die Konfidenzwerte
    * Entfernen Sie Ergebnisse von geringer Qualität
  </Accordion>

  <Accordion title="Kostenoptimierung">
    * Entfernen Sie Duplikate aus Kontakten vor der Verarbeitung
    * Cachen Sie Ergebnisse, um erneute Suchen zu vermeiden
    * Verwenden Sie bedingte Logik, um unnötige API-Aufrufe zu überspringen
  </Accordion>

  <Accordion title="Fehlerbehebung">
    * Protokollieren Sie alle API-Antworten
    * Verfolgen Sie fehlgeschlagene Anreicherungen
    * Wiederholen Sie fehlgeschlagene Suchen automatisch
  </Accordion>
</AccordionGroup>

## Wie beheben Sie häufige Probleme?

**Workflow läuft nicht automatisch?**

* Prüfen Sie, ob der Cron-Trigger aktiviert ist
* Überprüfen Sie, ob der Zeitplan korrekt ist

**Keine E-Mails gefunden?**

* Prüfen Sie, ob die Unternehmensdomains korrekt sind
* Überprüfen Sie, ob die Namen richtig geschrieben sind
* Versuchen Sie es nur mit der Unternehmensdomain (ohne Namen)

**Sheet wird nicht aktualisiert?**

* Prüfen Sie die Google-Sheets-Berechtigungen
* Überprüfen Sie, ob der Bereich zu Ihren Daten passt
* Testen Sie den Update-Knoten manuell

## FAQ

<AccordionGroup>
  <Accordion title="Brauche ich einen Webhook oder kann ich Ergebnisse einfach abfragen?">
    Beides funktioniert. Der Email Finder läuft asynchron, daher können Sie entweder einen Webhook im Feld `settings.webhook` registrieren (Option A) oder den Endpunkt [Einzelergebnis abrufen](/de/api-reference/email-finder/get-single-result) per Timer abfragen (Option B). Webhooks werden empfohlen, da sie vergebliche Abfrageanfragen vermeiden und Ergebnisse zurückgeben, sobald die Suche abgeschlossen ist. Siehe [Wie Webhooks funktionieren](/de/how-webhooks-work).
  </Accordion>

  <Accordion title="Wie viele Credits verbraucht der Workflow?">
    Jede Email-Finder-Suche und jede Email-Verifier-Prüfung verbraucht Credits pro Aufruf. Beide bei jedem Kontakt auszuführen verbraucht mehr Credits als nur das Finden, fügen Sie daher eine bedingte Verifizierung hinzu, um unsichere E-Mails zu überspringen. Für genaue Kosten pro Endpunkt siehe [Credits & Abrechnung](/de/credits-billing).
  </Accordion>

  <Accordion title="Wie authentifiziere ich die HTTP-Request-Knoten?">
    Verwenden Sie die Header-Auth-Anmeldedaten von n8n mit dem Header-Namen `x-api-key` und Ihrem Enrow-API-Schlüssel als Wert, und verwenden Sie dann dieselben Anmeldedaten für jeden Enrow-Knoten erneut. Alle Details finden Sie unter [Authentifizierung](/de/authentication).
  </Accordion>

  <Accordion title="Was, wenn ich Tausende von Kontakten habe?">
    Wechseln Sie den Find-Email-Knoten zum Endpunkt [E-Mails finden](/de/api-reference/email-finder/find-bulk), der bis zu 5.000 Suchen pro Batch akzeptiert, und bleiben Sie innerhalb der [Rate-Limits](/de/rate-limits) Ihres Tarifs.
  </Accordion>
</AccordionGroup>

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Verifizierungs-Workflow" icon="shield-check" href="/de/playbooks/n8n/lead-verification-workflow">
    Verifizieren Sie bestehende E-Mail-Listen mit n8n und Enrow.
  </Card>

  <Card title="E-Mail finden" icon="envelope" href="/de/api-reference/email-finder/find-single">
    Entdecken Sie den Email-Finder-Endpunkt, der in diesem Workflow verwendet wird.
  </Card>

  <Card title="E-Mail verifizieren" icon="circle-check" href="/de/api-reference/email-verifier/verify-single">
    Prüfen Sie, ob eine E-Mail-Adresse gültig und zustellbar ist.
  </Card>

  <Card title="Webhooks" icon="bell" href="/de/how-webhooks-work">
    Werden Sie automatisch benachrichtigt, wenn eine Suche abgeschlossen ist.
  </Card>
</CardGroup>
