gigafibre-fsm/docs/PLATFORM-STRATEGY.md
louispaulb 607ea54b5c refactor: reduce token count, DRY code, consolidate docs
Backend services:
- targo-hub: extract deepGetValue to helpers.js, DRY disconnect reasons
  lookup map, compact CAPABILITIES, consolidate vision.js prompts/schemas,
  extract dispatch scoring weights, trim section dividers across 9 files
- modem-bridge: extract getSession() helper (6 occurrences), resetIdleTimer(),
  consolidate DM query factory, fix duplicate username fill bug, trim headers
  (server.js -36%, tplink-session.js -47%, docker-compose.yml -57%)

Frontend:
- useWifiDiagnostic: extract THRESHOLDS const, split processDiagnostic into
  6 focused helpers (processOnlineStatus, processWanIPs, processRadios,
  processMeshNodes, processClients, checkRadioIssues)
- EquipmentDetail: merge duplicate ROLE_LABELS, remove verbose comments

Documentation (17 → 13 files, -1,400 lines):
- New consolidated README.md (architecture, services, dependencies, auth)
- Merge ECOSYSTEM-OVERVIEW into ARCHITECTURE.md
- Merge MIGRATION-PLAN + ARCHITECTURE-COMPARE + FIELD-GAP + CHANGELOG → MIGRATION.md
- Merge COMPETITIVE-ANALYSIS into PLATFORM-STRATEGY.md
- Update ROADMAP.md with current phase status
- Delete CONTEXT.md (absorbed into README)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 08:39:58 -04:00

22 KiB

Gigafibre Platform Strategy

Vision unifiée par département — Inspiré Calix CommandIQ / SmartTown

Avril 2026 — Document de planification stratégique


1. Inventaire des applications actuelles

Applications à CONSERVER (core platform)

App URL Rôle Stack
ERPNext v16 erp.gigafibre.ca Source de vérité (clients, facturation, équipement, tickets) Python/PostgreSQL
Targo Ops erp.gigafibre.ca/ops/ Console opérations internes (dispatch, clients, tickets, réseau) Vue 3 / Quasar PWA
Targo Hub msg.gigafibre.ca Backend API, SSE temps réel, SMS, vision AI, magic links, page mobile tech Node.js 20
Client Portal client.gigafibre.ca Self-service client (factures, support, catalogue) Vue 3 / Quasar PWA
Website www.gigafibre.ca Site vitrine marketing, vérification d'adresse React / Vite
Authentik (Client) id.gigafibre.ca SSO clients et staff Docker
Traefik Reverse proxy, TLS, routing Docker
n8n n8n.gigafibre.ca Workflows automatisés (SMS, email, webhooks) Docker

Applications à RETIRER (legacy / redondantes)

App URL Raison du retrait Fonctionnalités à migrer Statut migration
dispatch-app (legacy) dispatch.gigafibre.ca Remplacé par Ops /dispatch + page mobile /t/{token} Timeline dispatch , Mobile tech , Magic links , Catalogue équipement dans mobile , Scan barcode Prêt à retirer
Targo Field App (apps/field/) Remplacé par page mobile lightweight /t/{token} servi par targo-hub Job list , Job detail , Scan barcode , Diagnostic (à évaluer) Prêt à retirer
Oktopus CE (TR-069 ACS) oss.gigafibre.ca ⚠️ Fait du TR-369 — pas d'alternative connue pour big data CPE temps réel Conserver

Applications à NE PAS RETIRER

App Raison
Authentik (Staff) auth.targo.ca Activement utilisé — remplacement impossible à court terme
Legacy DB (MariaDB) Migration incomplète (~20/160 tables). Données critiques encore exclusives : comptabilité, soumissions, accords, télécom, projets, consommation, fibre/IP
Oktopus CE Seule solution TR-369 pour statut temps réel et big data des CPE clients

Applications PARALLÈLES (hors scope Gigafibre FSM)

App Rôle Note
Targo Backend/Frontend RH/Feuilles de temps employés Targo Projet séparé, pas de chevauchement
Infra-Map-Vue Cartographie fibre topologique (poteaux, routes optiques) À intégrer éventuellement dans Ops comme module réseau
Device Monitor Monitoring devices (prototype) Fonctionnalités à absorber par targo-hub OLT/SNMP

