GoWeBaKnowledge Center

THE UNIFIED PLATFORM BIBLE — ADDENDUM 08

WebaScan · WebaForm · WebaSign · WebaDrive — Nouvelles fonctionnalités Juin–Juillet 2026

Version : 1.0
Date : 4 juillet 2026
Auteur : Alain Bessette, CFO/Product Owner, ABI Conglomerate
Domaine : GoWeBa.com
Statut : Addendum stratégique officiel — Spécification contraignante
Contraintes : ZÉRO perte de données · ZÉRO force-reset · ZÉRO interruption de service


⚠️ AVIS CRITIQUE
Cet addendum a la MÊME autorité que la Partie 1, la Partie 2 et tous les addendums précédents.
Toutes les fonctionnalités décrites sont déployées en production et sauvegardées en checkpoint.
Aucune modification de schéma incompatible n'a été effectuée.

📋 TABLE DES MATIÈRES

  1. Vue d'ensemble
  2. WebaScan — Scanner intelligent de documents
  3. WebaForm — Remplissage intelligent de formulaires
  4. WebaSign — Améliorations de la signature électronique
  5. WebaDrive — Nouvelles fonctionnalités de stockage
  6. Schéma de données — Modifications additives
  7. Fichiers principaux modifiés
  8. Chronologie des déploiements

<a id="overview"></a>

SECTION 1 : VUE D'ENSEMBLE

Cet addendum documente un ensemble massif de fonctionnalités livrées entre juin et juillet 2026, couvrant quatre modules clés de la plateforme GoWeBa :

ModulePhasesFonctionnalités clés
WebaScanA → GScanner mobile, OCR, extraction structurée, liaison CRM, Ask WEBA, import fichiers universels
WebaFormE, E-v2Bibliothèque de formulaires, auto-remplissage IA, remplissage par lots
WebaSignD, F0Signature en personne, rebranding, nouveaux types de champs
WebaDriveF2, F3, H1–H4Dossiers par contact, enrichissement automatique, recherche plein texte, multi-contacts

Principes de conception

  • Trilingue : Toutes les interfaces supportent le français, l'anglais et l'espagnol
  • Additivité : Aucune modification destructive du schéma de données
  • Intégration CRM : Les quatre modules partagent un pipeline contact unifié
  • IA omniprésente : LLM (gpt-4.1) utilisé pour OCR, extraction, analyse, remplissage

<a id="webascan"></a>

SECTION 2 : WEBASCAN — SCANNER INTELLIGENT DE DOCUMENTS

WebaScan est un scanner mobile de documents intégré directement dans GoWeBa. Il transforme un téléphone ou un ordinateur en scanner intelligent capable de numériser, analyser et classer automatiquement les documents.

2.1 Phase A — Fondations du scanner

Bibliothèque de types de documents (lib/storage/document-library.ts)

~50 types de documents organisés en familles :

FamilleExemples
IdentificationPasseport, permis de conduire, carte d'identité
FinanceRelevé bancaire, facture, reçu, déclaration de revenus
JuridiqueContrat, testament, procuration, certificat
ImmobilierBail, acte de vente, inspection, évaluation
SantéOrdonnance, résultat de laboratoire, carte d'assurance
VéhiculeImmatriculation, constat amiable, contrat de location
ProfessionnelCV, lettre de motivation, diplôme, certificat
QuotidienGarantie, reçu, menu, étiquette

Chaque type définit :

  • Noms trilingues (fr/en/es) + alias de recherche
  • Icône et ratio de cadrage (portrait/paysage/carré)
  • Format papier (Letter, A4, A5) avec option de sélection
  • Drapeau sensible (pour les documents confidentiels)
  • Recto/verso : nombre de faces, option de fusion
  • Classement par défaut : dossier maître + sous-dossier proposé par WEBA
  • Champs d'extraction structurés (nom, date, montant, etc.)
  • Intentions d'analyse (traduire, résumer, filtrer, etc.)

Flux de numérisation : Type → Capture → Édition → Export

  1. Sélection du type : Grille de familles → recherche → sélection du type
  2. Capture : Caméra en temps réel avec cadre guide adapté au type, ou import d'image
  3. Édition : Recadrage (Cropper), zoom, rotation, multi-pages, recto/verso
  4. Export : OCR → Analyse WEBA → Extraction → Liaison CRM → Sauvegarde

