Ir para o conteúdo
Produto · 5 min de leitura

WITHMIA v1.0.8 — Limites de plano de verdade + Web Chat grátis

Implementação completa de enforcement no backend para todos os limites de plano (documentos, workflows, membros, canais). O plano Grátis agora inclui WhatsApp + Web Chat — dois canais para começar sem pagar.

E

Equipe WITHMIA

WITHMIA

Nota (julho de 2026): os planos Business e Enterprise hoje se chamam Team e Max. Os preços continuam os mesmos.

A v1.0.7 deixou o billing funcionando sem erros. A v1.0.8 fecha uma brecha crítica: os limites de cada plano agora são aplicados de verdade no backend, e o plano Grátis fica mais competitivo com WhatsApp + Web Chat incluídos.

O problema: enforcement inexistente

Uma auditoria profunda revelou que os limites de plano só eram verificados no frontend — cadeados visuais, selos “PRO” e redirecionamentos para a página de assinatura. Mas as APIs estavam completamente abertas:

  • Uma pessoa no plano Grátis podia subir documentos para a base de conhecimento via API
  • Podia criar workflows ilimitados chamando o endpoint diretamente
  • Podia convidar membros sem nenhuma restrição
  • Só as mensagens de IA (500/mês) tinham enforcement real, via AiUsageService

O que isso significava?

Que qualquer pessoa com conhecimento técnico podia pular todas as restrições do plano Grátis e usar recursos pagos sem assinar. Um problema de segurança e de modelo de negócio ao mesmo tempo.

A solução: PlanEnforcementService

Revisamos e completamos o serviço PlanEnforcementService, que centraliza toda a lógica de verificação de limites:

MétodoO que verificaFonte de dados
canUseChannel($company, $channel)Canal permitido no planobilling.plans.{tier}.channels
canAddDocument($company)Limite de documentos RAGmax_documents vs KnowledgeDocument::count()
canCreateWorkflow($company)Limite de workflows n8nmax_workflows vs WhatsAppInstance::count()
canAddMember($company)Limite de membrosmax_members vs User::count() + TeamInvitation::pending()

O serviço resolve automaticamente o plano ativo da empresa (ou free, se não houver assinatura) e consulta o config/billing.php para obter os limites.

Enforcement aplicado em todos os controllers

ChatwootChannelController (já existia ✅)

Os 4 métodos de criação de canal já verificavam o plano:

  • createWebWidget()canUseChannel($company, 'web')
  • createEmail()canUseChannel($company, 'email')
  • createInstagram()canUseChannel($company, 'instagram')
  • createFacebookMessenger()canUseChannel($company, 'facebook')

DocumentController (novo 🔒)

  • O storeDocumentMetadata() agora verifica canAddDocument() antes de criar o registro
  • Plano Grátis: 0 documentos → bloqueado por completo
  • Plano Pro: no máximo 10 documentos
  • Enterprise: ilimitado (max_documents = -1)

N8nWorkflowController (novo 🔒)

  • O createWorkflowForCompany() agora verifica canCreateWorkflow() antes de chamar o n8n
  • Plano Grátis: 0 workflows → bloqueado por completo
  • Plano Pro: no máximo 3 workflows

TeamInvitationController (novo 🔒)

  • O store() agora verifica canAddMember() depois de validar duplicados
  • Conta usuários atuais + convites pendentes contra max_members
  • Plano Grátis: no máximo 1 membro (o dono) → não pode convidar ninguém

Todos os endpoints retornam HTTP 403 com upgrade_required: true quando o limite é excedido, permitindo que o frontend mostre o convite ao upgrade.

Plano Pro: enforcement completo dos seus 5 limites

O plano Pro ($24.990/mês) é o mais popular da WITHMIA. Com o enforcement real, agora cada um dos seus limites é validado no backend:

Canais: os 5 completos ✅

  • WhatsApp, Instagram, Facebook Messenger, E-mail, Web Chat
  • O canUseChannel() libera os 5 canais configurados em billing.plans.pro.channels
  • Só o Acesso à API segue bloqueado (exige Business ou Enterprise)

