Aller au contenu
Produit · 5 min de lecture

WITHMIA v1.0.8 — Des limites d'offre réellement appliquées + Web Chat gratuit

Mise en place complète de l'application des limites côté backend (documents, workflows, membres, canaux). L'offre Gratuite inclut désormais WhatsApp + Web Chat — deux canaux pour démarrer sans payer.

É

Équipe WITHMIA

WITHMIA

Note (juillet 2026) : les offres Business et Enterprise s’appellent aujourd’hui Team et Max. Les tarifs restent identiques.

La v1.0.7 a rendu la facturation irréprochable. La v1.0.8 comble une faille critique : les limites de chaque offre sont désormais réellement appliquées côté backend, et l’offre Gratuite devient plus attractive avec WhatsApp + Web Chat inclus.

Le problème : des limites qui n’en étaient pas

Un audit approfondi a révélé que les limites d’offre n’étaient vérifiées que côté frontend — cadenas visuels, badges « PRO » et redirections vers la page d’abonnement. Mais les API étaient grandes ouvertes :

  • Un utilisateur de l’offre Gratuite pouvait envoyer des documents dans la base de connaissances via l’API
  • Il pouvait créer des workflows sans limite en appelant directement l’endpoint
  • Il pouvait inviter des membres sans la moindre restriction
  • Seuls les messages IA (500/mois) faisaient l’objet d’un contrôle réel, via AiUsageService

Qu’est-ce que cela impliquait ?

Que n’importe qui d’un peu technique pouvait contourner toutes les restrictions de l’offre Gratuite et utiliser des fonctionnalités payantes sans s’abonner. Un problème de sécurité autant que de modèle économique.

La solution : PlanEnforcementService

Nous avons vérifié et complété le service PlanEnforcementService, qui centralise toute la logique de contrôle des limites :

MéthodeCe qu’elle vérifieSource de données
canUseChannel($company, $channel)Canal autorisé dans l’offrebilling.plans.{tier}.channels
canAddDocument($company)Limite de documents RAGmax_documents vs KnowledgeDocument::count()
canCreateWorkflow($company)Limite de workflows n8nmax_workflows vs WhatsAppInstance::count()
canAddMember($company)Limite de membresmax_members vs User::count() + TeamInvitation::pending()

Le service résout automatiquement l’offre active de l’entreprise (ou free en l’absence d’abonnement) et consulte config/billing.php pour connaître les limites.

Contrôle appliqué dans tous les contrôleurs

ChatwootChannelController (déjà en place ✅)

Les 4 méthodes de création de canal vérifiaient déjà l’offre :

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

DocumentController (nouveau 🔒)

  • storeDocumentMetadata() vérifie désormais canAddDocument() avant de créer l’enregistrement
  • Offre Gratuite : 0 document → totalement bloqué
  • Offre Pro : 10 documents maximum
  • Enterprise : illimité (max_documents = -1)

N8nWorkflowController (nouveau 🔒)

  • createWorkflowForCompany() vérifie désormais canCreateWorkflow() avant d’appeler n8n
  • Offre Gratuite : 0 workflow → totalement bloqué
  • Offre Pro : 3 workflows maximum

TeamInvitationController (nouveau 🔒)

  • store() vérifie désormais canAddMember() après le contrôle des doublons
  • Compte les utilisateurs actuels + les invitations en attente face à max_members
  • Offre Gratuite : 1 membre maximum (le propriétaire) → aucune invitation possible

Tous les endpoints renvoient un HTTP 403 avec upgrade_required: true lorsque la limite est dépassée, ce qui permet au frontend d’afficher l’invitation à monter en gamme.

Offre Pro : ses 5 limites entièrement appliquées

L’offre Pro ($24.990/mois) est la plus populaire de WITHMIA. Avec le contrôle réel, chacune de ses limites est désormais validée côté backend :

Canaux : les 5, au complet ✅

  • WhatsApp, Instagram, Facebook Messenger, E-mail, Web Chat
  • canUseChannel() autorise les 5 canaux configurés dans billing.plans.pro.channels
  • Seul l’accès API reste verrouillé (il faut Business ou Enterprise)