Fonctionnalités de capture

  • Cadre guide dynamique adapté au ratio du document (portrait, paysage, carré, carte)
  • Recto/verso : fusion automatique des deux faces sur une seule page
  • Sélection du format papier (Letter/A4/A5) avec pré-sélection intelligente
  • Multi-pages : ajout de pages supplémentaires avec gestion individuelle
  • Drapeau « document sensible » automatique selon le type

Proposition de classement WEBA Après sélection du type, WEBA propose automatiquement le dossier de destination basé sur le defaultFiling du type de document. L'utilisateur peut accepter ou choisir un autre dossier.

2.2 Phase B — Extraction structurée + CRM + Ask WEBA

B1 — Extraction structurée des données

  • Nouveau champ extractedData Json? sur le modèle FileAsset
  • API POST /api/storage/scan/extract : envoie le texte OCR + les champs d'extraction du type au LLM (gpt-4.1, température 0)
  • Résultat : {fields: [{key, label, value}]} — affiché dans des champs éditables avant sauvegarde
  • Exemple pour un passeport : nom, prénom, date de naissance, numéro, pays de délivrance, date d'expiration

B2 — Liaison CRM (rattachement à un contact)

  • Le scanner permet de rechercher un contact existant ou d'en créer un nouveau directement à partir des données extraites du document
  • Le contact créé est de type LEAD, source « WebaScan », avec pré-remplissage des champs extraits (nom, email, téléphone, entreprise, poste)
  • Validation côté serveur : l'ID du contact doit appartenir à l'organisation de l'utilisateur

B3 — Ask WEBA (analyse quotidienne)

  • API POST /api/storage/scan/analyze
  • Intentions rapides selon le type de document : traduire, allergènes, ingrédients, nutrition, filtrer, résumer, comparer, extraire
  • Question libre : l'utilisateur pose une question en texte sur le document
  • Réponse affichée dans le scanner avant la sauvegarde
  • Utilisation facturée au portefeuille (AI_CHAT)

2.3 Phase C — WebaScan comme module sidebar

  • Nouvel accès direct : WebaScan apparaît dans la barre latérale avec l'icône ScanLine
  • Page dédiée /scan avec :
    • Hero gradient avec sélecteur de dossier de destination + bouton « Démarrer un scan »
    • 6 cartes de fonctionnalités explicatives
    • Grille des scans récents (dernières 24h) avec badges (type, pages, sensible, contact CRM)
  • Accès libre : module gratuit pour tous les plans (tier FREE)
  • Raccourci préservé : le bouton Scan dans WebaDrive reste fonctionnel

2.4 Phase G — Import universel de fichiers

Avant : WebaScan n'acceptait que les images (photos de la caméra).
Après : WebaScan accepte tous les types de fichiers courants :

FormatExtension
PDF.pdf
Word.doc, .docx
Excel.xls, .xlsx
CSV.csv
Texte.txt
Images.jpg, .png, etc.

