Saltar al contenido principal

Introducción

Sincroniza automáticamente a tus clientes que pagan con las listas de suscriptores de MailerLite cuando ocurren eventos de pago. Agrega clientes a grupos específicos, activa flujos de trabajo de automatización y mantén tus listas de marketing por correo electrónico actualizadas con datos de pago reales. MailerLite es una poderosa plataforma de marketing por correo electrónico para boletines, campañas y automatizaciones. Esta integración te ayuda a gestionar automáticamente a los suscriptores en función de la actividad de pago, perfecta para secuencias de incorporación, segmentación de clientes y campañas de marketing dirigidas.
Esta integración requiere tu clave API de MailerLite para la autenticación. Puedes generar una desde tu página de Integraciones de MailerLite.

Comenzando

1

Abre la sección de Webhook

En tu panel de Dodo Payments, navega a Webhooks + Agregar Endpoint y expande el menú desplegable de integraciones.
Agregar Endpoint y menú desplegable de integraciones
2

Selecciona MailerLite

Elige la tarjeta de integración MailerLite.
3

Ingresa la clave API

Proporciona tu clave API de MailerLite en la configuración.
4

Configura la transformación

Edita el código de transformación para formatear los datos de suscriptores para la API de MailerLite.
5

Prueba y crea

Prueba con cargas útiles de ejemplo y haz clic en Crear para activar la sincronización de suscriptores.
6

¡Listo!

Los eventos de pago ahora sincronizarán automáticamente a los clientes con tus listas de MailerLite.

Ejemplos de código de transformación

Agregar cliente en pago exitoso

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

Agregar suscriptor a múltiples grupos según el producto

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

Agregar nuevo suscriptor al activar la suscripción

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

Actualizar suscriptor al cancelar la suscripción

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

Agregar cliente con campos personalizados

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

Activar automatización a través de 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;
}

Consejos

  • Crea campos personalizados en MailerLite antes de usarlos en tus transformaciones
  • Usa grupos para segmentar clientes por producto, nivel de plan o comportamiento de compra
  • Configura flujos de trabajo de automatización en MailerLite que se activen con actualizaciones de campos
  • Usa el comportamiento de upsert (POST a /subscribers) para evitar errores de suscriptor duplicado
  • Almacena metadatos de pago en campos personalizados para obtener mejores insights sobre los clientes
  • Prueba con un grupo pequeño antes de habilitar para todos los pagos

Configuración de campos personalizados

Antes de usar campos personalizados, necesitas crearlos en MailerLite:
  1. Ve a tu panel de MailerLite
  2. Navega a Campos de suscriptores
  3. Haz clic en Crear campo y agrega campos como:
    • total_spent (Número)
    • customer_since (Fecha)
    • subscription_plan (Texto)
    • payment_method (Texto)
    • last_payment_amount (Número)

Solución de problemas

  • Verifica que la clave API sea correcta y esté activa
  • Asegúrate de que la dirección de correo electrónico sea válida (cumple con RFC 2821)
  • Asegúrate de que los IDs de grupo sean correctos y existan en tu cuenta
  • Nota: Los suscriptores que se han dado de baja, rebotado o marcado como spam no pueden ser reactivados a través de la API
  • Verifica que los campos personalizados existan en MailerLite antes de usarlos
  • Asegúrate de que los nombres de los campos coincidan exactamente (sensible a mayúsculas y minúsculas)
  • Asegúrate de que los valores de los campos coincidan con el tipo esperado (texto, número, fecha)
  • La API de MailerLite tiene un límite de tasa de 120 solicitudes por minuto
  • Usa endpoints por lotes si procesas muchos suscriptores
  • Implementa estrategias de retroceso para escenarios de alto volumen
  • Verifica que los IDs de grupo sean cadenas numéricas
  • Asegúrate de que los grupos existan en tu cuenta de MailerLite
  • Nota: Usar PUT con grupos eliminará al suscriptor de grupos no listados

Referencia de API

La API de Suscriptores de MailerLite acepta los siguientes parámetros clave:
ParámetroTipoRequeridoDescripción
emailstringDirección de correo electrónico válida (RFC 2821)
fieldsobjectNoObjeto con pares de nombre/valor de campo
fields.namestringNoNombre de pila del suscriptor
fields.last_namestringNoApellido del suscriptor
fields.companystringNoNombre de la empresa
fields.countrystringNoPaís
fields.citystringNoCiudad
fields.phonestringNoNúmero de teléfono
groupsarrayNoArray de IDs de grupo a los que agregar al suscriptor
statusstringNoUno de: activo, dado de baja, no confirmado, rebotado, spam
subscribed_atstringNoFecha en formato yyyy-MM-dd HH:mm:ss
ip_addressstringNoDirección IP del suscriptor
Para la documentación completa de la API, visita Desarrolladores de MailerLite.