---
title: "SendGrid Connector"
description: "Vollständiger Leitfaden zur SendGrid-Integration für die Synchronisation von Kontakten, Transactional-E-Mails, Marketing-Kampagnen und Engagement-Events mit Brevo über Tajo."
url: https://tajo.io/de/docs/connectors/marketing/sendgrid/
markdown: https://tajo.io/de/docs/connectors/marketing/sendgrid.md
lang: de-DE
robots: noindex
---

Beantrage frühzeitigen Zugang

Gib deinen Vornamen und deine geschäftliche E-Mail-Adresse ein. Wir senden dir einen Link, mit dem du deine Anfrage für den Tajo-Zugang bestätigst.

# SendGrid Connector

Connector-Status: In Arbeit Im Aufbau. Noch nicht verifiziert.

| Quellfeld | Zielfeld | Beispielwert |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbinde dein SendGrid-Konto über Tajo mit Brevo für die Migration deiner E-Mail-Infrastruktur, die Synchronisation von Kontakten, den Transfer von Kampagnendaten und einheitliche Engagement-Analytics über beide Plattformen hinweg.

## Überblick

| Eigenschaft | Wert |
| --- | --- |
| **Plattform** | SendGrid (Twilio) |
| **Kategorie** | Marketing |
| **Einrichtungsaufwand** | Einfach |
| **Offizielle Integration** | Nein |
| **Synchronisierte Daten** | Kontakte, Kampagnen, Transactional-E-Mail, Events |
| **API-Basis-URL** | `https://api.sendgrid.com/v3` |

## Funktionen

- **Kontaktmigration** - Migriere SendGrid-Marketing-Kontakte inklusive Custom Fields zu Brevo
- **Transactional-E-Mail-Sync** - Tracke Transactional-E-Mail-Events für ein einheitliches Reporting
- **Kampagnendaten** - Synchronisiere Performance-Daten von Single Sends und Automation-Kampagnen
- **Event-Webhooks** - Leite E-Mail-Events (delivered, opened, clicked, bounced) an Brevo weiter
- **Suppression-Sync** - Migriere Bounce-, Block- und Unsubscribe-Listen für die Compliance
- **Template-Migration** - Exportiere Dynamic Transactional Templates zur Nutzung in Brevo
- **Sender-Verifizierung** - Synchronisiere verifizierte Sender Identities und die Domain-Authentifizierung
- **Statistik-Sync** - Importiere historische Engagement-Statistiken in Brevo-Attribute

## Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

1. Ein SendGrid-Konto (Free, Essentials, Pro oder Premier)
2. Einen SendGrid-API-Schlüssel mit den erforderlichen Berechtigungen
3. Ein Brevo-Konto mit API-Zugriff
4. Ein Tajo-Konto

## Authentifizierung

### API-Schlüssel-Authentifizierung

SendGrid nutzt eine Bearer-Token-Authentifizierung.

```bash
curl https://api.sendgrid.com/v3/marketing/contacts \
  -H "Authorization: Bearer SG.YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

Erstelle API-Schlüssel in den SendGrid-Einstellungen unter Settings > API Keys mit bestimmten Berechtigungsstufen:

- **Full Access** - Vollständiger API-Zugriff
- **Restricted Access** - Granulare Berechtigungssteuerung
- **Billing Access** - Ausschließlich Billing-Operationen

#### Erforderliche Berechtigungen

```
Marketing: Full Access
  - Contacts (read)
  - Single Sends (read)
  - Automations (read)
Mail Send: Full Access
  - Mail Send (read)
Stats: Read Access
Suppressions: Read Access
Tracking: Read Access
```

Sicherheit des API-Schlüssels

SendGrid-API-Schlüssel werden nur einmal bei der Erstellung angezeigt. Speichere sie sicher ab. Geht ein Schlüssel verloren, musst du einen neuen Schlüssel anlegen.

## Konfiguration

### Grundeinrichtung

```yaml
connectors:
  sendgrid:
    enabled: true
    api_key: "${SENDGRID_API_KEY}"

    # Data sync options
    sync:
      contacts: true
      campaigns: true
      transactional: true
      suppressions: true
      statistics: true

    # List mapping to Brevo
    list_mapping:
      "All Contacts": 60
      "Newsletter": 61
      "Transactional": 62
