Pular para conteúdo

MAILCHIMP Members List - Listar Assinantes

O que é este Node?

O Mailchimp Members List é o node responsável por listar todos os assinantes de uma lista com filtros por status e paginação.

Por que este Node existe?

Visualizar assinantes é fundamental. Este node existe para:

  1. Auditoria: Ver todos os assinantes da lista
  2. Exportação: Extrair dados para análise
  3. Contagem: Verificar quantos assinantes por status
  4. Filtros: Listar apenas inscritos ativos
  5. Integração: Sincronizar com outros sistemas

Como funciona internamente?

Código interno (mailchimp.executor.ts:202-213):

case 'list':
  const listMembersResponse = await axios.get(`${baseUrl}/lists/${listId}/members`, {
    headers: {
      'Authorization': `Bearer ${apiKey}`,
    },
    params: {
      count: data.count || 100,
      offset: data.offset || 0,
      status: data.status || 'subscribed',
    },
  });
  return listMembersResponse.data;

Parâmetros

Campo Tipo Obrigatório Descrição
listId string Sim ID da lista
count number Não Quantidade por página (padrão: 100, máx: 1000)
offset number Não Itens a pular (padrão: 0)
status string Não Filtro de status (padrão: "subscribed")

Status Disponíveis para Filtro

  • subscribed: Apenas ativos
  • unsubscribed: Apenas cancelados
  • cleaned: Apenas inválidos
  • pending: Apenas aguardando confirmação
  • transactional: Apenas transacionais

Exemplo: Listar Todos Assinantes Ativos

{
  "name": "Listar Assinantes Ativos",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "mailchimp_1",
      "type": "mailchimp",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Buscar Assinantes",
        "resource": "members",
        "operation": "list",
        "config": {
          "apiKey": "{{mailchimp_api_key}}",
          "server": "{{mailchimp_server}}"
        },
        "listId": "{{list_id}}",
        "count": 50,
        "offset": 0,
        "status": "subscribed",
        "responseVariable": "subscribers"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Mostrar Total",
        "parameters": {
          "message": "📊 ASSINANTES ATIVOS\n\n✅ Total: {{subscribers.total_items}}\n📄 Mostrando: {{subscribers.members.length}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 700, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "mailchimp_1" },
    { "source": "mailchimp_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Resposta do Node

{
  "members": [
    {
      "id": "abc123",
      "email_address": "joao@exemplo.com",
      "status": "subscribed",
      "merge_fields": {
        "FNAME": "João",
        "LNAME": "Silva"
      },
      "timestamp_opt": "2025-01-15T10:00:00+00:00"
    },
    {
      "id": "def456",
      "email_address": "maria@exemplo.com",
      "status": "subscribed",
      "merge_fields": {
        "FNAME": "Maria",
        "LNAME": "Santos"
      },
      "timestamp_opt": "2025-01-16T14:30:00+00:00"
    }
  ],
  "list_id": "abc123list",
  "total_items": 1500
}

Paginação

Para buscar próximas páginas:

// Página 1: offset=0, count=100 (itens 1-100)
// Página 2: offset=100, count=100 (itens 101-200)
// Página 3: offset=200, count=100 (itens 201-300)

Próximos Passos

Members Get - Buscar assinante específico → Members Add - Adicionar novos assinantes