Vai al contenuto principale

Introduzione

Sincronizza automaticamente i tuoi clienti paganti con le liste di iscrizione di MailerLite quando si verificano eventi di pagamento. Aggiungi i clienti a gruppi specifici, attiva flussi di automazione e mantieni aggiornate le tue liste di email marketing con dati di pagamento reali. MailerLite è una potente piattaforma di email marketing per newsletter, campagne e automazioni. Questa integrazione ti aiuta a gestire automaticamente gli iscritti in base all’attività di pagamento - perfetta per sequenze di onboarding, segmentazione dei clienti e campagne di marketing mirate.
Questa integrazione richiede la tua chiave API di MailerLite per l’autenticazione. Puoi generarne una dalla tua pagina delle integrazioni di MailerLite.

Iniziare

1

Apri la sezione Webhook

Nel tuo dashboard di Dodo Payments, vai su Webhook + Aggiungi Endpoint ed espandi il menu a discesa delle integrazioni.
Aggiungi Endpoint e menu a discesa delle integrazioni
2

Seleziona MailerLite

Scegli la scheda di integrazione MailerLite.
3

Inserisci la chiave API

Fornisci la tua chiave API di MailerLite nella configurazione.
4

Configura la trasformazione

Modifica il codice di trasformazione per formattare i dati degli iscritti per l’API di MailerLite.
5

Testa e crea

Testa con payload di esempio e fai clic su Crea per attivare la sincronizzazione degli iscritti.
6

Fatto!

Gli eventi di pagamento sincronizzeranno ora automaticamente i clienti con le tue liste di MailerLite.

Esempi di codice di trasformazione

Aggiungi cliente al pagamento riuscito

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

Aggiungi iscritto a più gruppi in base al prodotto

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

Aggiungi nuovo iscritto all’attivazione dell’abbonamento

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

Aggiorna iscritto alla cancellazione dell’abbonamento

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

Aggiungi cliente con campi personalizzati

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

Attiva automazione tramite evento

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

Suggerimenti

  • Crea campi personalizzati in MailerLite prima di usarli nelle tue trasformazioni
  • Usa gruppi per segmentare i clienti per prodotto, piano o comportamento d’acquisto
  • Imposta flussi di automazione in MailerLite che si attivano sugli aggiornamenti dei campi
  • Usa il comportamento upsert (POST a /subscribers) per evitare errori di iscritti duplicati
  • Memorizza i metadati di pagamento in campi personalizzati per migliori approfondimenti sui clienti
  • Testa con un piccolo gruppo prima di abilitare per tutti i pagamenti

Configurazione dei campi personalizzati

Prima di utilizzare i campi personalizzati, devi crearli in MailerLite:
  1. Vai al tuo dashboard di MailerLite
  2. Naviga su Campi iscritti
  3. Fai clic su Crea campo e aggiungi campi come:
    • total_spent (Numero)
    • customer_since (Data)
    • subscription_plan (Testo)
    • payment_method (Testo)
    • last_payment_amount (Numero)

Risoluzione dei problemi

  • Verifica che la chiave API sia corretta e attiva
  • Controlla che l’indirizzo email sia valido (conforme a RFC 2821)
  • Assicurati che gli ID dei gruppi siano corretti ed esistano nel tuo account
  • Nota: Gli iscritti disiscritti, rimbalzati o di spam non possono essere riattivati tramite API
  • Verifica che i campi personalizzati esistano in MailerLite prima di usarli
  • Controlla che i nomi dei campi corrispondano esattamente (case-sensitive)
  • Assicurati che i valori dei campi corrispondano al tipo previsto (testo, numero, data)
  • L’API di MailerLite ha un limite di frequenza di 120 richieste al minuto
  • Usa endpoint batch se stai elaborando molti iscritti
  • Implementa strategie di backoff per scenari ad alto volume
  • Verifica che gli ID dei gruppi siano stringhe numeriche
  • Controlla che i gruppi esistano nel tuo account MailerLite
  • Nota: Usare PUT con i gruppi rimuoverà l’iscritto dai gruppi non elencati

Riferimento API

L’API degli iscritti di MailerLite accetta i seguenti parametri chiave:
ParametroTipoRichiestoDescrizione
emailstringIndirizzo email valido (RFC 2821)
fieldsobjectNoOggetto con coppie nome/valore dei campi
fields.namestringNoNome di battesimo dell’iscritto
fields.last_namestringNoCognome dell’iscritto
fields.companystringNoNome dell’azienda
fields.countrystringNoPaese
fields.citystringNoCittà
fields.phonestringNoNumero di telefono
groupsarrayNoArray di ID di gruppi a cui aggiungere l’iscritto
statusstringNoUno tra: attivo, disiscritto, non confermato, rimbalzato, spam
subscribed_atstringNoData nel formato yyyy-MM-dd HH:mm:ss
ip_addressstringNoIndirizzo IP dell’iscritto
Per la documentazione completa dell’API, visita Sviluppatori MailerLite.