2. Fonctionnalités par département

MARKETING — Segmentation dynamique et ventes contextuelles

"Patterns and contextual signals are analyzed to dynamically segment audiences and identify upsell and cross-sell opportunities."

Données disponibles dans ERPNext aujourd'hui :

  • Historique de facturation (115K+ factures) — panier moyen, ancienneté, churn risk
  • Tickets de support (242K+) — fréquence des appels, types de problèmes récurrents
  • Équipement installé (7 500+) — âge du modem, capacité Wi-Fi, nombre d'appareils
  • Abonnements actifs (21K+) — services manquants (pas de TV, pas de VoIP)
  • Données réseau (OLT, signal optique, débit) — qualité de service réelle

Stratégie upsell/cross-sell contextuelle :

Signal contextuel Action marketing Canal
Client avec Internet seulement + ticket "lenteur Wi-Fi" Proposer routeur Wi-Fi 6 mesh + bornes extérieures SMS personnalisé via Twilio
Client sans TV + visionnement Netflix détecté (DPI/QoS) Offrir IPTV bundle à prix réduit Email via Mailjet + bannière portail
Client avec ancien modem (>3 ans) Upgrade gratuit vers ONT dernière gen Notification push portail client
Client avec >3 tickets/mois Offrir Support Prioritaire (10$/mois) Appel proactif CSR
Déménagement détecté (changement adresse) Offrir installation complète maison intelligente Visite tech + catalogue domotique
Client fidèle >5 ans, 0 ticket Programme fidélité : caméra d'entrée offerte Lettre personnalisée + portail

Modules à développer :

Module Description
Segment Engine Requêtes ERPNext automatisées qui tagguent les clients par segment (à risque, upsell TV, upgrade Wi-Fi, fidèle, nouveau) n8n workflow + ERPNext Custom Script
Campaign Manager Interface dans Ops pour créer/envoyer des campagnes SMS/email ciblées par segment Ops app — nouveau module /campaigns
Smart Banners Bannières contextuelles dans le portail client basées sur le profil Client Portal — composant dynamique
QR Modem → Offre QR code sur le modem → URL → détecte le client → affiche offres personnalisées targo-hub page servie (comme /t/{token})

Produits domotique à offrir :

  • Bornes Wi-Fi extérieures (mesh outdoor)
  • Caméras d'entrée connectées (Doorbell IP)
  • Thermostats intelligents
  • Détecteurs de fumée/CO connectés
  • Serrures intelligentes
  • Hub domotique Zigbee/Z-Wave

OPERATIONS — Proactivité et résolution automatique

"Operations agent workforce works around the clock to proactively uncover and resolve issues, reducing outages and improving the subscriber experience."

Monitoring proactif actuel :

  • OLT SNMP polling (targo-hub olt-snmp.js) — signal optique, statut ONU
  • GenieACS TR-069 — paramètres CPE, reboots, firmware
  • Traccar GPS — position techniciens en temps réel

Vision proactive à implémenter :

Détection Action automatique Notification
Signal optique ONU dégradé (<-25 dBm) Créer ticket prioritaire + dispatch auto tech le plus proche SMS client : "Nous avons détecté un problème, un technicien est en route"
ONT hors ligne >30 min (pas panne secteur) Vérifier statut OLT, si OK → créer ticket SMS client : "Votre connexion semble interrompue, nous investiguons"
Wi-Fi congestionné (>20 clients, canal saturé) Push config optimale via TR-069 (changement canal auto) Notification portail : "Nous avons optimisé votre Wi-Fi"
Latence >50ms vers gateway Alert dispatch + diagnostic réseau auto Rien (résolution silencieuse si possible)
Firmware CPE obsolète Schedule mise à jour nocturne via GenieACS Email : "Mise à jour de sécurité appliquée"
Panne OLT (multiple ONU down) Créer incident majeur, notifier tous clients affectés en masse SMS masse : "Panne détectée dans votre secteur, résolution en cours"

Modules existants vs à développer :

