📊 Tableau de bord i
📡 Supervision des liens i
Toutes les installations i
Clients i
🎫 Tickets v2.6i
Tâches i
Interventions i
💰 Notes de frais i
📦 Catalogue produits & services i
🔒 Consultation seule — seul un administrateur peut modifier le catalogue.
| Réf. | Désignation | Catégorie | Type | Niveau | Prix HT | Unité | Stock | Statut | Actions |
|---|
📊 Stock en temps réel i
| Réf. | Désignation | Stock | Seuil alerte | État |
|---|
📚 Base de connaissances i
🚀 Test de débit internet i
Pour faire tester un client à distance, utilisez plutôt le bouton « 🚀 Test de débit » directement dans le ticket : un lien lui sera envoyé par email.
🧾 Devis i
| N° | Date | Client | Catégorie | Ponctuel HT | Abo. HT / mois | Installation | Statut | Actions |
|---|
📱 SMS : évitez les accents (segments). Restez concis (≈160 caractères = 1 SMS).
⚖️ Un lien de désinscription est ajouté automatiquement à chaque email (obligatoire). Insérez {desinscription} pour le placer vous-même.
Destinataires
Importez vos listes de contacts au format Excel (.xlsx) pour vos campagnes. Téléchargez d'abord le fichier exemple, remplissez-le, puis importez-le.
| Entreprise | Contact | Téléphone | Ville | Statut | Actions |
|---|
Créez autant de modèles que nécessaire (email ou SMS), réutilisables dans vos campagnes.
| Nom | Type | Sujet / Aperçu | Actions |
|---|
| Date | Campagne | Canal | Dest. | Emails ✓/✗ | Ouv. / Clics | SMS ✓/✗ |
|---|
| Identifiant | Canal | Date | Source | Action |
|---|
🧠 Tri intelligent
L’IA lit les en-têtes des mails affichés (expéditeur, objet, date — jamais le contenu) et pré-coche ceux qui semblent supprimables. Rien n’est supprimé automatiquement : tu valides ensuite à la main.
✏️ Nouveau message
💡 Écrivez vos consignes directement dans le message (ex. « relance du devis, proposer un RDV mardi »), puis cliquez ✨ Rédiger avec l'IA : votre texte sera transformé en e-mail complet.
✍️ Votre signature est ajoutée automatiquement à l'envoi.
⚙️ Réglages de la messagerie
🔒 Le mot de passe de la boîte reste géré sur le serveur, pour la sécurité. Un champ laissé vide reprend la valeur du serveur ou le défaut IONOS.
Mise en forme riche (gras, liens, logo). Le bouton </> HTML permet de coller/éditer le code HTML directement. Ajoutée automatiquement en bas de vos messages.
📇 Carnet d'adresses
Prestataires informatiques, photocopieurs, partenaires techniques… Ces contacts sont proposés comme destinataires ou en copie lors du transfert d'un ticket, et en copie à la création d'un ticket. Les catégories se paramètrent dans Configuration → Listes.
⏳ Chargement…
| Date | Parrain | Filleul | Coordonnées | Contexte | Statut | Réduction | Actions |
|---|
| Nom | 📱 Téléphone | Rôle | 🎫 Tickets | 🎯 Compétences | Actions |
|---|
🔄 Mise à jour de l'application
Met à jour le code de l'application (index.html, relais PHP) depuis le serveur de mise à jour. Votre configuration et vos données ne sont jamais modifiées ; les fichiers actuels sont sauvegardés avant remplacement.
📦 Versions disponibles
🗄️ Migrations SQL à appliquer
À exécuter dans Supabase → SQL Editor après la mise à jour (les migrations sont idempotentes).
⚙️ Réglages du serveur de mise à jour
En cas de problème après une mise à jour :
📞 CDR — types à importer
État des services
⏳ vérification…systemctl enable --now cron puis crontab -l pour vérifier les lignes planifiées. En attendant, le bouton ▶ relance la relève des tickets à la demande.Chargement…
🖥️ Serveur — état du VPS
Chargement des métriques…
🧩 Services & santé
Chargement…
🩺 Détail identifiant par identifiant : Configuration › Connexions › « Tester toutes les connexions ».
💾 Sauvegarde & restauration
Sauvegarde complète (base Supabase + fichiers), chiffrée (GPG AES-256) et conservée sur le serveur. Ta configuration et tes données ne sont jamais modifiées.
🗂️ Sauvegardes locales
⚙️ Réglages de sauvegarde
Les sauvegardes sont conservées sur le serveur (nombre de copies réglable ci-dessus) et téléchargeables depuis la liste. La sauvegarde automatique (cron nocturne) et la restauration sont décrites dans le guide d'installation.
📊 Scalabilité
Purge l'historique ancien par ancienneté : supprime les enregistrements antérieurs à la date choisie (tickets, interventions, événements de supervision). Réservé à l'administrateur.
Les clients et les rapports ne sont jamais purgés.
Chargement…
⚠️ Purge irréversible. Chaque purge lance d'abord une sauvegarde complète (base + fichiers, chiffrée et poussée sur le NAS), puis supprime définitivement les enregistrements antérieurs à la date choisie.
🗄️ Supabase
Connexion de l'application. La clé anon est publique (elle respecte les politiques RLS) — ce n'est pas un secret. La clé sensible (service_role) se règle plus bas, dans « Connexions serveur PHP ».
🔒 Sécurité — Déconnexion automatique
Déconnecte automatiquement l'utilisateur après une période d'inactivité (politique appliquée à tous les comptes). Par défaut 30 minutes · 0 = jamais (la session reste ouverte).
📱 Applications installées (PWA / Android) : connexion illimitée — cette politique ne s'y applique pas, la session ne se ferme jamais d'elle-même.
🖥️ Serveur PHP — Identifiants des relais (mail / SMS / monitor / recap) i
Centralise tous les identifiants utilisés par mail.php, sms.php et monitor.php. Les valeurs sont stockées dans la base Supabase (table relay_config, réservée au serveur — jamais lisible depuis le navigateur). Aucun secret à saisir : votre session administrateur suffit. À la première connexion après mise à jour, l'ancien relay-config.json du serveur est migré automatiquement vers la base.
🔓 Le « secret admin » n'existe plus : l'accès est protégé par votre session (compte administrateur). Plus rien à copier-coller ni à noter.
💡 Les champs sensibles affichent ••••••••XXXX (4 derniers caractères) : laissez tels quels si vous ne souhaitez pas les modifier, sinon collez la nouvelle valeur en entier.
📨 SMTP IONOS — utilisé en PRIORITÉ par mail.php (Brevo en fallback si échec)
ℹ️ Quand SMTP est activé, mail.php essaie d'abord l'envoi via votre boîte IONOS. Si l'envoi échoue (auth, réseau, etc.), il bascule automatiquement vers Brevo. Aucun quota IONOS sur SMTP authentifié.
🗄️ Supabase — utilisé par monitor.php (cron) et cal.php (synchro agenda iPhone)
⚠️ Obligatoire si vous utilisez la synchro agenda téléphone, la supervision ou les récapitulatifs.
🌐 Supervision — utilisé par monitor.php
📊 Récapitulatif mensuel
📥 IMAP entrant — utilisé par ticket-imap-poll.php (création automatique de tickets depuis les emails)
Lit la boîte mail toutes les minutes (via cron sur votre VPS) et crée/met à jour les tickets automatiquement. Pré-requis : extension PHP-IMAP installée (sudo apt install php-imap).
📡 FTP CDR — récupération automatique (utilisé par cdr-ftp.php)
Accès FTP où sont déposés les CDR. Rubix → VoIP · UNYC → mobiles. Alimenté par les boutons d'import de l'app de facturation.
📧 Brevo — clé API email (mail.php / monitor.php)
📱 Capitole Mobile — clé API SMS (sms.php)
🗺 Google Maps — clé API (distance.php)
Activez les API Distance Matrix API sur Google Cloud Console, créez une clé API, puis collez-la ici.
📤 B2Brouter — clé API facturation électronique (b2brouter.php)
Identifiants de l'API B2Brouter (Plateforme Agréée / PDP). Commencez en staging. Couvre le B2B (DGFiP) et Chorus Pro (B2G) — voir developer.b2brouter.net.
🇫🇷 SUPER PDP — facturation électronique (superpdp.php)
Plateforme Agréée française, alternative à B2Brouter. Authentification OAuth2 : crée une application sur ton compte SUPER PDP (commence en bac à sable) pour obtenir client_id et client_secret. Le XML Factur-X est généré côté serveur par cbtel-chorus/ et déposé via l'API. Voir superpdp.tech/documentation.
🇫🇷 SEQINO — API PDP (seqino.php)
Plateforme de Dématérialisation Partenaire (groupe Crédit Mutuel). Authentification par jeton API (portail développeur Seqino) + identifiant client PDP. URL par défaut = bac à sable ; l'URL de production sera fournie avec la clé définitive.
Saisis les identifiants, Enregistre via la barre « 🔐 Accès serveur » plus haut, puis teste : le relais lit les identifiants côté serveur (relay-config.json). Le secret s'affiche masqué après enregistrement.
🌴 Congés (paramètres administrateur)
Réglages de la gestion des congés. Les collaborateurs déposent leurs demandes depuis le menu « 🌴 Congés ».
Les jours fériés exclus du décompte sont ceux saisis dans Configuration › Support › Tickets › horaires d'ouverture.
🚗 Notes de frais (paramètres administrateur)
Réglages des notes de frais. Les collaborateurs saisissent leurs déplacements et frais depuis le menu « 🚗 Notes de frais ». Une note récapitulative par mois et par collaborateur.
Ajoutez d'abord au moins une agence.
Le barème kilométrique et les véhicules se règlent via la gestion des véhicules du module Notes de frais.
📊 Barème kilométrique (officiel — lecture seule)
Barème fiscal voitures appliqué automatiquement au calcul des indemnités. Le tarif dépend de la puissance fiscale (CV — case P.6 de la carte grise) et de la distance cumulée sur l'année. d = distance parcourue dans l'année à titre professionnel. Majoration de +20 % pour les véhicules 100 % électriques.
Barème en vigueur pour les revenus 2025 (déclaration 2026), inchangé depuis les revenus 2022. Le cumul annuel est compté par véhicule.
🏢 Coordonnées de l'entreprise (mentions légales des devis)
Ces informations s'impriment automatiquement en en-tête et pied de chaque devis.
🎨 Identité visuelle (logo, favicon — marque blanche)
Le logo s'affiche sur l'écran de connexion, l'en-tête de l'application et les factures. L'import convertit l'image en base64 (conservée lors des mises à jour). Pour les emails, renseignez une URL hébergée (le base64 ne s'affiche pas dans les emails).
🌐 URL publique de l'application
URL utilisée dans les emails envoyés (lien de signature à distance, rapport client…). Laissez vide pour utiliser l'URL détectée automatiquement par le navigateur.
URL actuellement détectée :
🔒 Domaine & certificat SSL (Let's Encrypt)
Étape 1. Pointez votre domaine vers ce serveur (DNS A record chez IONOS / OVH).
Étape 2. Connectez-vous en SSH à votre serveur et lancez les commandes ci-dessous (LAMP / Apache + Ubuntu/Debian) :
Renouvellement : automatique tous les 60 jours, rien à faire après l'installation initiale.
Plus d'aide : letsencrypt.org · certbot.eff.org
📑 Modèles de contrat
Les modèles servent à générer les contrats (télécom et informatique) joints au parcours de signature du devis. La structure de chaque modèle est libre ici, mais les champs entre {{doubles_accolades}} sont remplis automatiquement à la génération : ne modifiez pas leur orthographe. Seuls les modèles actifs sont proposés à la génération.
Chargement…
🧾 Paramètres des devis
Cette durée pré-remplit chaque nouveau devis. Un devis envoyé et non signé passe automatiquement en « Refusé » une fois ce délai dépassé.
🔁 Relances automatiques des devis
Relance par email les devis envoyés non signés, avec le lien de signature. S'arrête dès que le devis est signé, refusé ou expiré — chaque relance ne part qu'une seule fois. Modèles personnalisables dans l'onglet Modèles (Relance devis 1/2/3).
🏷️ Titres de devis
Ces titres alimentent la liste déroulante « Titre / objet » de l'éditeur de devis.
📜 Conditions Générales (CGV / CGP)
Ces textes sont présentés au client lors de la signature du devis : il doit cocher « J'ai lu et j'accepte » avant de pouvoir signer. La date d'acceptation est conservée dans la fiche client (onglet CGV/CGP).
🏦 Mandat de prélèvement SEPA
Ces informations alimentent la page « Mandat de prélèvement SEPA » ajoutée au devis lorsque la case « Joindre un mandat de prélèvement SEPA » est cochée dans l'éditeur de devis. Le client complétera lui-même ses coordonnées de payeur et son IBAN/BIC.
🛠 Taux horaires des interventions
Main-d'œuvre des interventions « soumises à facturation » — facture individuelle générée en brouillon à la clôture (F-TEL ou F-INFO selon le type).
💶 Modèle de facture (impression PDF)
Ces réglages alimentent le PDF généré dans le module Facturation. Les coordonnées (raison sociale, adresse, SIRET, TVA intra…) proviennent de l'onglet 🏢 Entreprise ; ici on règle la présentation propre à la facture.
🔢 Numérotation automatique
Format des numéros attribués automatiquement aux installations, interventions et tâches : préfixe + (année) + compteur. Le compteur repart à 1 chaque année et suit les numéros déjà créés. Pour les installations, le numéro reste modifiable à la saisie.
🔔 Notifications programmées
Envoyées automatiquement selon la date d'installation. Avec la planification Supabase activée, l'envoi a lieu même application fermée (sinon, à la prochaine ouverture).
📄 Rapport récapitulatif mensuel
À la date choisie chaque mois, un PDF récapitulatif des installations est envoyé automatiquement (à l'ouverture de l'application ce jour-là ou après) à l'adresse indiquée.
📋 Modèles de titres de tâches
Liste de titres préenregistrés disponibles dans le menu déroulant lors de la création d'une tâche.
🔧 Natures d'intervention
Liste des natures d'intervention disponibles dans le module Interventions d'une installation.
🌐 Opérateurs d'infrastructure
Liste des opérateurs proposés lors de l'ajout d'un lien internet dans la Supervision.
📇 Catégories de prestataires
Catégories proposées dans la fiche d'un contact externe (Relations clients → Prestataires).
🤝 Types de rendez-vous
Proposés dans le champ Objet de la fiche de rendez-vous ; la durée par défaut s'applique automatiquement (et reste modifiable dans la fiche).
🎫 Catégories de tickets — routing automatique par l'IA
L'IA classe automatiquement chaque nouveau ticket dans l'une de ces catégories. Pour chacune, vous définissez le technicien par défaut qui recevra ces tickets (cascade : référent si critique → tech dédié client → tech catégorie → load balancing).
✋ Motifs de refus de devis
Quand un client refuse un devis depuis le lien de signature, il choisit l'un de ces motifs.
📊 Plage du compteur « devis signés »
Définit la période affichée par le compteur en haut de la page Devis. Par défaut : janvier → décembre (année civile). Si le mois de début est après le mois de fin (ex. avril → mars), la période est à cheval sur deux années (année fiscale).
📅 Calendriers iCal — synchronisation iPhone / Android
Chaque utilisateur dispose d'une URL personnelle qui expose son propre agenda (étapes d'installation, tâches, interventions assignées). Les administrateurs reçoivent un calendrier général qui agrège tous les événements.
🔕 Notifications push — heures de silence
En dehors de la plage d'envoi (nuit, week-end, jours fériés français), les notifications push ne sont pas envoyées. Elles sont mises de côté et un résumé unique part à la reprise. Les jours fériés (y compris Pâques, Ascension, Pentecôte) sont calculés automatiquement.
Enregistré avec le bouton de sauvegarde de cette page. S'applique à tous les utilisateurs et tous les types de notifications push.
🎨 Couleurs des pastilles
Personnalisez la couleur des pastilles de statut et de priorité affichées sur les tickets. Cliquez sur un carré pour ouvrir le sélecteur.
🚨 Référents urgence (priorité critique)
Liste ordonnée : un ticket en priorité critique 🟣 est assigné au premier référent disponible (les suivants sont consultés si le 1er est absent). Si aucun référent n'est dispo, fallback vers le load balancing.
⚖️ Règles d'attribution automatique
« Charge équilibrée » rattrape un déséquilibre existant ; « Tour de rôle » alterne sans tenir compte de la charge.
Un ticket va de préférence à quelqu'un en poste ; si personne ne l'est, le moteur relâche la contrainte pour ne pas bloquer le ticket.
🚫 Emails bloqués
Les tickets envoyés depuis ces adresses email (via le portail public ou par email entrant) seront silencieusement rejetés. Vous pouvez bloquer un email exact (spam@exemple.fr) ou un domaine entier (@spam.com).
✅ Whitelist & modération du support email
Contrôlez qui peut créer un ticket en envoyant un email à votre boîte support (support@cbtel.fr).
Expéditeurs autorisés (whitelist)
Email exact (carine@client.fr) ou domaine entier (@client.fr pour couvrir toute la boîte). En mode strict, ces expéditeurs et les contacts des fiches clients (principal, technique, administratif, 🎟 support) créent un ticket sans modération ; les autres vont en modération.
📧 Email entrant (boîte support)
Création automatique de tickets à partir des emails reçus sur votre boîte support. Le polling IMAP (configuré dans Configuration → 🔌 Connexions → 🔒 Identifiants serveur PHP → 📥 IMAP) lit les nouveaux messages et crée un ticket pour chacun. Si l'objet contient un numéro de ticket existant (#TKT-2026-001), le message est ajouté en réponse au lieu de créer un nouveau ticket.
Cette adresse apparaît dans les templates email (variable {support_email}) et dans la signature des accusés de réception envoyés aux clients.
📧 Templates email par statut
À chaque changement de statut d'un ticket, l'email correspondant est envoyé automatiquement aux contacts opt-in du client. Variables disponibles : {ticket_num} {ticket_titre} {ticket_description} {ticket_categorie} {ticket_priorite} {ticket_statut} {client_nom} {assigned_name} {portail_url} {support_email} {date}
support@cbtel.fr par des expéditeurs non whitelistés. Variables disponibles : {from_email}, {from_name}, {subject}, {support_email}, {company_name}, {portail_url}.{lien_portail} devient le bouton d'accès, {liste_emails} la liste des adresses autorisées. S'ils manquent, ils sont ajoutés automatiquement en fin d'email. Utilisé aussi par l'auto-réponse serveur (emails ignorés).
💡 Les templates sont enregistrés via le bouton « 💾 Sauvegarder » du menu Notifications (système global de templates email).
⏱ Auto-clôture des tickets
Délais à partir desquels les tickets sont automatiquement clôturés. La vérification s'exécute côté serveur toutes les heures.
📅 Plage horaire de service
En dehors de ces horaires, le portail client et l'email entrant refusent la création de tickets avec un message d'information. Les tickets créés par les agents en interne ne sont pas concernés.
🌙 Auto-réponse email pour les demandes reçues hors horaires
Quand un email entrant crée un ticket en dehors des horaires d'ouverture, le ticket est marqué 🌙 Hors horaires et un accusé de réception automatique est envoyé au client. Variables disponibles : {ticket_num}, {client_name}, {next_open_time}, {company_name}, {phone}, {ticket_titre}, {support_email}.
🤖 Réponse automatique par IA
Quand un ticket arrive (portail ou email) dans une catégorie autorisée, l'IA Claude rédige et envoie automatiquement une première réponse au client, puis bascule le ticket en « En attente ». L'IA est instruite de ne pas inventer de diagnostic et de passer la main à un technicien si nécessaire.
L'IA signe ses réponses avec ce nom et ce rôle, comme un technicien humain. Le client ne sait pas qu'il s'agit d'une IA ; en interne, l'app garde la trace (badge 🤖 visible uniquement par votre équipe).
⚠️ Zone dangereuse
Effacement de masse : supprime TOUS les tickets de la base ainsi que tous leurs messages et historiques. Cette action est IRRÉVERSIBLE et affecte l'intégralité des utilisateurs. Réservé aux situations exceptionnelles (test, migration, RGPD).
🔐 Droits d'accès
Définissez les fonctions accessibles par rôle (valeurs par défaut), puis ajustez-les par utilisateur si besoin. L'administrateur dispose toujours de tous les droits.
ℹ️ Ces droits pilotent l'affichage de l'application (menus, boutons). La sécurité des données reste assurée côté serveur (Supabase).
Droits par défaut du rôle
Droits spécifiques à un utilisateur
L'utilisateur doit se reconnecter pour que ses nouveaux droits prennent effet.
🧭 Organisation du menu
Personnalisez l'ordre des entrées et leur regroupement. Les changements seront appliqués après « 💾 Sauvegarder la configuration » (bouton global en bas de page).
↑ ↓ pour réordonner · 📂 pour déplacer dans une autre zone · ✏️ pour renommer un sous-menu.
📥 Import / Export (Excel)
Complétez votre base à partir de fichiers Excel (.xlsx). Pour chaque catégorie : téléchargez le fichier exemple, remplissez-le, puis importez-le. Vous pouvez aussi exporter les données déjà présentes.
ℹ️ Les colonnes suivies d'un * sont obligatoires ; respectez les intitulés du fichier exemple. Clients et Supervision partagent un même fichier (deux feuilles) ; le Catalogue reste séparé.
• Catalogue → Type : produit, service, main_oeuvre ou abonnement.
• Supervision → Méthode : port, ping ou http. Colonne Actif : oui / non.
🧨 Zone de purge — suppression définitive
Chaque bouton efface toutes les données de la base correspondante. Action irréversible : exportez d'abord si besoin (boutons « 📤 Exporter » ci-dessus, ou page concernée).
🔒 Réservé à l'administrateur. Un code de confirmation aléatoire est à recopier à chaque suppression.
Effacement total — vide en une seule fois toutes les données métier (clients, installations, devis, tickets, interventions, rapports, tâches, supervision, emailing, parrainages, SEPA, dépenses, catalogue…). Conservés : comptes utilisateurs, configuration société, connexions/secrets, grilles de facturation et modèles.
✍️ Prompts IA ?
Modifie ici tous les prompts qui pilotent l'IA du site. Chaque prompt a une valeur par défaut ; tu peux la personnaliser puis revenir au défaut à tout moment. Conserve les {variables} listées sous chaque champ — elles sont remplacées automatiquement à l'exécution.