Hinzufügen der SendGrid-Integration
SendGrid ist ein cloudbasierter Dienst für die Zustellung transaktionaler und Marketing-E-Mails. Durch die Verbindung dieser Integration kann Ihre Anwendung E-Mails programmatisch versenden (z. B. Willkommens-E-Mails, Passwort-Zurücksetzungen oder Benachrichtigungen).
Konfigurationsschritte
Abschnitt betitelt „Konfigurationsschritte“Nachdem Sie SendGrid aus der Integrationsliste ausgewählt haben, wird ein Konfigurations-Modal angezeigt. Sie müssen die folgenden Anmeldeinformationen angeben, um die Verbindung herzustellen:
1. API-Schlüssel
Abschnitt betitelt „1. API-Schlüssel“Dies ist das Authentifizierungstoken, das in Ihrem SendGrid-Konto generiert wird.
- Eingabe: Fügen Sie Ihren privaten SendGrid-API-Schlüssel in das Textfeld ein.
- Hilfe: Wenn Sie keinen haben, klicken Sie auf den im Modal bereitgestellten Link “Wo finde ich den API-Schlüssel?” für Anweisungen zur Generierung.
2. Umgebung
Abschnitt betitelt „2. Umgebung“Geben Sie den Umgebungskontext für diese Integration an.
- Eingabe: Geben Sie die Umgebungs-ID (z. B.
Production,Stagingoder ein spezifisches Konfigurations-Tag) im Feld Umgebung ein.
Abschluss der Verbindung
Abschnitt betitelt „Abschluss der Verbindung“Sobald die Felder ausgefüllt sind:
- Überprüfen Sie die Statusleiste (zeigt derzeit Not Connected an).
- Klicken Sie auf die schwarze Schaltfläche Add unten rechts, um die Anmeldeinformationen zu speichern und die Integration zu aktivieren.


