Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Introdução

Sincronize automaticamente seus clientes pagantes com as listas de assinantes do MailerLite quando eventos de pagamento ocorrerem. Adicione clientes a grupos específicos, acione fluxos de automação e mantenha suas listas de marketing por e-mail atualizadas com dados reais de pagamento. MailerLite é uma poderosa plataforma de marketing por e-mail para newsletters, campanhas e automações. Esta integração ajuda você a gerenciar automaticamente os assinantes com base na atividade de pagamento - perfeita para sequências de integração, segmentação de clientes e campanhas de marketing direcionadas.
Esta integração exige sua chave de API do MailerLite para autenticação. Você pode gerar uma em sua MailerLite Integrations page.

Começando

1

Open the Webhook Section

No seu painel do Dodo Payments, navegue até Webhooks + Adicionar Endpoint e expanda o menu suspenso de integrações.
Adicionar Endpoint e menu suspenso de integrações
2

Select MailerLite

Escolha o cartão de integração MailerLite.
3

Enter API Key

Forneça sua chave de API do MailerLite na configuração.
4

Configure Transformation

Edite o código de transformação para formatar os dados do assinante para a API do MailerLite.
5

Test & Create

Teste com cargas úteis de amostra e clique em Create para ativar a sincronização de assinantes.
6

Done!

Os eventos de pagamento agora sincronizarão automaticamente os clientes com suas listas do MailerLite.

Exemplos de Código de Transformação

Adicionar Cliente em Pagamento Bem-Sucedido

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

Adicionar Assinante a Múltiplos Grupos com Base no Produto

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

Adicionar Novo Assinante na Ativação da Assinatura

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

Atualizar Assinante na Cancelamento da Assinatura

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

Adicionar Cliente com 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;
}

Acionar Automação via 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;
}

Dicas

  • Crie campos personalizados no MailerLite antes de usá-los em suas transformações
  • Use grupos para segmentar clientes por produto, nível de plano ou comportamento de compra
  • Configure fluxos de automação no MailerLite que sejam acionados por atualizações de campo
  • Use o comportamento upsert (POST para /subscribers) para evitar erros de assinante duplicado
  • Armazene metadados de pagamento em campos personalizados para melhores insights sobre os clientes
  • Teste com um pequeno grupo antes de habilitar para todos os pagamentos

Configuração de Campos Personalizados

Antes de usar campos personalizados, você precisa criá-los no MailerLite:
  1. Acesse seu painel do MailerLite
  2. Navegue até Subscribers Fields
  3. Clique em Create field e adicione campos como:
    • total_spent (Número)
    • customer_since (Data)
    • subscription_plan (Texto)
    • payment_method (Texto)
    • last_payment_amount (Número)

Solução de Problemas

  • Verifique se a chave de API está correta e ativa
  • Confirme se o endereço de e-mail é válido (compatível com RFC 2821)
  • Certifique-se de que os IDs dos grupos estão corretos e existem na sua conta
  • Observação: assinantes cancelados, com bounce ou marcados como spam não podem ser reativados via API
  • Verifique se os campos personalizados existem no MailerLite antes de usá-los
  • Confira se os nomes dos campos correspondem exatamente (sensível a maiúsculas/minúsculas)
  • Garanta que os valores dos campos correspondam ao tipo esperado (texto, número, data)
  • A API do MailerLite possui um limite de 120 requisições por minuto
  • Use endpoints em lote se estiver processando muitos assinantes
  • Implemente estratégias de backoff para cenários de alto volume
  • Verifique se os IDs dos grupos são strings numéricas
  • Confirme se os grupos existem em sua conta do MailerLite
  • Observação: usar PUT com grupos removerá o assinante de grupos não listados

Referência da API

A API de Assinantes do MailerLite aceita os seguintes parâmetros principais:
ParâmetroTipoObrigatórioDescrição
emailstringSimEndereço de e-mail válido (RFC 2821)
fieldsobjectNãoObjeto com pares nome/valor de campo
fields.namestringNãoPrimeira nome do assinante
fields.last_namestringNãoSobrenome do assinante
fields.companystringNãoNome da empresa
fields.countrystringNãoPaís
fields.citystringNãoCidade
fields.phonestringNãoNúmero de telefone
groupsarrayNãoArray de IDs de grupo para adicionar o assinante
statusstringNãoUm dos seguintes: active, unsubscribed, unconfirmed, bounced, junk
subscribed_atstringNãoData no formato yyyy-MM-dd HH:mm:ss
ip_addressstringNãoEndereço IP do assinante
Para documentação completa da API, visite Desenvolvedores do MailerLite.
Last modified on April 20, 2026