Documentos RAG: no máximo 10 ✅

  • O canAddDocument() conta os KnowledgeDocument da empresa
  • Ao chegar a 10, o endpoint retorna 403 com mensagem de upgrade
  • Para subir mais → upgrade para Business (50) ou Enterprise (ilimitado)

Workflows: no máximo 3 ✅

  • O canCreateWorkflow() conta as WhatsAppInstance com n8n_workflow_id ativo
  • Ao chegar a 3, a criação de novos bots é bloqueada
  • Para mais → upgrade para Business (10) ou Enterprise (ilimitado)

Membros: 1 incluído + extras pagos ✅

  • O canAddMember() conta usuários + convites pendentes contra max_members
  • O Pro inclui 1 membro por padrão
  • Membros adicionais: $10.500 CLP/mês cada um (pagamento via Flow.cl/dLocal)
  • Cada membro extra incrementa max_members automaticamente após a confirmação do pagamento

Mensagens de IA: 2.000/mês ✅

  • AiUsageService.canSendMessage() — já existia antes da v1.0.8
  • A 90% e 100% saem alertas por e-mail
  • Excedentes: $5.990 CLP a cada 1.000 mensagens extras (máximo de 5.000 extras)

Modelos de IA: GPT-4o-mini + GPT-4o

  • O getRecommendedModel() roteia automaticamente conforme o plano
  • O Pro pode usar os dois modelos, dependendo da complexidade da mensagem

Plano Grátis: agora com WhatsApp + Web Chat

Decisão estratégica: o plano Grátis agora inclui 2 canais em vez de só WhatsApp.

Por quê?

O widget de chat web é um mercado pouco explorado na América Latina. Oferecê-lo de graça permite que mais empresas experimentem a WITHMIA no próprio site (WordPress, Shopify, Wix) sem compromisso, e descubram o valor da plataforma de forma orgânica.

Mudanças realizadas

CamadaAntesAgora
config/billing.phpchannels: ['whatsapp']channels: ['whatsapp', 'web']
SubscriptionPage.tsx”Só WhatsApp""WhatsApp + Web Chat”
Pricing.tsx (landing)“1 canal (WhatsApp)""2 canais (WhatsApp + Web Chat)“
Tabela comparativaWeb chat ❌ no grátisWeb chat ✅ no grátis
IntegrationSection.tsxWeb chat sem proOnlySem mudanças (já estava certo)

O que segue bloqueado no Grátis

  • Instagram, Facebook Messenger, E-mail → exigem Pro ou superior
  • Documentos RAG → 0 permitidos
  • Workflows → 0 permitidos
  • Membros adicionais → só o dono

Resumo técnico

Arquivos modificados

Backend:

  • config/billing.php — free.channels atualizado para ['whatsapp', 'web']
  • app/Http/Controllers/Api/DocumentController.php — enforcement com canAddDocument()
  • app/Http/Controllers/Api/N8nWorkflowController.php — enforcement com canCreateWorkflow()
  • app/Http/Controllers/Api/TeamInvitationController.php — enforcement com canAddMember()
  • app/Services/PlanEnforcementService.php — revisado e completo (já existia)

Frontend do APP:

  • resources/js/pages/subscription/SubscriptionPage.tsx — texto atualizado

Landing page (WEBPAGE):

  • WEBPAGE/withmia-main/src/components/Pricing.tsx — features, tabela comparativa e FAQ

Padrão de resposta 403

Todos os endpoints protegidos retornam o mesmo formato:

{
  "success": false,
  "error": "Has alcanzado el límite de X de tu plan. Actualiza tu plan para Y.",
  "upgrade_required": true
}

A v1.0.8 transforma a WITHMIA de uma plataforma com restrições cosméticas em uma com enforcement real em cada endpoint. E, ao mesmo tempo, deixa o plano Grátis mais atraente com o Web Chat incluído. Segurança e crescimento em uma única atualização.

Etiquetas

atualização v1.0.8 produto enforcement planos web-chat segurança canais

Compartilhar

Comentários

Seja respeitoso. Seu e-mail não será publicado.

Artigos relacionados

Quer colocar isso para funcionar no seu negócio?

Teste grátis por 14 dias. Sem cartão de crédito.

Testar grátis por 14 dias