SendGrid-Integration API-Referenz
Abschnitt betitelt „SendGrid-Integration API-Referenz“SendGrid-Konfiguration
Abschnitt betitelt „SendGrid-Konfiguration“SendGrid API-Schlüssel konfigurieren
Abschnitt betitelt „SendGrid API-Schlüssel konfigurieren“Konfiguriert den SendGrid-API-Schlüssel für ein spezifisches Projekt und eine Umgebung.
Mutation:
mutation { sendgrid_configureSendGrid ( apiKey: "SG._api_key_here" )}E-Mails senden
Abschnitt betitelt „E-Mails senden“Einfache E-Mail senden
Abschnitt betitelt „Einfache E-Mail senden“Sendet eine E-Mail an einen oder mehrere Empfänger.
Mutation:
mutation sendgrid_sendEmail { sendgrid_sendEmail ( email: { from: { email: "sender@archie.com", name: "Sender Name" }, subject: "Test Email", to: { email: "recipient@gmail.com", name: "Recipient Name" }, content: { type: "text/html", value: "<h1>Hello World</h1><p>This is a test email.</p>" } } ) { messageId success }}Response:
{ "data": { "sendgrid_sendEmail": { "messageId": "sent-1234567890", "success": true } }}E-Mail mit CC und BCC senden
Abschnitt betitelt „E-Mail mit CC und BCC senden“Mutation:
mutation sendgrid_sendEmail { sendgrid_sendEmail ( email: { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient@example.com" name: "Recipient Name" } ] cc: [ { email: "cc@example.com" name: "CC Recipient" } ] bcc: [ { email: "bcc@example.com" } ] subject: "Email with CC and BCC" content: [ { type: "text/html" value: "<h1>Hello</h1><p>This email has CC and BCC recipients.</p>" } ] } ) { messageId success }}E-Mail mit Anhängen senden
Abschnitt betitelt „E-Mail mit Anhängen senden“Mutation:
mutation sendgrid_sendEmail { sendgrid_sendEmail( email: { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient@example.com" name: "Recipient Name" } ] subject: "Email with Attachment" content: [ { type: "text/html" value: "<h1>Hello</h1><p>Please find attached file.</p>" } ] attachments: [ { content: "SGVsbG8gV29ybGQ=" type: "text/plain" filename: "document.txt" disposition: "attachment" } ] } ) { messageId success }}Hinweis: Das Feld content in Anhängen muss Base64-codiert sein.
E-Mail mit Kategorien und Tags senden
Abschnitt betitelt „E-Mail mit Kategorien und Tags senden“Mutation:
mutation sendgrid_sendEmail { sendgrid_sendEmail( email: { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient@example.com" name: "Recipient Name" } ] subject: "Categorized Email" content: [ { type: "text/html" value: "<h1>Hello</h1>" } ] categories: ["transactional", "notification"] tags: ["important", "urgent"] } ) { messageId success }}Geplante E-Mail senden
Abschnitt betitelt „Geplante E-Mail senden“Mutation:
mutation sendgrid_sendEmail { sendgrid_sendEmail( email: { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient@example.com" name: "Recipient Name" } ] subject: "Scheduled Email" content: [ { type: "text/html" value: "<h1>Hello</h1>" } ] sendAt: "2025-12-25T10:00:00Z" } ) { messageId success }}E-Mail mit benutzerdefinierten Argumenten senden
Abschnitt betitelt „E-Mail mit benutzerdefinierten Argumenten senden“Mutation:
mutation sendgrid_sendEmail { sendgrid_sendEmail( email: { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient@example.com" name: "Recipient Name" } ] subject: "Email with Custom Args" content: [ { type: "text/html" value: "<h1>Hello</h1>" } ] customArgs: { orderId: "12345" userId: "67890" campaignId: "abc123" } } ) { messageId success }}Massen-E-Mails senden
Abschnitt betitelt „Massen-E-Mails senden“Mehrere E-Mails senden
Abschnitt betitelt „Mehrere E-Mails senden“Mutation:
mutation sendgrid_sendBulkEmail { sendgrid_sendBulkEmail( emails: { emails: [ { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient1@example.com" name: "Recipient 1" } ] subject: "Bulk Email 1" content: [ { type: "text/html" value: "<h1>Email 1</h1>" } ] } { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient2@example.com" name: "Recipient 2" } ] subject: "Bulk Email 2" content: [ { type: "text/html" value: "<h1>Email 2</h1>" } ] } ] } ) { messageIds success }}Response:
{ "data": { "sendgrid_sendBulkEmail": { "messageIds": ["sent-1234567890", "sent-1234567891"], "success": true } }}E-Mails mit Vorlagen senden
Abschnitt betitelt „E-Mails mit Vorlagen senden“E-Mail mit dynamischer Vorlage senden
Abschnitt betitelt „E-Mail mit dynamischer Vorlage senden“Mutation:
mutation sendgrid_sendTemplate { sendgrid_sendTemplate( email: { from: { email: "sender@example.com" name: "Sender Name" } to: [ { email: "recipient@example.com" name: "Recipient Name" } ] templateId: "d-1234567890abcdef" substitutions: { name: "John Doe" orderNumber: "12345" totalAmount: "$99.99" } } ) { messageId success }}Response:
{ "data": { "sendgrid_sendTemplate": { "messageId": "sent-1234567890", "success": true } }}Kontaktverwaltung
Abschnitt betitelt „Kontaktverwaltung“Kontakt hinzufügen
Abschnitt betitelt „Kontakt hinzufügen“Mutation:
mutation sendgrid_addContact { sendgrid_addContact( contact: { email: "newcontact@example.com" firstName: "John" lastName: "Doe" customFields: { company: "Acme Corp" phone: "+1234567890" position: "Developer" } listIds: ["list-id-1", "list-id-2"] } )}Response:
{ "data": { "sendgrid_addContact": true }}Kontakt aktualisieren
Abschnitt betitelt „Kontakt aktualisieren“Mutation:
mutation sendgrid_updateContact { sendgrid_updateContact( contact: { email: "existing@example.com" firstName: "Jane" lastName: "Smith" customFields: { company: "New Company" phone: "+0987654321" } } )}Response:
{ "data": { "sendgrid_updateContact": true }}Kontakt löschen
Abschnitt betitelt „Kontakt löschen“Mutation:
mutation sendgrid_deleteContact { sendgrid_deleteContact( email: "contact@example.com" )}Response:
{ "data": { "sendgrid_deleteContact": true }}Analytik und Statistiken
Abschnitt betitelt „Analytik und Statistiken“E-Mail-Statistiken abrufen
Abschnitt betitelt „E-Mail-Statistiken abrufen“Query:
query sendgrid_getEmailStats { sendgrid_getEmailStats ( startDate: "2025-01-01" endDate: "2025-01-31" ) { opens clicks bounces spamReports delivered startDate endDate }}Response:
{ "data": { "sendgrid_getEmailStats": { "opens": 150, "clicks": 75, "bounces": 5, "spamReports": 2, "delivered": 1000, "startDate": "2025-01-01T00:00:00Z", "endDate": "2025-01-31T00:00:00Z" } }}E-Mail validieren
Abschnitt betitelt „E-Mail validieren“Query:
query sendgrid_validateEmail { sendgrid_validateEmail ( email: "test@example.com" ) { valid score local domain reason suggestions }}Response (mit SendGrid Premium):
{ "data": { "sendgrid_validateEmail": { "valid": true, "score": 0.95, "local": "test", "domain": "example.com", "reason": "", "suggestions": [] } }}Response (Basisvalidierung - wenn SendGrid Premium nicht verfügbar ist):
{ "data": { "sendgrid_validateEmail": { "valid": true, "score": 0.8, "local": "test", "domain": "example.com", "reason": "Basic validation (SendGrid premium validation not available)", "suggestions": [] } }}Hinweis: Der SendGrid E-Mail-Validierungs-Endpoint (/v3/validations/email) erfordert spezielle Berechtigungen und ist möglicherweise nicht in allen Konten verfügbar. Wenn Ihr API-Schlüssel keinen Zugriff auf diesen Endpoint hat (Fehler 403), verwendet das System automatisch eine Basisvalidierung basierend auf Regex als Fallback.
Vollständige Beispiele mit Variablen
Abschnitt betitelt „Vollständige Beispiele mit Variablen“Beispiel mit GraphQL-Variablen
Abschnitt betitelt „Beispiel mit GraphQL-Variablen“Request:
{ "query": "mutation SendEmail($email: EmailInput!) { sendgrid_sendEmail(email: $email) { messageId success } }", "variables": { "email": { "from": { "email": "sender@example.com", "name": "Sender Name" }, "to": [ { "email": "recipient@example.com", "name": "Recipient Name" } ], "subject": "Test Email", "content": [ { "type": "text/html", "value": "<h1>Hello World</h1>" } ] } }}Fehlerbehandlung
Abschnitt betitelt „Fehlerbehandlung“Fehlerbeispiel
Abschnitt betitelt „Fehlerbeispiel“Request:
{ "query": "mutation { sendgrid_sendEmail(email: { from: { email: \"invalid\" }, to: [], subject: \"Test\", content: [] }) { messageId success } }"}Response Error:
{ "errors": [ { "message": "validation error: at least one recipient is required", "path": ["sendgrid_sendEmail"] } ], "data": null}Häufige Fehler
Abschnitt betitelt „Häufige Fehler“-
Projekt-ID fehlt:
{"errors": [{"message": "project ID is required in context"}]} -
Konfiguration nicht gefunden:
{"errors": [{"message": "sendgrid configuration not found for project: xxx, environment: master"}]} -
API-Schlüssel ungültig:
{"errors": [{"message": "sendgrid API error: status 401, body: ..."}]}
Webhooks
Abschnitt betitelt „Webhooks“Webhooks-Endpoint
Abschnitt betitelt „Webhooks-Endpoint“Der Webhooks-Endpoint ist verfügbar unter:
- HTTP:
POST http://localhost:8080/webhooks/sendgrid - Lambda:
POST /webhooks/sendgrid
SendGrid-Konfiguration
Abschnitt betitelt „SendGrid-Konfiguration“- Gehen Sie zu SendGrid Dashboard > Settings > Mail Settings > Event Webhook
- Konfigurieren Sie die URL:
https://ihre-domain.com/webhooks/sendgrid - Wählen Sie die Ereignisse aus, die Sie empfangen möchten
- Konfigurieren Sie den Verifizierungsschlüssel in der Umgebungsvariable
WEBHOOK_VERIFICATION_KEY
Unterstützte Ereignisse
Abschnitt betitelt „Unterstützte Ereignisse“processed: E-Mail verarbeitetdelivered: E-Mail zugestelltopened: E-Mail geöffnetclicked: Link geklicktbounce: E-Mail zurückgesendetdropped: E-Mail verworfenspamreport: Als Spam gemeldetunsubscribe: Abgemeldet