Module Statut Prochaine étape
Dispatch Timeline (drag-drop, Gantt) Complet
Tags/Compétences (match auto) Complet
Horaires + RRULE (garde, shifts) Complet
Publication SMS + magic links Complet
Page mobile tech lightweight Complet
Scan barcode + gestion équipement Complet
Pool d'offres Uber-style Complet
Confirmation unassign jobs publiés Complet
OLT SNMP monitoring Basique Ajouter alertes automatiques
Proactive ticket creation À faire n8n workflow : SNMP alert → create Issue
Auto-dispatch (matching algo) À faire Algorithme basé sur tags + distance + charge
Outage detection + mass notify À faire Corréler ONU down par OLT → SMS masse
CPE auto-config via TR-069 À faire GenieACS presets + targo-hub proxy

SERVICE — Intelligence contextuelle pour CSR et résolution au premier appel

"Specialized service agents share best practices and contextual insights to CSRs to solve problems faster and on the first call."

Données contextuelles disponibles pour le CSR (dans Ops app) :

  • Historique complet du client (tickets, factures, paiements)
  • Équipement installé avec diagnostics en temps réel (signal, Wi-Fi, devices connectés)
  • Notes des techniciens sur les visites précédentes
  • Statut réseau du secteur (panne en cours ?)
  • Historique des interventions sur cette adresse

Outils d'aide CSR à développer :

Outil Description Impact
Client Context Card Vue unifiée en 1 écran : abo actifs, dernier ticket, équipement, santé réseau, paiements en retard Réduction temps d'appel de 40%
Diagnostic Auto Bouton "Diagnostiquer" sur la fiche client → lance ping, speedtest, check signal ONU, vérifie firmware Résolution 1er appel +30%
Knowledge Base contextuelle Suggestions automatiques basées sur le type de problème : "Ce client a un HG8245H → vérifier le port LAN 4 connu pour défaillance" Partage best practices
Script d'appel guidé Flow interactif : symptôme → questions → diagnostic → solution → escalation si nécessaire Uniformité du service
Historique interactions Timeline unifiée : appels, SMS, emails, visites tech, modifications de compte Contexte complet

État actuel vs cible :

Fonctionnalité Statut
Fiche client avec équipement et tickets Ops /clients/:id
Détail équipement avec diagnostic OLT EquipmentDetail.vue
Envoi SMS/email depuis Ops Via targo-hub/Twilio
Historique thread de tickets Ops tickets module
Diagnostic auto (1 clic) À intégrer (GenieACS + SNMP)
Suggestions contextuelles AI À faire (Gemini sur historique tickets similaires)
Scripts d'appel guidés À faire

SUBSCRIBER — L'intelligence du support dans les mains du client

"Subscriber agents extend the reach of support organizations directly to subscribers with personalized upsell opportunities, optimization techniques, and outage information through the subscriber's app."

Portail client actuel (client.gigafibre.ca) :

  • Consultation factures et historique
  • Paiement Stripe
  • Création/suivi de tickets
  • Catalogue produits avec panier
  • Auth SSO (id.gigafibre.ca)

Fonctionnalités Subscriber à ajouter :

Feature Description Priorité
QR Code sur modem Étiquette QR collée sur le modem → URL msg.gigafibre.ca/q/{mac} → identifie le compte → envoie token SMS/email au propriétaire → accès gestion compte 🔴 Haute
Dashboard santé réseau Vitesse actuelle, latence, uptime 30 jours, appareils connectés 🔴 Haute
Contrôle parental (langage naturel) "Bloquer TikTok pour les enfants après 21h" → traduit en règles TR-069 → push au routeur 🟡 Moyenne
Notifications outage Push/SMS automatique quand panne détectée dans le secteur, avec ETA résolution 🔴 Haute
Optimisation Wi-Fi Conseils personnalisés : "Votre routeur est dans le sous-sol, déplacez-le au rez-de-chaussée pour +40% de couverture" 🟡 Moyenne
Self-diagnostic Bouton "Tester ma connexion" → speedtest + vérification signal → rapport 🔴 Haute
Offres personnalisées Bannières contextuelles : "Ajoutez la TV IPTV à votre forfait pour 20$/mois" basé sur profil 🟡 Moyenne
Gestion appareils Liste des appareils connectés, renommer, bloquer, prioritiser 🟡 Moyenne
Historique consommation Graphique de bande passante utilisée par jour/semaine/mois 🟢 Basse