Documents RAG : 10 maximum ✅

  • canAddDocument() compte les KnowledgeDocument de l’entreprise
  • À 10, l’endpoint renvoie un 403 avec un message de montée en gamme
  • Pour en ajouter davantage → passer à Business (50) ou Enterprise (illimité)

Workflows : 3 maximum ✅

  • canCreateWorkflow() compte les WhatsAppInstance dotées d’un n8n_workflow_id actif
  • À 3, la création de nouveaux bots est bloquée
  • Pour aller plus loin → passer à Business (10) ou Enterprise (illimité)

Membres : 1 inclus + extras payants ✅

  • canAddMember() compte les utilisateurs + les invitations en attente face à max_members
  • Pro inclut 1 membre par défaut
  • Membres supplémentaires : $10.500 CLP/mois chacun (paiement via Flow.cl/dLocal)
  • Chaque membre supplémentaire incrémente automatiquement max_members une fois le paiement confirmé

Messages IA : 2 000/mois ✅

  • AiUsageService.canSendMessage() — déjà en place avant la v1.0.8
  • Des alertes par e-mail partent à 90 % et 100 %
  • Dépassements : $5.990 CLP par tranche de 1 000 messages supplémentaires (5 000 au maximum)

Modèles d’IA : GPT-4o-mini + GPT-4o

  • getRecommendedModel() effectue le routage automatique selon l’offre
  • Pro peut utiliser les deux modèles selon la complexité du message

Offre Gratuite : désormais avec WhatsApp + Web Chat

Décision stratégique : l’offre Gratuite inclut maintenant 2 canaux au lieu du seul WhatsApp.

Pourquoi ?

Le widget de chat web est un marché encore peu exploité en Amérique latine. L’offrir gratuitement permet à davantage d’entreprises d’essayer WITHMIA sur leur propre site (WordPress, Shopify, Wix) sans engagement, et de découvrir la valeur de la plateforme de façon organique.

Ce qui a changé

CoucheAvantMaintenant
config/billing.phpchannels: ['whatsapp']channels: ['whatsapp', 'web']
SubscriptionPage.tsx« WhatsApp uniquement »« WhatsApp + Web Chat »
Pricing.tsx (landing)« 1 canal (WhatsApp) »« 2 canaux (WhatsApp + Web Chat) »
Tableau comparatifWeb chat ❌ pour l’offre gratuiteWeb chat ✅ pour l’offre gratuite
IntegrationSection.tsxWeb chat sans proOnlyAucun changement (déjà correct)

Ce qui reste bloqué en Gratuit

  • Instagram, Facebook Messenger, E-mail → nécessitent Pro ou au-delà
  • Documents RAG → 0 autorisé
  • Workflows → 0 autorisé
  • Membres supplémentaires → le propriétaire uniquement

Récapitulatif technique

Fichiers modifiés

Backend :

  • config/billing.php — free.channels passé à ['whatsapp', 'web']
  • app/Http/Controllers/Api/DocumentController.php — contrôle avec canAddDocument()
  • app/Http/Controllers/Api/N8nWorkflowController.php — contrôle avec canCreateWorkflow()
  • app/Http/Controllers/Api/TeamInvitationController.php — contrôle avec canAddMember()
  • app/Services/PlanEnforcementService.php — vérifié et complété (existait déjà)

Frontend de l’APP :

  • resources/js/pages/subscription/SubscriptionPage.tsx — textes mis à jour

Landing page (WEBPAGE) :

  • WEBPAGE/withmia-main/src/components/Pricing.tsx — fonctionnalités, tableau comparatif et FAQ

Format de réponse 403

Tous les endpoints protégés renvoient le même format :

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

La v1.0.8 fait passer WITHMIA d’une plateforme aux restrictions cosmétiques à une plateforme dotée d’un contrôle réel sur chaque endpoint. Et dans le même mouvement, elle rend l’offre Gratuite plus séduisante avec le Web Chat inclus. Sécurité et croissance dans une seule mise à jour.

Étiquettes

mise à jour v1.0.8 produit limites offres web-chat sécurité canaux

Partager

Commentaires

Restez respectueux. Votre e-mail ne sera pas publié.

Articles liés

Envie de mettre ça en place dans votre entreprise ?

Essayez gratuitement pendant 14 jours. Sans carte bancaire.

Essayer 14 jours gratuitement