Nouveau flux pour fichiers :

  1. Bouton « Importer un fichier » à l'étape Capture
  2. Validation : taille max 20 Mo, types MIME autorisés
  3. Fichier lu comme dataURL → envoyé au LLM pour analyse (pas d'OCR image)
  4. API POST /api/storage/scan/process-file : extraction du texte complet + description + mots-clés
  5. Export : le fichier original est uploadé directement sur le cloud (pas de conversion image→PDF)
  6. L'étape Édition est automatiquement sautée

Flux original d'images préservé : capture → édition (recadrage) → export PDF


<a id="webaform"></a>

SECTION 3 : WEBAFORM — REMPLISSAGE INTELLIGENT DE FORMULAIRES

WebaForm est un module dédié à la gestion et au remplissage automatique de formulaires professionnels. Il utilise l'intelligence artificielle pour mapper les données extraites par WebaScan sur des formulaires vierges.

3.1 Concept

  1. Téléverser un formulaire vierge (PDF, image) → WebaForm analyse ses champs
  2. Sélectionner des sources de données : documents numérisés + profils contacts
  3. WEBA remplit automatiquement les champs reconnus → les champs inconnus sont marqués « à compléter »
  4. Générer un PDF rempli, automatiquement classé dans WebaDrive

3.2 Architecture technique

Nouveaux modèles de données (additifs) :

  • WebaFormTemplate : formulaire vierge uploadé (cloudStoragePath, fileName, mimeType, pageCount, hasAcroForm, fields Json, status)
  • WebaFormFill : instance de remplissage (formTemplateId, sourceFileIds, contactId, values Json, toComplete String[], outputPath, status)

Statuts de remplissage : DRAFT → NEEDS_REVIEW → COMPLETE

3.3 Détection des champs

WebaForm détecte deux types de formulaires :

TypeDétectionMéthode de remplissage
AcroForm (PDF interactif)pdf-lib getForm/getFieldsRemplissage natif + aplatissement
Formulaire plat (image/scan)LLM vision (base64 → gpt-4.1)Génération d'un PDF résumé avec les données

3.4 Sources de données

Documents numérisés

  • Fichiers FileAsset avec isScanned: true ET (ocrText ou extractedData)
  • L'utilisateur sélectionne un ou plusieurs documents comme sources
  • Leurs données sont agrégées en texte structuré

Profils contacts (Phase F4)

  • Contacts avec au moins un champ personnalisé (ContactFieldValue)
  • Les champs standards du contact (nom, email, téléphone, entreprise, poste, adresse) sont combinés avec les champs personnalisés
  • Labels des champs extraits avec respect de la locale (JSON trilingue {fr, en, es})

Combinaison : l'utilisateur peut sélectionner des documents ET un profil contact simultanément. Le compteur affiche « X doc(s) + 1 contact ».

3.5 Remplissage par lots (Batch Fill — Phase E v2)

  • Sélectionner un template + plusieurs sources → WEBA génère un remplissage pour chaque source
  • Chaque remplissage est indépendant et éditable
  • Cas d'usage : même formulaire pour 10 clients différents

3.6 API WebaForm

RouteMéthodeDescription
/api/forms/templatesGETLister les templates de l'organisation
/api/forms/templatesPOSTUploader un nouveau template (détection auto des champs)
/api/forms/templates/[id]GET/PATCH/DELETEGestion individuelle d'un template
/api/forms/sourcesGETLister les sources disponibles (fichiers scannés + contacts)
/api/forms/fillsGET/POSTLister ou créer un remplissage
/api/forms/fills/[id]GET/PATCH/DELETEGestion d'un remplissage
/api/forms/fills/[id]/generatePOSTGénérer le PDF rempli (AcroForm ou résumé)
/api/forms/fills/[id]/downloadGETURL de téléchargement signée
/api/forms/batchesPOSTCréer un remplissage par lots

3.7 Interface utilisateur

  • Module sidebar /forms (icône FileSpreadsheet, tier PRO)
  • Onglet Bibliothèque : grille des templates avec upload dialog
  • Onglet Remplissages : liste des remplissages avec statut visuel
  • Sélecteur de sources : section « Profil contact » (radio) + section « Documents numérisés » (checkboxes)
  • Écran de revue : champs éditables, champs « à compléter » surlignés en ambre, bouton Générer PDF
  • Auto-classement : le PDF généré est automatiquement sauvegardé dans WebaDrive

3.8 Dialogue de formulaire dans WebaDrive (Phase H-1)

  • 4 champs dans le dialogue d'upload de WebaDrive :
    • Nom du fichier
    • Description
    • Mots-clés
    • Sélecteur de dossier de destination
  • Fondation de la bibliothèque juridique GoWeBa Legal : dossier système « GoWeBa Legal » contenant les templates de formulaires courants

<a id="webasign"></a>

SECTION 4 : WEBASIGN — AMÉLIORATIONS DE LA SIGNATURE ÉLECTRONIQUE

4.1 Rebranding (Phase F0)

  • E-Signature → WebaSign : renommage complet dans toute l'application
    • Barre latérale : « WebaSign » au lieu de « E-Signature »
    • Page de signature : en-tête « WebaSign — Plateforme de signature électronique GoWeBa »
    • Certificats de preuve : branding WebaSign
    • Emails de notification : branding WebaSign
    • Plans & tarification : description WebaSign
    • Données initiales (seed) : templates de démonstration WebaSign
    • i18n : clés mises à jour en fr/en/es

4.2 Nouveaux types de champs (Phase D)

Deux nouveaux types de champs ajoutés à l'éditeur de signature et à la surface de signature :

TypeIcôneCouleurComportement
Date de signatureCalendarClockÉmeraudeAuto-rempli avec la date du jour, lecture seule
Lieu de signatureMapPinRoseChamp texte libre (ville, pays)

Ces champs s'ajoutent aux types existants : SIGNATURE, INITIALS, DATE, TEXT, CHECKBOX.

4.3 Signature en personne (Phase D)

Mode kiosque pour la signature en présentiel (réunion, accueil, événement) :

Flux

  1. Le créateur lance « Signer en personne » depuis le détail d'une enveloppe
  2. Mode plein écran : écran de présentation avec liste des signataires
  3. Rotation séquentielle : chaque signataire est présenté un par un
  4. Handoff : l'appareil est passé au signataire courant
  5. Le signataire signe dans un iframe sécurisé (même surface que la signature à distance)
  6. À la fin de la signature, retour automatique à l'écran de présentation
  7. Quand tous ont signé → écran de confirmation

Caractéristiques techniques

  • Route /signatures/[id]/present avec present-client.tsx (plein écran)
  • API POST /api/signatures/[id]/activate-in-person : active le mode en personne (SANS envoyer d'emails)
  • API GET /api/signatures/[id]/in-person-status : polling léger (signataires, tokens, signataire courant, tous signés)
  • Suppression des emails : en mode kiosque, les emails de rotation et de notification sont supprimés (seul l'email de notification de complétion au propriétaire reste)
  • Mêmes preuves légales : IP, fuseau horaire, géolocalisation, hash SHA-256, certificat PDF automatique, liaison CRM
  • Schéma : inPersonMode Boolean @default(false) sur SignatureEnvelope
  • Event type : IN_PERSON_STARTED

Points d'entrée

  • Dropdown du menu d'actions d'une enveloppe : « Signer en personne » (icône MonitorSmartphone, bleu)
  • Bouton en pied de page de la vue détaillée (conditions : fileAssetId + ≥1 champ + ≥1 signataire)

<a id="webadrive"></a>

SECTION 5 : WEBADRIVE — NOUVELLES FONCTIONNALITÉS DE STOCKAGE

5.1 Dossier WebaDrive par contact (Phase F2)

Chaque contact CRM peut maintenant avoir son propre dossier dédié dans WebaDrive.

  • Création à la demande : bouton dans l'onglet « WebaDrive » du détail contact
  • Structure automatique :
    • Dossier parent « 📇 Contacts » (SYSTEM_MASTER, créé une seule fois)
    • Sous-dossier portant le nom du contact (type CONTACT)
    • 3 sous-dossiers par défaut : Documents, Scans, Correspondance (SYSTEM_DEFAULT)
  • Schéma : driveFolderId String? @unique sur Contact + relation vers StorageFolder
  • API : GET/POST /api/contacts/[id]/drive-folder
  • UI : onglet « WebaDrive » dans le détail du contact — grille de sous-dossiers, liste de fichiers, lien « Ouvrir dans WebaDrive »

5.2 Pipeline intelligent Scan→Contact→Enrichissement (Phase F3)

Pipeline automatique déclenché après chaque scan avec liaison CRM + données extraites :

  1. Auto-création des définitions de champs : les clés d'extraction sont transformées en ContactFieldDef (nom sanitisé, type deviné, catégorie déduite du type de document)
  2. Upsert des valeurs : ContactFieldValue créées/mises à jour (confiance 0.75, source liée au fichier, non vérifié)
  3. Auto-classement : le fichier scanné est déplacé dans le sous-dossier « Scans » du dossier WebaDrive du contact
  4. Idempotent : gestion des race conditions, upserts uniques

Helpers : sanitizeName, humanize, docTypeToCategory (30+ mappings), guessFieldType (heuristiques clé + patterns valeur → DATE/EMAIL/PHONE/CURRENCY/URL/TEXT)

5.3 Recherche plein texte dans WebaDrive (Phase H-2)

  • Recherche transversale : recherche par mots-clés à travers tous les dossiers
  • L'utilisateur tape ≥2 caractères → recherche serveur sur les noms de fichiers, descriptions et mots-clés
  • Résultats affichés avec compteurs (fichiers + dossiers)
  • API /api/storage/search avec filtre organizationId

5.4 Historique enrichi des scans (Phase H-3)

  • WebaScan : page d'accueil enrichie avec :
    • Prévisualisation du document scanné
    • Mode plein écran
    • Boutons Imprimer, Télécharger, Déplacer
    • Badges : type de document, nombre de pages, indicateur sensible, contact CRM rattaché

5.5 Liaison multi-contacts document↔contacts (Phase H-4)

Avant : un document ne pouvait être lié qu'à UN SEUL contact (linkedContactId String?).
Après : un document peut être lié à PLUSIEURS contacts (linkedContactIds Json? @default("[]")).

Rétrocompatibilité

  • Le champ linkedContactId (singulier) est conservé et automatiquement synchronisé avec le premier contact du tableau
  • Les 20+ fichiers qui référencent linkedContactId continuent de fonctionner sans modification
  • L'API des attachments du contact cherche via linkedContactId OU dans le tableau linkedContactIds (via array_contains)

Modifications API

RouteChangement
POST /api/storage/filesAccepte linkedContactIds[] + rétrocompatibilité linkedContactId
PATCH /api/storage/files/[id]Supporte la mise à jour de linkedContactIds
POST /api/storage/scan/exportReçoit et valide les multi-contacts
GET /api/contacts/[id]/attachmentsRequête OR : linkedContactId ou linkedContactIds contenant l'ID
GET /api/contactsNouveau paramètre ?ids=id1,id2,... pour le chargement batch

WebaScan — Sélecteur multi-contacts

  • Le sélecteur de contact unique est remplacé par un sélecteur multi-contacts
  • Recherche et ajout de plusieurs contacts avec dédoublonnage
  • Affichage de tous les contacts rattachés avec bouton « Retirer » individuel
  • Création de contact depuis le scan → ajouté à la liste

WebaDrive — Panneau Info & contexte

  • Nouvelle section « Contacts rattachés » dans le dialogue Info du fichier
  • Affichage des contacts liés avec suppression individuelle
  • Recherche et ajout de nouveaux contacts
  • Sauvegarde avec les mots-clés et la description

<a id="schema"></a>

SECTION 6 : SCHÉMA DE DONNÉES — MODIFICATIONS ADDITIVES

Toutes les modifications suivantes sont additives — aucune suppression ou modification incompatible.

6.1 FileAsset

// Phase B — extraction structurée
extractedData          Json?

// Phase H-4 — multi-contacts
linkedContactIds       Json?    @default("[]")

6.2 Nouveaux modèles

WebaFormTemplate {
  id, organizationId, cloudStoragePath, fileName, mimeType,
  pageCount, hasAcroForm, fields Json, status,
  createdAt, updatedAt
}

WebaFormFill {
  id, organizationId, formTemplateId, sourceFileIds String[],
  contactId?, values Json, toComplete String[],
  outputPath?, outputFileName?, status (DRAFT/NEEDS_REVIEW/COMPLETE),
  createdAt, updatedAt
}

6.3 Contact

// Phase F1 — champs personnalisés
ContactFieldDef { name, label Json, fieldType, category, optionsJson, orderIndex, isActive, source }
ContactFieldValue { contactId, fieldDefId, value, confidence?, sourceFileAssetId?, verifiedByUser }

// Phase F2 — dossier WebaDrive
driveFolderId          String?  @unique

6.4 SignatureEnvelope

// Phase D — signature en personne
inPersonMode           Boolean  @default(false)

6.5 SignatureFieldType (enum)

// Phase D — nouveaux types
DATE_SIGNED
PLACE

<a id="fichiers"></a>

SECTION 7 : FICHIERS PRINCIPAUX MODIFIÉS

WebaScan

FichierRôle
lib/storage/document-library.ts~50 types de documents, familles, extraction, intentions
components/storage/weba-scanner-dialog.tsxInterface principale du scanner (1100+ lignes)
app/api/storage/scan/ocr/route.tsOCR par page + contexte
app/api/storage/scan/extract/route.tsExtraction structurée LLM
app/api/storage/scan/analyze/route.tsAsk WEBA — intentions + question libre
app/api/storage/scan/export/route.tsSauvegarde FileAsset + multi-contacts
app/api/storage/scan/process-file/route.tsAnalyse de fichiers non-image
app/(app)/scan/page.tsxPage serveur WebaScan
app/(app)/scan/webascan-client.tsxClient WebaScan (hero, fonctionnalités, scans récents)

WebaForm

FichierRôle
lib/weba/form-fill.tsDétection AcroForm, analyse LLM, mapping, remplissage, PDF
app/api/forms/templates/route.tsCRUD templates
app/api/forms/fills/route.tsCRUD remplissages
app/api/forms/fills/[id]/generate/route.tsGénération PDF rempli
app/api/forms/sources/route.tsSources (fichiers scannés + contacts)
app/api/forms/batches/route.tsRemplissage par lots
app/(app)/forms/webaform-client.tsxInterface utilisateur WebaForm

WebaSign

FichierRôle
components/signatures/pdf-field-editor.tsxÉditeur de champs PDF (DATE_SIGNED, PLACE)
app/sign/[token]/signing-client.tsxSurface de signature (nouveaux types)
app/(app)/signatures/[id]/present/page.tsxPage serveur présentation
app/(app)/signatures/[id]/present/present-client.tsxClient kiosque plein écran
app/api/signatures/[id]/activate-in-person/route.tsActivation mode en personne
app/api/signatures/[id]/in-person-status/route.tsPolling statut kiosque
app/(app)/signatures/signatures-client.tsxPoints d'entrée « Signer en personne »

WebaDrive

FichierRôle
lib/storage/contact-folder.tsCréation dossier contact + sous-dossiers
lib/contacts/contact-enrichment.tsPipeline auto-enrichissement
app/(app)/storage/webadrive-client.tsxClient WebaDrive (panneau info multi-contacts)
app/api/storage/files/route.tsPOST : linkedContactIds
app/api/storage/files/[id]/route.tsPATCH : mise à jour multi-contacts
app/api/contacts/[id]/attachments/route.tsGET : requête OR multi-contacts
app/api/contacts/[id]/drive-folder/route.tsDossier WebaDrive du contact

<a id="chronologie"></a>

SECTION 8 : CHRONOLOGIE DES DÉPLOIEMENTS

DatePhaseDescription
Juin 2026Phase AWebaScan — Fondations, bibliothèque, capture, édition
Juin 2026Phase BWebaScan — Extraction + CRM + Ask WEBA
Juin 2026Phase CWebaScan — Module sidebar dédié
Juin 2026Phase DWebaSign — Signature en personne + nouveaux champs
Juin 2026Phase EWebaForm — Module complet (templates, auto-fill, PDF)
Juin 2026Phase E v2WebaForm — Remplissage par lots
Juin 2026Phase F0WebaSign — Rebranding E-Signature → WebaSign
Juin 2026Phase F1Contacts — Champs personnalisés
Juin 2026Phase F2WebaDrive — Dossier par contact
Juin 2026Phase F3Pipeline — Scan → Contact → Auto-enrichissement
Juin 2026Phase F4WebaForm — Profils contacts comme source
Juin 2026Phase GWebaScan — Import universel de fichiers
Juillet 2026Phase H-1WebaDrive — WebaForm 4 champs + GoWeBa Legal
Juillet 2026Phase H-2WebaDrive — Recherche plein texte (cross-folder)
Juillet 2026Phase H-3WebaScan — Historique enrichi (preview, plein écran, impression)
Juillet 2026Phase H-4WebaDrive — Liaison multi-contacts document↔contacts

Prochaines étapes suggérées :

  • WebaVision : intégration de la vision IA avancée dans le scanner
  • WebaForm : éditeur de position des champs sur formulaires plats
  • WebaDrive : versionnement de fichiers
  • WebaSign : workflows de signature avec approbation préalable

Document généré dans le cadre du Knowledge Center GoWeBa — goweba.com
© 2026 ABI Conglomerate. Tous droits réservés.

© 2024–2026 GOWEBA INC. — Make it Simple, Make it Possible, Make it Real.