ZAP-API
PreçosCasos de UsoBlogDocsLogin
Começar grátis
  1. Blog
  2. Agência de marketing no WhatsApp: gerencie múltiplos clientes
Reseller

Agência de marketing no WhatsApp: gerencie múltiplos clientes

Como agências de marketing digital gerenciam campanhas WhatsApp de múltiplos clientes com isolamento de instância, billing separado e relatórios individuais.

18 de maio de 2026·12 min de leitura·Equipe Editorial ZAP API

Agência de marketing digital com 20 clientes ativos sem estrutura é um caos previsível. Um WhatsApp pessoal do dono atendendo o "TaylorBurguer" e a "Clínica DentalMax" e a "Imobiliária Ribeiro", todos no mesmo lugar. Mensagens cruzando, atendentes confusos, cliente reclamando que falta resposta. Pergunta de R$50k/mês: como organizar?

A resposta é multi-tenancy: uma instância WhatsApp por cliente, isolada, com billing e relatório próprio. Este artigo mostra a arquitetura completa que agências profissionais usam para escalar de 5 para 100+ clientes sem virar pesadelo operacional.

O caos sem estrutura

Sem multi-tenancy, sua agência tem:

  • 1 ou 2 WhatsApps "operacionais" para tudo
  • Atendente abrindo Trello/Notion para identificar de qual cliente é cada conversa
  • Quando o cliente "TaylorBurguer" pede "qual o status das minhas campanhas?", você não tem dados separados — está tudo misturado
  • Quando precisa cobrar o cliente, fatura sai bagunçada — "campanha + automação + relatório" virando uma linha só
  • Quando o cliente cancela, você não sabe a margem real dele (custo da operação misturado com outros)

A arquitetura multi-tenant

Estrutura recomendada:

  • Conta agência na ZAP API com perfil reseller
  • Sub-conta por cliente — cada cliente seu vira uma "company" filha
  • Instância dedicada por cliente — número WhatsApp do próprio cliente conecta nessa instância
  • Webhooks isolados por cliente, apontando para subdomínios dedicados (cliente1.dashboard.suaagencia.com)
  • Billing centralizado — agência recebe 1 fatura mensal consolidada da ZAP API, gera N faturas para os clientes

Diagrama de relacionamento

Agência X
├─ Cliente A (TaylorBurguer)
│   └─ Instância A1 (número 11999998888)
│       └─ Webhook: https://taylor.suaagencia.com/wh
├─ Cliente B (DentalMax)
│   └─ Instância B1 (número 11888887777)
│       └─ Webhook: https://dentalmax.suaagencia.com/wh
└─ Cliente C (Ribeiro Imóveis)
    └─ Instância C1 (número 11777776666)
        └─ Webhook: https://ribeiro.suaagencia.com/wh

Provisionamento via API

// onboard-cliente.ts
import axios from "axios";

const ZAP = axios.create({
  baseURL: "https://api.zap-api.tech/v1",
  headers: { Authorization: `Bearer ${process.env.ZAP_AGENCY_TOKEN}` },
});

async function onboardCliente({ nome, cnpj, email, telefone, planoMensal }) {
  // 1. Cria conta cliente sob sua agência
  const { data: cliente } = await ZAP.post("/reseller/clients", {
    name: nome,
    document: cnpj,
    email,
    phone: telefone,
    plan: "agency-managed",  // plano interno controlado pela agência
  });

  // 2. Cria instância dedicada
  const { data: instancia } = await ZAP.post(
    `/reseller/clients/${cliente.id}/instances`,
    { name: `${nome} - Principal` },
  );

  // 3. Configura webhook único do cliente
  const subdominio = nome.toLowerCase().replace(/\s+/g, "");
  await ZAP.post(`/instances/${instancia.id}/webhook`, {
    url: `https://${subdominio}.dashboard.suaagencia.com/webhooks/zap`,
    events: ["message.received", "message.status", "instance.connected", "instance.disconnected"],
  });

  // 4. Salva no banco da agência para faturamento e dashboard
  await db.query(`
    INSERT INTO clientes_agencia (zap_client_id, instance_id, plano_mensal_centavos, status, onboarded_at)
    VALUES ($1, $2, $3, 'active', NOW())
  `, [cliente.id, instancia.id, planoMensal * 100]);

  return {
    portalUrl: `https://${subdominio}.dashboard.suaagencia.com`,
    qrCodeUrl: `https://${subdominio}.dashboard.suaagencia.com/conectar`,
    pairingCodeEndpoint: `https://api.zap-api.tech/v1/instances/${instancia.id}/pairing-code`,
  };
}