3. QR Code Modem — Flow technique détaillé

Le QR code sur le modem est un game-changer pour l'expérience client. Flow :

┌─────────────────────────────────────────────────────────┐
│  ÉTIQUETTE QR SUR LE MODEM                              │
│  URL: msg.gigafibre.ca/q/{MAC_ADDRESS}                  │
└──────────────────────┬──────────────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────────────┐
│  targo-hub GET /q/{mac}                                 │
│  1. Lookup Service Equipment par MAC                     │
│  2. Trouver le Customer lié                              │
│  3. Récupérer téléphone/email du Customer                │
│  4. Envoyer OTP 6 chiffres par SMS (Twilio)              │
│  5. Afficher page : "Code envoyé au 514-***-**89"        │
└──────────────────────┬──────────────────────────────────┘
                       │ Client entre le code OTP
                       ▼
┌─────────────────────────────────────────────────────────┐
│  POST /q/{mac}/verify  { otp: "123456" }                │
│  1. Vérifier OTP (Redis, TTL 5 min)                      │
│  2. Générer JWT session (24h)                            │
│  3. Servir page subscriber :                             │
│     - Santé réseau (signal, vitesse, uptime)             │
│     - Appareils connectés                                │
│     - Contrôle parental                                  │
│     - Offres personnalisées                              │
│     - Lien vers portail complet (client.gigafibre.ca)    │
└─────────────────────────────────────────────────────────┘

Avantages :

  • Zéro mot de passe à retenir
  • Accessible même par des clients non technologiques
  • Le QR est physiquement chez le client → preuve de possession
  • Upsell contextuel immédiat (le client est devant son modem)
  • Support proactif : "Votre signal est faible, voulez-vous un diagnostic ?"

4. Architecture cible — Plateforme unifiée

                    ┌─────────────────────────┐
                    │     www.gigafibre.ca     │  Marketing
                    │    (React — vitrine)     │  Vérification adresse
                    └────────────┬────────────┘
                                 │
    ┌────────────────────────────┼────────────────────────────┐
    │                            │                            │
    ▼                            ▼                            ▼
┌─────────┐           ┌──────────────────┐          ┌──────────────────┐
│  Ops    │           │  Client Portal   │          │  Mobile Tech     │
│  App    │           │  (Vue/Quasar)    │          │  /t/{token}      │
│  (PWA)  │           │  client.gigafibre│          │  (HTML pur)      │
│         │           │                  │          │                  │
│ Dispatch│           │ Factures         │          │ Jobs du jour     │
│ Clients │           │ Paiements        │          │ Scan barcode     │
│ Tickets │           │ Support          │          │ GPS navigation   │
│ Réseau  │           │ Catalogue        │          │ Status update    │
│ Campagns│           │ QR Modem portal  │          │ Équipement CRUD  │
└────┬────┘           └────────┬─────────┘          └────────┬─────────┘
     │                         │                             │
     └─────────────────────────┼─────────────────────────────┘
                               │
                    ┌──────────▼──────────┐
                    │     targo-hub       │
                    │   (Node.js 20)      │
                    │                     │
                    │ SSE temps réel      │
                    │ SMS (Twilio)        │
                    │ Vision AI (Gemini)  │
                    │ Magic links / OTP   │
                    │ OLT SNMP polling    │
                    │ QR modem → auth     │
                    │ TR-069 proxy        │
                    │ Segment engine      │
                    └──────────┬──────────┘
                               │
                    ┌──────────▼──────────┐
                    │    ERPNext v16      │
                    │   (PostgreSQL)      │
                    │                     │
                    │ Customers  6,600+   │
                    │ Invoices   115K+    │
                    │ Equipment  7,500+   │
                    │ Tickets    242K+    │
                    │ Subscriptions 21K+  │
                    └──────────┬──────────┘
                               │
              ┌────────────────┼────────────────┐
              ▼                ▼                 ▼
        ┌──────────┐   ┌──────────┐      ┌──────────┐
        │ GenieACS │   │ Traccar  │      │ id.giga  │
        │ TR-069   │   │ GPS      │      │ Authentik │
        │ 7,500 CPE│   │ 46 techs │      │ SSO      │
        └──────────┘   └──────────┘      └──────────┘

