Limites de Conexões por Plano

Pool unificado e limites WhatsApp

Decisão: 2026-04-02 Status: Aprovada Aprovado por: Cristiano Bernardes


Regra

O ConvertaFlow usa pool unificado de conexões WhatsApp. O plano define a quantidade total e o cliente escolhe o provider ao criar cada conexão. Não existe separação entre oficial e não-oficial.


Limites por Plano

Plano WhatsApp (qualquer tipo) Instagram Facebook Telegram
Essencial 1 1 1 1
Profissional 2 2 2 2
Business 5 3 3 5
Enterprise 15 10 10 15

Providers WhatsApp Disponíveis

Provider Método de Conexão Custo por Mensagem Indicado para
Evolution API QR Code Gratuito Escala, botões, listas
Baileys (Direto) QR Code Gratuito Testes, conexões rápidas
WhatsApp Oficial (Meta) Token WABA Pago pela Meta Enterprise, selo verde

Regras de Negócio

  1. Pool unificado: 5 conexões WhatsApp = 5 de qualquer tipo (Baileys, Evolution, Meta Cloud)
  2. Sem markup Meta: ConvertaFlow NÃO cobra taxa sobre conversas da API oficial. Cliente paga Meta diretamente.
  3. Instagram e Facebook: limites separados, não compartilham pool com WhatsApp
  4. Telegram: limite separado
  5. Verificação no frontend: connections/page.tsx valida whatsappCount < plan.maxConnections antes de permitir criar

Trial

  • Fixo em 7 dias para todos os planos
  • Não editável pelo admin (campo removido do formulário de planos)
  • Aplicado automaticamente pelo Asaas via nextDueDate = hoje + 7 dias
  • Primeira cobrança no 8º dia + 7 dias de garantia CDC

Pesquisa de Mercado (base da decisão)

Pesquisa com 10 plataformas (Kommo, Respond.io, Wati, ManyChat, Z-API, WhaTicket, Evolution, Chatwoot, SleekFlow, Trengo):

  • 0% das plataformas separam cotas oficial/não-oficial
  • 60% só suportam API oficial
  • 20% só suportam não-oficial
  • 20% suportam ambos com pool unificado

Implementação Técnica

Banco de dados

Campo max_connections na tabela subscription_plans (schema public) define o limite total de WhatsApp.

Verificação no frontend

// connections/page.tsx
const whatsappCount = sessions.filter(s => 
  s.channel === "whatsapp" || s.channel === "whatsapp_oficial"
).length;
const canCreate = whatsappCount < plan.maxConnections;

Provider é escolhido na criação

// Ao criar conexão, o campo "provider" determina o tipo:
// "evolution" → channel: "whatsapp"
// "baileys" → channel: "whatsapp"  
// "meta_cloud" → channel: "whatsapp_oficial"

Contagem unificada

Ambos channel: "whatsapp" e channel: "whatsapp_oficial" contam para o mesmo limite maxConnections.

Este artigo foi útil?