Dashboard agregado da agência

O dono da agência precisa ver tudo de uma vez: quantas mensagens cada cliente envia, quem está perto do limite do plano, qual instância está desconectada.

// agency-overview.ts
async function getAgencyOverview() {
  const { data: clientes } = await ZAP.get("/reseller/clients");

  const overview = await Promise.all(clientes.map(async c => {
    const { data: stats } = await ZAP.get(`/reseller/clients/${c.id}/stats`);
    const { data: instancias } = await ZAP.get(`/reseller/clients/${c.id}/instances`);

    return {
      cliente: c.name,
      instancias: instancias.length,
      mensagensMes: stats.outboundCount + stats.inboundCount,
      conectada: instancias.every(i => i.waStatus === "CONNECTED"),
      ultimaAtividade: stats.lastActivityAt,
    };
  }));

  return overview;
}

Modelo de billing

Você tem 2 grandes opções de cobrança do cliente final:

Opção 1: Por mensagem (uso variável)

  • Cobre R$0,15 por mensagem enviada
  • Cliente pequeno (1k msgs/mês) paga R$150/mês
  • Cliente médio (10k msgs/mês) paga R$1.500/mês
  • Cliente grande (50k msgs/mês) paga R$7.500/mês

Vantagem: precificação justa, cliente paga pelo que usa. Desvantagem: receita imprevisível.

Opção 2: Plano fixo por instância

  • R$199/mês — até 2.000 mensagens, suporte email
  • R$499/mês — até 10.000 mensagens, integrações, prioridade
  • R$999/mês — ilimitado dentro do uso comercial razoável + setup assistido

Vantagem: receita previsível. Desvantagem: cliente que usa pouco se sente lesado.

Opção híbrida (recomendada)

Plano base fixo + cobrança extra acima do incluso. Ex.: R$299 inclui 5k msgs, R$0,08 por msg adicional. É o melhor dos dois mundos: você tem MRR estável e cobra extra dos clientes pesados.

Relatório individual por cliente

Toda última semana do mês, dispare relatório automático para cada cliente:

// monthly-report.ts
async function sendMonthlyReports() {
  const clientes = await db.query("SELECT * FROM clientes_agencia WHERE status='active'");

  for (const c of clientes.rows) {
    const { data: stats } = await ZAP.get(`/reseller/clients/${c.zap_client_id}/stats?window=30d`);

    const html = `
      

Relatório ${new Date().toLocaleString("pt-BR", { month: "long", year: "numeric" })}

  • Mensagens enviadas: ${stats.outboundCount}
  • Mensagens recebidas: ${stats.inboundCount}
  • Taxa de leitura: ${stats.readRate}%
  • Tempo médio de resposta: ${stats.avgResponseTimeMs / 1000}s
  • Conversões via WhatsApp: ${stats.conversions}

Continuamos otimizando suas campanhas.

`; await sendEmail(c.email, `Seu relatório do WhatsApp — ${c.name}`, html); } }

Casos práticos

Caso 1: Agência boutique (8 clientes)

Atende dentistas, advogados, arquitetos. Plano R$499/mês fixo. MRR R$3.992. Custo infraestrutura R$390 (8 × R$49). Margem bruta 90%. Dona consegue manter operação sozinha — atendimento concentrado nos clientes premium.

Caso 2: Agência média (35 clientes)

Mistura nichos. Plano híbrido R$299 + R$0,08/msg extra. MRR base R$10.465 + média R$3.500 em uso variável. 2 atendentes, 1 desenvolvedor. Dashboard interno mostra "alertas" — cliente sem atividade há 7 dias dispara aviso para o gerente de conta ligar.

Caso 3: Agência B2B (90 clientes industriais)

Atende indústrias com pós-venda complexo. Plano R$999/mês com SLA. Time de 6 pessoas, dashboard com filas dedicadas, cada cliente tem 2-3 instâncias (vendas/suporte/cobrança). MRR R$89k. Diferencial: implementação assistida que custa R$5k extra mas vira anchor para R$11k/ano em recorrente.