5. Plan de retrait des applications legacy

Phase 1 — Immédiat (avril 2026)

Action Risque Validation
Retirer dispatch-app du docker-compose apps Bas — toutes les features sont dans Ops + /t/{token} Vérifier que les magic links SMS pointent vers msg.gigafibre.ca/t/
Retirer le container apps-dispatch-frontend-1 Bas Confirmer qu'aucun bookmark/lien externe pointe vers dispatch.gigafibre.ca
Supprimer le repo dispatch-app de la CI Aucun

Phase 2 — Court terme (mai 2026)

Action Risque Validation
Retirer apps/field/ du monorepo Bas — /t/{token} couvre tout Comparer features field vs /t/{token}
Migrer auth.targo.caid.gigafibre.ca pour n8n et Hub Moyen — tester les flows n8n Tester chaque workflow n8n post-migration
Éteindre legacy-db MariaDB Bas — migration 100% complétée Garder un dump SQL en backup
Évaluer retrait Oktopus CE vs intégration GenieACS Moyen Comparer fonctionnalités monitoring

Phase 3 — Moyen terme (été 2026)

Action Risque Validation
Absorber device-monitor dans targo-hub OLT SNMP Bas Vérifier couverture fonctionnelle
Intégrer infra-map-vue comme module Ops /network/map Moyen iframe ou migration Vue
Unifier Targo Backend avec targo-hub (si pertinent) Élevé — évaluer Audit des fonctionnalités RH

6. Métriques de succès par département

Département KPI Cible
Marketing Taux de conversion upsell via portail/SMS 5% des clients ciblés
Marketing Revenu additionnel par client (ARPU lift) +8$/mois moyen
Operations Tickets proactifs (créés avant appel client) 30% des incidents réseau
Operations Temps moyen de résolution dispatch <4h (actuellement ~8h)
Service Résolution au premier appel (FCR) 75% (actuellement ~55%)
Service Temps moyen d'appel CSR <6 min (actuellement ~10 min)
Subscriber Adoption portail self-service 40% des clients actifs
Subscriber Réduction appels support via self-diagnostic -25% volume appels

7. Analyse concurrentielle

Gaiia (gaiia.com) — Comparable principal

Canadian-founded (2021), YC-backed, $13.2M Series A. 40+ ISP customers.

Gaiia Module Gigafibre Status
Workforce & Scheduling Done (dispatch PWA)
Field Service App Done (/t/{token} mobile)
Billing & Revenue ERPNext (basic)
Customer Portal Not built
Online Checkout Not built
Network Monitoring Oktopus CE + OLT SNMP
Workflow Builder n8n

Avantages Gigafibre vs Gaiia

  • Self-hosted / souverain (pas de frais par abonné)
  • Full ERP (accounting, HR, inventory inclus)
  • Dispatch board avancé (lasso, undo, auto-dispatch, route optimization)
  • Open source — offrable à d'autres ISPs

Gaps à combler (vs Gaiia)

  • Customer portal self-service
  • Online checkout (Gaiia rapporte 6x conversion)
  • Billing proration (mid-cycle changes)
  • Auto travel time on dispatch

Industrie — Matrice comparative

Feature Gaiia Odoo FS Zuper Salesforce FS Gigafibre
Target ISP-specific General Telecom Enterprise ISP custom
Self-hosted No Yes No No Yes
Pricing Per-subscriber $30/user $50/user $200/user Free (OSS)
Dispatch drag-drop Yes Yes Yes Yes Yes
GPS real-time Yes Limited Yes Yes Yes (WS)
Equipment tracking Yes Yes Yes Yes Yes
Customer portal Yes Yes Yes Yes Not yet
Online checkout Yes No No No Not yet

Document vivant — dernière mise à jour : 12 avril 2026