```

### Feldzuordnung

Ordne SendGrid-Kontaktfelder den Brevo-Kontaktattributen zu:

#### Standardzuordnungen

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-Mail-Adresse des Kontakts (eindeutige Kennung) |
| `first_name` optional | string | Wird dem FIRSTNAME-Attribut zugeordnet |
| `last_name` optional | string | Wird dem LASTNAME-Attribut zugeordnet |
| `phone_number` optional | string | Wird dem SMS-Attribut zugeordnet |
| `city` optional | string | Stadt des Kontakts |
| `country` optional | string | Land des Kontakts |
| `custom_fields` optional | object | Key-Value-Paare für Custom Fields |
| `list_ids` optional | array | Mitgliedschaften in SendGrid-Listen |

#### Zuordnung benutzerdefinierter Felder

```yaml
field_mapping:
  # Standard fields
  email: email
  first_name: FIRSTNAME
  last_name: LASTNAME
  phone_number: SMS

  # Location fields
  city: CITY
  state_province_region: STATE
  country: COUNTRY
  postal_code: POSTAL_CODE

  # Engagement metrics
  avg_open_rate: AVG_OPEN_RATE
  avg_click_rate: AVG_CLICK_RATE

  # Custom fields
  custom_fields.company: COMPANY_NAME
  custom_fields.plan: PLAN_TYPE
```

## API-Endpoints

### Marketing-Kontakte

| Methode | Endpoint | Beschreibung |
| --- | --- | --- |
| `PUT` | `/v3/marketing/contacts` | Kontakte hinzufügen oder aktualisieren |
| `POST` | `/v3/marketing/contacts/search` | Kontakte durchsuchen |
| `GET` | `/v3/marketing/contacts/count` | Anzahl der Kontakte abrufen |
| `POST` | `/v3/marketing/contacts/exports` | Kontakte exportieren |
| `DELETE` | `/v3/marketing/contacts` | Kontakte löschen |
| `GET` | `/v3/marketing/lists` | Alle Kontaktlisten auflisten |

### Transactional-E-Mail (Mail Send)

| Methode | Endpoint | Beschreibung |
| --- | --- | --- |
| `POST` | `/v3/mail/send` | Eine E-Mail versenden |
| `GET` | `/v3/templates` | Dynamic Templates auflisten |
| `GET` | `/v3/templates/{id}` | Template-Details abrufen |

### Kampagnen (Single Sends)

| Methode | Endpoint | Beschreibung |
| --- | --- | --- |
| `GET` | `/v3/marketing/singlesends` | Single Sends auflisten |
| `GET` | `/v3/marketing/singlesends/{id}` | Details eines Single Send abrufen |
| `GET` | `/v3/marketing/automations` | Automationen auflisten |

### Statistiken

| Methode | Endpoint | Beschreibung |
| --- | --- | --- |
| `GET` | `/v3/stats` | Globale E-Mail-Statistiken abrufen |
| `GET` | `/v3/categories/stats` | Statistiken pro Kategorie abrufen |
| `GET` | `/v3/marketing/stats/singlesends` | Single-Send-Statistiken abrufen |

### Suppressions

| Methode | Endpoint | Beschreibung |
| --- | --- | --- |
| `GET` | `/v3/suppression/bounces` | Gebouncte E-Mails auflisten |
| `GET` | `/v3/suppression/blocks` | Blockierte E-Mails auflisten |
| `GET` | `/v3/suppression/spam_reports` | Spam-Meldungen auflisten |
| `GET` | `/v3/suppression/unsubscribes` | Globale Abmeldungen auflisten |

## Events

### E-Mail-Events (über den Event Webhook)

| Event | Auslöser | Anwendungsfall |
| --- | --- | --- |
| `processed` | E-Mail von SendGrid angenommen | Versandbestätigung |
| `delivered` | E-Mail an Empfänger:in zugestellt | Zustell-Tracking |
| `open` | E-Mail geöffnet | Engagement-Scoring |
| `click` | Link angeklickt | Interessen-Tracking |
| `bounce` | E-Mail ist gebounced | Listen-Hygiene |
| `dropped` | E-Mail unterdrückt | Compliance-Prüfung |
| `deferred` | Zustellung zurückgestellt | Retry-Monitoring |
| `spam_report` | Als Spam markiert | Reputations-Management |
| `unsubscribe` | Abmeldung über Link | Präferenz-Sync |

## Code-Beispiele

### Connector initialisieren

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Connect SendGrid
await tajo.connectors.connect('sendgrid', {
  apiKey: process.env.SENDGRID_API_KEY
});
```

### Kontakte zu Brevo migrieren

```javascript
// Full contact migration from SendGrid to Brevo
await tajo.connectors.sync('sendgrid', {
  type: 'full',
  resources: ['contacts', 'suppressions'],
  options: {
    includeCustomFields: true,
    migrateListMemberships: true,
    migrateSuppressions: true
  }
});

// Check migration status
const status = await tajo.connectors.status('sendgrid');
console.log(status);
// {
//   connected: true,
//   lastSync: '2024-01-15T10:30:00Z',
//   contactsMigrated: 45000,
//   suppressionsSynced: 3200,
//   listsMapped: 8
// }
```