FAQ

Como precificar quando o cliente pergunta?

Não venda "WhatsApp" — venda resultado. "Vamos automatizar seu atendimento e gerar 30% mais conversão" vale R$499. "Te dou uma instância WhatsApp por R$199" é commodity. O preço sobe com o resultado entregue, não com a tecnologia.

Preciso de contrato com cada cliente?

Sim. Contrato simples (1-2 páginas) deve cobrir: serviços inclusos, valor mensal, prazo (mínimo 6 meses), reajuste anual, multa de cancelamento, LGPD/sigilo. Modelo está em qualquer site jurídico — adapte e use.

Como organizo suporte tier-1?

Crie SLA por plano. Plano básico = email com 24h, plano profissional = WhatsApp com 4h, plano agência = telefone com 1h. Use ferramenta tipo Front, Help Scout ou Zendesk para centralizar tickets. Tier-1 (atendente) resolve 80%, escala para tier-2 (desenvolvedor) só quando precisa.

Como funciona o white-label?

No painel da ZAP API, ative reseller, adicione logo, cor primária e domínio próprio. Seu cliente acessa painel.suaagencia.com e nunca vê referência a "ZAP API". Detalhes profundos no nosso post sobre criar agência white-label.

Como reduzo churn?

Churn em agência de marketing é tipicamente 5-7% ao mês. Para baixar, foque em 2 coisas: (1) onboarding ativo nos primeiros 30 dias — cliente que vê valor cedo fica; (2) relatórios mensais com números — cliente que entende o que está pagando não cancela por achar que "não precisa mais".

Próximo passo

Configure conta reseller agência e provisione seu primeiro cliente em 15 minutos. Criar conta grátis e teste o painel multi-tenant por 7 dias.

Experimente a ZAP API gratuitamente

7 dias de trial sem precisar de cartão. A partir de R$29/mês*.

Criar instância grátis
EE
Equipe Editorial ZAP APIRevisão técnica

Desenvolvedores e especialistas em integrações WhatsApp. Todo conteúdo passa por revisão técnica para garantir precisão e aplicabilidade.

Ver perfil completoDocumentaçãoTrial grátis

Leia também

Reseller · 06 de mai. de 2026 · 13 min

Criar agência de WhatsApp: painel white-label completo

Como criar uma agência de automação WhatsApp com painel white-label: marca própria, domínio customizado, billing separado por cliente e margem recorrente.

Reseller · 23 de mai. de 2026 · 13 min

Modelo de negócio reseller WhatsApp: billing, margem e escalabilidade

Como estruturar o modelo financeiro de uma agência ou SaaS revendedor de WhatsApp API: precificação, margem, billing recorrente e escala sem crescer equipe.

Reseller · 12 de mai. de 2026 · 11 min

Domínio customizado na API WhatsApp: marca própria para revendedores

Configure um domínio personalizado para sua API WhatsApp white-label. Seus clientes usam api.suaempresa.com.br sem ver a infraestrutura por baixo.

Reseller · 01 de jun. de 2026 · 12 min

Onboarding de cliente no painel white-label: do cadastro à primeira mensagem

Passo a passo completo para fazer onboarding de um novo cliente no seu painel white-label WhatsApp: criar conta, provisionar instância, conectar QR e enviar a primeira mensagem.

Tópicos:Chatbots com IAE-commerceAPI WhatsApp

Explore também

Casos de usoWhatsApp API por segmentoComparativoZAP API vs alternativasPreçosPlanos e o que está inclusoGlossárioTermos técnicos de WhatsApp API
ZAP-API

API REST para WhatsApp com webhooks assinados, Meta Pixel/CAPI e compliance LGPD. Sem aprovação da Meta.

Status operacional🇧🇷 Feito no Brasil

Produto

  • Preços
  • Casos de uso
  • Comparativo
  • Trial grátis
  • Dashboard

Recursos

  • Documentação
  • Blog
  • Glossário
  • RSS Feed

Empresa

  • Sobre
  • Imprensa
  • Termos de uso
  • Privacidade
  • Criar conta
  • Login

Contato

  • [email protected]
  • [email protected]
  • Resposta em até 24h úteis
© 2026 ZAP-API — Todos os direitos reservados·CNPJ 42.130.949/0001-56·Termos·Privacidade

Desenvolvido por PreviusIA