Pular para conteúdo

MAILCHIMP Lists List - Listar Todas as Listas

O que é este Node?

O Mailchimp Lists List é o node responsável por buscar todas as listas de audiência da sua conta Mailchimp com paginação e estatísticas.

Por que este Node existe?

Consultar listas existentes é essencial para automações. Este node existe para:

  1. Descoberta de listas: Encontrar todas as listas disponíveis
  2. Seleção dinâmica: Escolher lista baseado em critérios
  3. Auditoria: Verificar quantas listas existem
  4. Estatísticas: Ver número de assinantes de cada lista
  5. Integração: Sincronizar com outros sistemas

Como funciona internamente?

Quando o Lists List é executado, o sistema:

  1. Valida credenciais (API Key e server)
  2. Monta parâmetros de paginação (count e offset)
  3. Faz requisição GET para /lists
  4. Recebe array de listas com metadados
  5. Salva na variável especificada
  6. Continua o flow

Código interno (mailchimp.executor.ts:82-92):

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

Quando você DEVE usar este Node?

Use Lists List quando precisar consultar listas existentes:

Casos de uso:

  1. Dashboard: Mostrar todas as listas no painel
  2. Seleção: Deixar usuário escolher qual lista se inscrever
  3. Migração: Listar listas antes de migrar dados
  4. Relatório: Gerar relatório de todas as audiências
  5. Validação: Verificar se lista específica existe

Parâmetros Detalhados

count (number, opcional)

O que é: Quantidade de listas a retornar por página.

Padrão: 100

Valores: 1 a 1000

Flow completo para testar:

{
  "name": "Teste Mailchimp Lists List - Count",
  "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": "Listar 10 Listas",
        "resource": "lists",
        "operation": "list",
        "config": {
          "apiKey": "{{mailchimp_api_key}}",
          "server": "{{mailchimp_server}}"
        },
        "count": 10,
        "offset": 0,
        "responseVariable": "minhasListas"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Mostrar Total",
        "parameters": {
          "message": "📋 Total de listas na conta: {{minhasListas.total_items}}\n📄 Mostrando: {{minhasListas.lists.length}} listas"
        }
      }
    },
    {
      "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" }
  ]
}

Teste: Execute e veja quantas listas você tem!

offset (number, opcional)

O que é: Número de listas a pular (para paginação).

Padrão: 0

Exemplo: Para ver a segunda página com 10 itens, use count=10 e offset=10

Parâmetros

Campo Tipo Obrigatório Descrição
count number Não Quantidade por página (padrão: 100, máx: 1000)
offset number Não Itens a pular (padrão: 0)

Exemplo 1: Listar Todas as Listas

Objetivo: Buscar todas as listas e mostrar seus nomes.

JSON para Importar

{
  "name": "Listar Todas as Listas Mailchimp",
  "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 Listas",
        "resource": "lists",
        "operation": "list",
        "config": {
          "apiKey": "{{mailchimp_api_key}}",
          "server": "{{mailchimp_server}}"
        },
        "count": 100,
        "responseVariable": "allLists"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Resumo",
        "parameters": {
          "message": "📊 SUAS LISTAS MAILCHIMP\n\n📋 Total: {{allLists.total_items}} listas\n👥 Total de assinantes: Veja os detalhes\n\n✅ Listas carregadas com sucesso!"
        }
      }
    },
    {
      "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" }
  ]
}

Saída esperada:

Sistema: 📊 SUAS LISTAS MAILCHIMP

📋 Total: 5 listas
👥 Total de assinantes: Veja os detalhes

✅ Listas carregadas com sucesso!

Exemplo 2: Paginação de Listas

Objetivo: Implementar navegação entre páginas de listas.

JSON para Importar

{
  "name": "Paginação de Listas Mailchimp",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "variable_1",
      "type": "variable",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Definir Página",
        "parameters": {
          "variable": "page",
          "value": "0"
        }
      }
    },
    {
      "id": "mailchimp_1",
      "type": "mailchimp",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Buscar Página",
        "resource": "lists",
        "operation": "list",
        "config": {
          "apiKey": "{{mailchimp_api_key}}",
          "server": "{{mailchimp_server}}"
        },
        "count": 5,
        "offset": "{{page}}",
        "responseVariable": "listPage"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Mostrar Página",
        "parameters": {
          "message": "📄 Página atual mostrando 5 de {{listPage.total_items}} listas\n\nPara próxima página, mude o offset."
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "variable_1" },
    { "source": "variable_1", "target": "mailchimp_1" },
    { "source": "mailchimp_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: 📄 Página atual mostrando 5 de 23 listas

Para próxima página, mude o offset.

Resposta do Node

{
  "lists": [
    {
      "id": "abc123def456",
      "web_id": 123456,
      "name": "Newsletter Principal",
      "contact": {
        "company": "Minha Empresa",
        "address1": "Rua Teste, 123",
        "city": "São Paulo",
        "state": "SP",
        "zip": "01000-000",
        "country": "BR"
      },
      "permission_reminder": "Você se inscreveu no site",
      "campaign_defaults": {
        "from_name": "Equipe",
        "from_email": "contato@empresa.com",
        "subject": "Novidades",
        "language": "pt"
      },
      "email_type_option": true,
      "subscribe_url_short": "http://eepurl.com/xyz",
      "date_created": "2025-01-15T10:00:00+00:00",
      "list_rating": 4,
      "stats": {
        "member_count": 1500,
        "unsubscribe_count": 45,
        "cleaned_count": 12,
        "member_count_since_send": 120,
        "unsubscribe_count_since_send": 5,
        "cleaned_count_since_send": 2,
        "campaign_count": 25,
        "open_rate": 23.5,
        "click_rate": 4.2
      }
    }
  ],
  "total_items": 5,
  "constraints": {
    "may_create": true,
    "max_instances": 100,
    "current_total_instances": 5
  }
}

Boas Práticas

SIM: - Use paginação para muitas listas - Guarde o total_items para calcular páginas - Verifique may_create antes de criar novas - Use stats para decisões

NÃO: - Não busque todas sem count/offset - Não ignore limites da API

Dicas

💡 Paginação: Cálculo de páginas = Math.ceil(total_items / count) 💡 Performance: Use count menor para resposta rápida 💡 Estatísticas: Use stats.member_count para ver tamanho das listas 💡 Limites: Verifique max_instances antes de criar novas

Próximos Passos

Lists Get - Buscar detalhes de uma lista específica → Lists Create - Criar nova lista → Members List - Listar assinantes de uma lista