### E-Mail-Events weiterleiten

```javascript
// Handle SendGrid Event Webhook
app.post('/webhooks/sendgrid', async (req, res) => {
  const signature = req.get('X-Twilio-Email-Event-Webhook-Signature');

  // Verify webhook signature (ECDSA)
  if (!verifySendGridSignature(req.body, signature)) {
    return res.status(401).send('Unauthorized');
  }

  // Process batch of events
  for (const event of req.body) {
    await tajo.connectors.handleWebhook('sendgrid', {
      type: event.event,
      email: event.email,
      timestamp: event.timestamp,
      payload: event
    });
  }

  res.status(200).send('OK');
});
```

## Rate Limits

Rate Limits der SendGrid-API:

| Endpoint | Limit | Details |
| --- | --- | --- |
| Mail Send (`/v3/mail/send`) | Abhängig vom Plan | Free: 100/Tag, Essentials: abhängig vom Plan |
| Marketing Contacts PUT | 3 Anfragen/Sekunde | Batch von bis zu 30.000 Kontakten |
| Marketing Contacts Search | 50 Anfragen/Sekunde | Pro API-Schlüssel |
| Allgemeine API | 1.000 Anfragen/Sekunde | Pro API-Schlüssel |
| Event Webhook | Batch-Zustellung | Bis zu 1.000 Events pro POST |

Mail-Send-Limits

Die Mail-Send-Limits hängen von deinem SendGrid-Plan ab. Free-Konten sind auf 100 E-Mails pro Tag beschränkt. Prüfe die exakten Versandlimits in deinem Plan.

## Fehlerbehebung

### Häufige Probleme

| Problem | Ursache | Lösung |
| --- | --- | --- |
| 401 Unauthorized | Ungültiger API-Schlüssel | API-Schlüssel in den SendGrid-Einstellungen prüfen |
| 403 Forbidden | Unzureichende API-Schlüssel-Berechtigungen | Neuen Schlüssel mit den benötigten Scopes anlegen |
| Kontakt-Export steht aus | Verarbeitung eines großen Datensatzes | Den Export-Status-Endpoint abfragen, bis der Export abgeschlossen ist |
| Suppression-Sync unvollständig | Pagination erforderlich | Pagination mit Offset-Parameter umsetzen |
| Event-Webhook nicht empfangen | URL nicht verifiziert | Verifizierung der Webhook-URL in SendGrid abschließen |

### Debug-Modus

Ausführliches Logging aktivieren:

```yaml
connectors:
  sendgrid:
    debug: true
    log_level: verbose
    log_webhooks: true
```

### Verbindung testen

```bash
tajo connectors test sendgrid
# ✓ API connection successful
# ✓ Contacts readable
# ✓ Lists accessible
# ✓ Statistics readable
# ✓ Suppressions accessible
```

## Best Practices

1. **Suppressions zuerst migrieren** - Stelle sicher, dass Bounces, Blocks und Unsubscribes in Brevo vorhanden sind, bevor du versendest
2. **Batch-Uploads für Kontakte nutzen** - Per PUT bis zu 30.000 Kontakte pro Anfrage übertragen, um effizient zu arbeiten
3. **Event-Webhook verifizieren** - Signierte Webhooks mit ECDSA-Verifizierung aktivieren
4. **Custom Fields zuordnen** - Lege entsprechende Brevo-Attribute vor der Kontaktmigration an
5. **Engagement-Daten synchronisieren** - Importiere historische Stats zur Segmentierung in Brevo
6. **Asynchrone Exporte verarbeiten** - Kontakt-Exporte laufen asynchron; Status bis zum Abschluss abfragen

## Sicherheit

- **API-Schlüssel-Authentifizierung** - Bearer Token mit granularen Berechtigungsstufen
- **Signierung der Event-Webhooks** - ECDSA-Signaturprüfung der Webhook-Payloads
- **TLS-Verschlüsselung** - Die gesamte API-Kommunikation wird per HTTPS verschlüsselt
- **IP-Zugriffs-Management** - Beschränke Dashboard- und API-Zugriff per IP
- **Zwei-Faktor-Authentifizierung** - 2FA für den Kontozugriff verfügbar

## Verwandte Ressourcen

- [SendGrid API-Dokumentation](https://docs.sendgrid.com/api-reference)
- [SendGrid Event-Webhook-Leitfaden](https://docs.sendgrid.com/for-developers/tracking-events/event)
- [Brevo Connector](https://tajo.io/de/docs/connectors/marketing/brevo)
- [Mailchimp Connector](https://tajo.io/de/docs/connectors/marketing/mailchimp)
- [Customer-Sync-Skill](https://tajo.io/de/docs/skills/data-sync/customer-sync)
