Passer au contenu principal

Introduction

Synchronisez automatiquement vos clients payants avec les listes d’abonnés MailerLite lorsque des événements de paiement se produisent. Ajoutez des clients à des groupes spécifiques, déclenchez des flux de travail d’automatisation et maintenez vos listes de marketing par e-mail à jour avec des données de paiement réelles. MailerLite est une plateforme puissante de marketing par e-mail pour les newsletters, les campagnes et les automatisations. Cette intégration vous aide à gérer automatiquement les abonnés en fonction de l’activité de paiement - parfaite pour les séquences d’intégration, la segmentation des clients et les campagnes de marketing ciblées.
Cette intégration nécessite votre clé API MailerLite pour l’authentification. Vous pouvez en générer une depuis votre page d’intégrations MailerLite.

Prise en main

1

Ouvrir la section Webhook

Dans votre tableau de bord Dodo Payments, accédez à Webhooks + Ajouter un point de terminaison et développez le menu déroulant des intégrations.
Ajouter un point de terminaison et menu déroulant des intégrations
2

Sélectionner MailerLite

Choisissez la carte d’intégration MailerLite.
3

Entrer la clé API

Fournissez votre clé API MailerLite dans la configuration.
4

Configurer la transformation

Modifiez le code de transformation pour formater les données des abonnés pour l’API de MailerLite.
5

Tester et créer

Testez avec des charges utiles d’exemple et cliquez sur Créer pour activer la synchronisation des abonnés.
6

Terminé !

Les événements de paiement synchroniseront désormais automatiquement les clients avec vos listes MailerLite.

Exemples de code de transformation

Ajouter un client lors d’un paiement réussi

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;
}

Ajouter un abonné à plusieurs groupes en fonction du produit

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;
}

Ajouter un nouvel abonné lors de l’activation de l’abonnement

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;
}

Mettre à jour un abonné lors de l’annulation de l’abonnement

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;
}

Ajouter un client avec des champs personnalisés

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;
}

Déclencher une automatisation via un événement

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;
}

Conseils

  • Créez des champs personnalisés dans MailerLite avant de les utiliser dans vos transformations
  • Utilisez des groupes pour segmenter les clients par produit, niveau de plan ou comportement d’achat
  • Configurez des flux de travail d’automatisation dans MailerLite qui se déclenchent lors des mises à jour de champs
  • Utilisez le comportement upsert (POST à /subscribers) pour éviter les erreurs d’abonnés en double
  • Stockez les métadonnées de paiement dans des champs personnalisés pour de meilleures informations sur les clients
  • Testez avec un petit groupe avant d’activer pour tous les paiements

Configuration des champs personnalisés

Avant d’utiliser des champs personnalisés, vous devez les créer dans MailerLite :
  1. Allez sur votre tableau de bord MailerLite
  2. Accédez à Champs d’abonnés
  3. Cliquez sur Créer un champ et ajoutez des champs comme :
    • total_spent (Numéro)
    • customer_since (Date)
    • subscription_plan (Texte)
    • payment_method (Texte)
    • last_payment_amount (Numéro)

Dépannage

  • Vérifiez que la clé API est correcte et active
  • Assurez-vous que l’adresse e-mail est valide (conforme à la norme RFC 2821)
  • Vérifiez que les ID de groupe sont corrects et existent dans votre compte
  • Remarque : Les abonnés désinscrits, rebondis ou indésirables ne peuvent pas être réactivés via l’API
  • Vérifiez que les champs personnalisés existent dans MailerLite avant de les utiliser
  • Vérifiez que les noms de champs correspondent exactement (sensible à la casse)
  • Assurez-vous que les valeurs des champs correspondent au type attendu (texte, nombre, date)
  • L’API MailerLite a une limite de taux de 120 requêtes par minute
  • Utilisez des points de terminaison par lot si vous traitez de nombreux abonnés
  • Mettez en œuvre des stratégies de retour en arrière pour des scénarios à fort volume
  • Vérifiez que les ID de groupe sont des chaînes numériques
  • Vérifiez que les groupes existent dans votre compte MailerLite
  • Remarque : L’utilisation de PUT avec des groupes supprimera l’abonné des groupes non répertoriés

Référence API

L’API des abonnés MailerLite accepte les paramètres clés suivants :
ParamètreTypeRequisDescription
emailstringOuiAdresse e-mail valide (RFC 2821)
fieldsobjectNonObjet avec des paires nom/valeur de champ
fields.namestringNonPrénom de l’abonné
fields.last_namestringNonNom de famille de l’abonné
fields.companystringNonNom de l’entreprise
fields.countrystringNonPays
fields.citystringNonVille
fields.phonestringNonNuméro de téléphone
groupsarrayNonTableau d’ID de groupe pour ajouter l’abonné
statusstringNonUn des : actif, désinscrit, non confirmé, rebondi, indésirable
subscribed_atstringNonDate au format yyyy-MM-dd HH:mm:ss
ip_addressstringNonAdresse IP de l’abonné
Pour une documentation API complète, visitez Développeurs MailerLite.