Zum Hauptinhalt springen

Einführung

Synchronisieren Sie automatisch Ihre zahlenden Kunden mit MailerLite-Abonnentenlisten, wenn Zahlungsevents auftreten. Fügen Sie Kunden bestimmten Gruppen hinzu, lösen Sie Automatisierungs-Workflows aus und halten Sie Ihre E-Mail-Marketinglisten mit echten Zahlungsdaten auf dem neuesten Stand. MailerLite ist eine leistungsstarke E-Mail-Marketing-Plattform für Newsletter, Kampagnen und Automatisierungen. Diese Integration hilft Ihnen, Abonnenten basierend auf Zahlungsaktivitäten automatisch zu verwalten - perfekt für Onboarding-Sequenzen, Kundensegmentierung und gezielte Marketingkampagnen.
Diese Integration erfordert Ihren MailerLite API-Schlüssel zur Authentifizierung. Sie können einen von Ihrer MailerLite Integrationsseite generieren.

Erste Schritte

1

Webhook-Bereich öffnen

Navigieren Sie in Ihrem Dodo Payments-Dashboard zu Webhooks + Endpoint hinzufügen und erweitern Sie das Dropdown-Menü für Integrationen.
Endpoint hinzufügen und Dropdown-Menü für Integrationen
2

MailerLite auswählen

Wählen Sie die Integrationskarte MailerLite aus.
3

API-Schlüssel eingeben

Geben Sie Ihren MailerLite API-Schlüssel in der Konfiguration ein.
4

Transformation konfigurieren

Bearbeiten Sie den Transformationscode, um Abonnentendaten für die API von MailerLite zu formatieren.
5

Testen & Erstellen

Testen Sie mit Beispielpayloads und klicken Sie auf Erstellen, um die Abonnentensynchronisierung zu aktivieren.
6

Fertig!

Zahlungsevents synchronisieren nun automatisch Kunden mit Ihren MailerLite-Listen.

Transformationscode-Beispiele

Kunde bei erfolgreicher Zahlung hinzufügen

add_customer.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        company: p.customer.business_name || "",
        last_name: ""
      },
      groups: ["your-group-id-here"],
      status: "active"
    };
  }
  return webhook;
}

Abonnent zu mehreren Gruppen basierend auf Produkt hinzufügen

product_segmentation.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    
    // Determine groups based on product or amount
    const groups = ["customers-group-id"];
    
    // Add to premium group if high-value purchase
    if (p.total_amount >= 10000) { // $100+
      groups.push("premium-customers-group-id");
    }
    
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        last_purchase_amount: (p.total_amount / 100).toFixed(2),
        last_purchase_date: new Date(webhook.payload.timestamp).toISOString().split('T')[0],
        payment_id: p.payment_id
      },
      groups: groups,
      status: "active"
    };
  }
  return webhook;
}

Neuen Abonnenten bei Aktivierung des Abonnements hinzufügen

subscription_subscriber.js
function handler(webhook) {
  if (webhook.eventType === "subscription.active") {
    const s = webhook.payload.data;
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: s.customer.email,
      fields: {
        name: s.customer.name,
        subscription_plan: s.product_id,
        subscription_amount: (s.recurring_pre_tax_amount / 100).toFixed(2),
        billing_frequency: s.payment_frequency_interval,
        subscription_start: new Date().toISOString().split('T')[0]
      },
      groups: ["subscribers-group-id", "active-subscriptions-group-id"],
      status: "active"
    };
  }
  return webhook;
}

Abonnenten bei Kündigung des Abonnements aktualisieren

subscription_cancelled.js
function handler(webhook) {
  if (webhook.eventType === "subscription.cancelled") {
    const s = webhook.payload.data;
    // Use PUT to update existing subscriber
    webhook.url = "https://connect.mailerlite.com/api/subscribers/" + encodeURIComponent(s.customer.email);
    webhook.method = "PUT";
    webhook.payload = {
      fields: {
        subscription_status: "cancelled",
        cancellation_date: new Date().toISOString().split('T')[0]
      },
      groups: ["churned-customers-group-id"]
    };
  }
  return webhook;
}

Kunde mit benutzerdefinierten Feldern hinzufügen

custom_fields.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        company: p.customer.business_name || "",
        country: p.customer.country || "",
        city: p.customer.city || "",
        phone: p.customer.phone || "",
        // Custom fields (must be created in MailerLite first)
        total_spent: (p.total_amount / 100).toFixed(2),
        customer_since: new Date().toISOString().split('T')[0],
        payment_method: p.payment_method || "unknown",
        currency: p.currency || "USD"
      },
      groups: ["paying-customers-group-id"],
      status: "active",
      subscribed_at: new Date().toISOString().replace('T', ' ').split('.')[0]
    };
  }
  return webhook;
}

Automatisierung über Ereignis auslösen

trigger_automation.js
function handler(webhook) {
  if (webhook.eventType === "payment.succeeded") {
    const p = webhook.payload.data;
    
    // First, ensure subscriber exists
    webhook.url = "https://connect.mailerlite.com/api/subscribers";
    webhook.payload = {
      email: p.customer.email,
      fields: {
        name: p.customer.name,
        // Add a trigger field that your automation watches
        last_payment_trigger: new Date().toISOString(),
        last_payment_amount: (p.total_amount / 100).toFixed(2)
      },
      status: "active"
    };
    
    // Tip: Create an automation in MailerLite that triggers
    // when 'last_payment_trigger' field is updated
  }
  return webhook;
}

Tipps

  • Erstellen Sie benutzerdefinierte Felder in MailerLite, bevor Sie sie in Ihren Transformationen verwenden
  • Verwenden Sie Gruppen, um Kunden nach Produkt, Planstufe oder Kaufverhalten zu segmentieren
  • Richten Sie Automatisierungs-Workflows in MailerLite ein, die bei Feldaktualisierungen ausgelöst werden
  • Verwenden Sie das Upsert-Verhalten (POST an /subscribers), um doppelte Abonnentenfehler zu vermeiden
  • Speichern Sie Zahlungsmetadaten in benutzerdefinierten Feldern für bessere Kundeninsights
  • Testen Sie mit einer kleinen Gruppe, bevor Sie es für alle Zahlungen aktivieren

Einrichtung benutzerdefinierter Felder

Bevor Sie benutzerdefinierte Felder verwenden, müssen Sie diese in MailerLite erstellen:
  1. Gehen Sie zu Ihrem MailerLite-Dashboard
  2. Navigieren Sie zu Abonnentenfelder
  3. Klicken Sie auf Feld erstellen und fügen Sie Felder wie hinzu:
    • total_spent (Nummer)
    • customer_since (Datum)
    • subscription_plan (Text)
    • payment_method (Text)
    • last_payment_amount (Nummer)

Fehlersuche

  • Überprüfen Sie, ob der API-Schlüssel korrekt und aktiv ist
  • Stellen Sie sicher, dass die E-Mail-Adresse gültig ist (RFC 2821-konform)
  • Überprüfen Sie, ob die Gruppen-IDs korrekt sind und in Ihrem Konto existieren
  • Hinweis: Abgemeldete, zurückgewiesene oder Junk-Abonnenten können nicht über die API reaktiviert werden
  • Überprüfen Sie, ob benutzerdefinierte Felder in MailerLite existieren, bevor Sie sie verwenden
  • Stellen Sie sicher, dass die Feldnamen genau übereinstimmen (groß-/kleinschreibung beachten)
  • Überprüfen Sie, ob die Feldwerte dem erwarteten Typ entsprechen (Text, Nummer, Datum)
  • Die MailerLite-API hat ein Rate-Limit von 120 Anfragen pro Minute
  • Verwenden Sie Batch-Endpunkte, wenn Sie viele Abonnenten verarbeiten
  • Implementieren Sie Backoff-Strategien für Szenarien mit hohem Volumen
  • Überprüfen Sie, ob die Gruppen-IDs numerische Strings sind
  • Stellen Sie sicher, dass Gruppen in Ihrem MailerLite-Konto existieren
  • Hinweis: Die Verwendung von PUT mit Gruppen entfernt Abonnenten aus nicht aufgeführten Gruppen

API-Referenz

Die MailerLite Subscribers API akzeptiert die folgenden Schlüsselparameter:
ParameterTypErforderlichBeschreibung
emailstringJaGültige E-Mail-Adresse (RFC 2821)
fieldsobjectNeinObjekt mit Feldnamen/Wert-Paaren
fields.namestringNeinVorname des Abonnenten
fields.last_namestringNeinNachname des Abonnenten
fields.companystringNeinFirmenname
fields.countrystringNeinLand
fields.citystringNeinStadt
fields.phonestringNeinTelefonnummer
groupsarrayNeinArray von Gruppen-IDs, zu denen der Abonnent hinzugefügt werden soll
statusstringNeinEiner von: aktiv, abgemeldet, unbestätigt, zurückgewiesen, Junk
subscribed_atstringNeinDatum im Format yyyy-MM-dd HH:mm:ss
ip_addressstringNeinIP-Adresse des Abonnenten
Für die vollständige API-Dokumentation besuchen Sie MailerLite Developers.