| Description | Qté | PU HT | Total HT | Marge | |
|---|---|---|---|---|---|
| Aucune borne ajoutée. Cliquez sur une borne dans le catalogue ci-dessous. | |||||
| Sous-total Bornes | 0,00 € | ||||
| Description | Qté | PU HT | Total HT | Marge | |
|---|---|---|---|---|---|
| Aucun élément d'installation ajouté. | |||||
| Sous-total Installation | 0,00 € | ||||
| Description | Qté | PU HT | Total HT | Marge | |
|---|---|---|---|---|---|
| Aucune option ajoutée. | |||||
| Sous-total Options | 0,00 € | ||||
Devis triés par numéro.
| Client | Nb devis | CA HT total | Marge moy. | Signés |
|---|
| N° Devis | Ver. | Date | Client | Deviseur | CA HT | Marge € | Marge % | Remise | Statut |
|---|
Génère une offre commerciale structurée pour les flottes : matériel + ZMS + bonus selon cadence d'installation.
Sélectionnez 1 ou plusieurs packages full validés Fleet. L'offre comparera/proposera tous les packs cochés. Mode d'installation (mono/tétra) hérité de la section 1.
Pricer IRVE Belgique — étude rentabilité projet d'infrastructure de recharge.
| Image | Marque / Modèle | Catégorie | Prix achat HT | Prix vente HT | Marge | Actions |
|---|
| Description | Catégorie | Prix HT | Unité | Contenu inclus | Actions |
|---|
Toute la gestion des clients/partenaires est désormais centralisée dans le module 🤝 Clients (accessible en 1ère position de la topbar, après l'Accueil).
Vue 360° par client : Identité · Config déviseur · Commercial · Devis · Projets · Documents. Édition inline. Fusion intra-zebdev. Boîte à traiter des orphelins.
| Avatar | Nom | Téléphone | Pipedrive | Dernière connexion | Droits admin | Actions |
|---|
Scan le catalogue (bornes, articles, packs, abonnements) et remplit automatiquement les libellés NL et EN manquants via l'API Claude Haiku. Sûr — n'écrase aucune traduction existante. Coût ~0,01 € pour 200 libellés.
Limite : 200 traductions par appel (~30s). Relancez si davantage de libellés à traiter.
Les CGV sont incluses automatiquement dans le devis PDF selon la langue sélectionnée. Collez le texte ou importez un fichier .txt pour chaque langue.
Pilote la quantité de messages affichés dans la console du navigateur (DevTools). Par défaut Warnings & erreurs : la console reste silencieuse en usage normal et tu ne vois que les vrais problèmes. Passe en Debug pour diagnostiquer un bug ou voir le détail des modules au chargement.
zlog.setLevel('debug') ou zlog.setLevel('warn') font la même chose. Le réglage est conservé (localStorage).
Templates de permissions assignables aux membres de l'équipe. Les rôles système sont fournis par défaut et seuls leurs permissions sont modifiables. Les rôles custom sont pleinement éditables et supprimables.
| Type | Nom | Description | Permissions | Membres | Actions |
|---|
Ces notes apparaissent sur tous les devis PDF, en bas, dans la section Remarques & Conditions. Renseignez les 3 langues pour les devis multilingues.
💡 Pour les notes spécifiques à un partenaire : ouvrez la fiche partenaire (Admin → Partenaires → modifier) → onglet Notes.
Les backups préservent vos produits, partenaires, équipe et paramètres.
Les devis ne sont jamais inclus — ils peuvent être purgés séparément.
Un backup automatique est créé chaque jour à la première connexion du dossier.
Les 15 backups les plus récents sont conservés dans data/backups/.
DEVISEURS ZEborne / data / backups /
Convertit les images stockées en base64 dans la base de données (articles, logos partenaires, logo ZEborne)
en vrais fichiers .jpg / .png dans data - pas toucher / Images /.
Les nouvelles images uploadées sont déjà sauvegardées directement en fichier.
OneDrive crée parfois des copies de conflit quand plusieurs machines écrivent simultanément
dans data - pas toucher : admin_log-NOM-PC.json, db-NOM-PC.json…
Cette action fusionne les entrées de journal manquantes dans admin_log.json
et supprime les doublons (admin_log-*.json + db-*.json).
db.json reste la source de vérité et n'est pas modifié.
| Date / Heure | Utilisateur | Catégorie | Action | Détail |
|---|---|---|---|---|
| Aucune entrée pour l'instant. | ||||
| Devis N° | Client | Destinataire | Envoyé le | Statut DocuSign | Signé le | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
| Heure | Opération | Via | Méthode | HTTP | Réponse (champs clés) |
|---|---|---|---|---|---|
| Aucun appel API enregistré dans cette session. | |||||
Persistant — survit au rechargement de la page. Max 200 entrées par service. Tokens masqués.
| Date / Heure | Type | Méthode | Opération / URL | HTTP | Durée | Détail / Erreur |
|---|---|---|---|---|---|---|
| Aucun appel API enregistré. | ||||||
| Type | ID | 🇫🇷 Français | 🇳🇱 Nederlands | 🇬🇧 English | Statut | Actions |
|---|
| Type | Libellé | Unité | Prix achat (€) | Prix vente (€) | Marge | Actions |
|---|
Gestion centralisée des credentials des intégrations externes : Pipedrive, DocuSign, Aircall, SharePoint (cards d'origine v1.17.23) + Backblaze B2, Anthropic, GitHub Actions, Hetzner Cloud, OVH DNS (ajoutés en v1.21.0).
Les valeurs sensibles sont chiffrées côté serveur (AES-GCM) avant stockage.
Plus besoin d'éditer le .env côté VPS pour ces clés.
Token maître = fallback partagé pour les comptes sans token personnel. Token personnel = clé liée à votre TeamMember (priorité sur le token maître). Récupérer un token : Pipedrive → Paramètres personnels → API.
Clés API des champs custom Pipedrive utilisés par les automations DocuSign / DS Poll. Récupération : Pipedrive → Paramètres → Champs de données → Affaires → bouton « Copier la clé API ». Tous les champs sont optionnels — une clé vide désactive l'automation correspondante.
DocuSign Admin → Apps and Keys → choisir « JWT Grant », générer une clé RSA et noter Integration Key, Account ID (UUID), User ID (UUID). La clé privée RSA est stockée chiffrée.
Aircall Dashboard → Intégrations → API Keys (paire API ID / API Token). Le webhook signé (token de signature) est généré automatiquement par « Installer le webhook » via l'API Aircall.
URL d'écoute :
…
— auth par token-in-body + IP whitelist.
API https://geo-api.bump.eu (marque blanche Telefleet) — Basic Auth username + password. Tracking flotte technicien tenant BE only au démarrage. Whitelist par défaut : groupe 37308 (Team Zeborne) + type 21 (véhicules nommés). Aucune unit non-whitelistée ne quitte la lib serveur.
37308 = Team Zeborne uniquement. Cliquer « Lister les groupes BUMP » pour voir les IDs disponibles.
21 = véhicules nommés uniquement. 1 = devices nus (IMEI seul), exclus par défaut.
L'API Key est distincte des Basic Auth ci-dessus. Génère-la sur
fleet.bump.eu/new/
→ Paramètres → Clés API. Permissions à donner :
unit, unit_data, alert, customlayers, customlayers_geometries, unit_groups.
Sans cette clé, les phases P4 (historique replay), P5 (alertes), B (géofences) ne sont pas disponibles.
API https://unified.iel-services.fr/v1/ — sync polling J±30j, BE uniquement (le tenant FR n'a pas accès à cette API). Auth par x-api-key chiffré AES-GCM. La sync auto remplace progressivement l'import XML manuel ; les heures arrivée/départ, secteur, région et délai SLA ne sont pas exposés par l'API et restent à enrichir via XML manuel le cas échéant.
Bucket S3-compatible utilisé par scripts/backup-db.sh pour les pg_dump quotidiens. Récupérer les credentials sur backblaze.com → My Account → Application Keys → Add a New Application Key. Le bash continue à lire .env en priorité ; la valeur en DB sert de fallback si .env est vide.
Utilisé par /api/admin/auto-translate (catalogue NL/EN via Claude Haiku) ET module 📚 Bibliothèque P4 Q&A IA (Claude 3.5 Haiku). Récupérer une clé sur console.anthropic.com → Settings → API Keys.
Utilisé par le module 📚 Bibliothèque (P4 RAG) pour calculer les embeddings voyage-3 (1024 dims, 0.06 $/M tokens). Récupérer une clé sur dash.voyageai.com → API Keys (200M tokens gratuits puis pay-as-you-go).
Probe le statut du dernier workflow run du repo. Sans token → API publique limitée à 60 req/h/IP. Avec token → 5000 req/h.
Créer un Fine-grained PAT : github.com → Settings → Developer settings → Personal access tokens → Fine-grained → New token, scope Actions: Read-only + Metadata: Read-only sur le repo.
Probe optionnelle pour vérifier que l'API Hetzner répond (utile si on automatise un jour des actions infra). Créer un token : console.hetzner.cloud → Project zebdev → Security → API Tokens → Generate. Read-only suffit.
Pas de creds OVH — on vérifie juste que la zone DNS résout vers l'IP attendue. Si tu changes d'IP serveur (rare), mets à jour ici.
OAuth 2 vers horusapi.myfiduciary.com. Permet d'importer dans le Reporting : clôture comptable, balance âgée clients (recouvrement), historique bancaire (finance) — sans uploader de fichiers. Nécessite une intégration créée côté Horus (developer@horus-software.be) avec les client_id / client_secret.
1) Clique « Ouvrir Horus pour autoriser » → tu seras redirigé sur Horus pour te connecter.
2) Après acceptation, ton browser revient sur http://localhost:8000/callback?code=…&state=… avec une page d'erreur (normal — pas de serveur local).
3) Copie l'URL complète de la barre d'adresse → colle-la ci-dessous → clique « Valider l'autorisation ».
Configure une fois les journaux bancaires (Finance) et comptes (Clôture) à utiliser. Ensuite dans le Reporting, les boutons « 🧮 Importer depuis Horus » utilisent ces valeurs sans rien demander à chaque clic.
Liste séparée par virgule. Exemple : 60,70 (préfixes charges + produits) ou 700000,710000,720000 (comptes exacts). Les filtres Horus utilisent le « starts with ».
⚠ Section entièrement isolée du flow Horus prod — token de test, folder de test, payloads non-destructifs (FK = UUID nul, garantit échec lookup côté Horus). Aucune donnée créée. Conforme blueprint Horus v3.2.0.
Lance un OAuth séparé du flow prod. Les tokens sont stockés sous horus_test_* (chiffrés) et n'influencent aucun import (Clôture / Recouvrement / Finance). Cliquer Ouvrir → s'authentifier sur Horus avec le compte SANDBOX → coller l'URL ramenée.
⚠ DANGER — crée de vraies données dans le folder sélectionné. À lancer UNIQUEMENT sur un folder de démo (ex : DEMOIBT). Crée 1 société test taggée ZEBORNE_API_TEST_<ts> + 5 écritures comptables non-confirmées (Confirmed:false, donc supprimables via Horus). Montants minuscules (1€). Auto-recherche des daybooks (Sales / Purchases / Bank / Financial / OD) du folder.
aimobee.com
Tous les mails transactionnels (magic-link team, reset password, dépôt PDF SharePoint via Power Automate) partent du VPS via le relais SMTP Brevo. Aimobee.com est authentifié SPF + DKIM (brevo1/brevo2) + DMARC.
Identifiants stockés côté VPS dans .env (jamais en DB) — ne pas les copier ici.
————kind=test. Pour valider la déliverabilité, envoyer à une adresse mail-tester.com et viser 9.5/10.
ssh zebdev@46.224.201.102~/zebdev/.env et mettre à jour : SMTP_HOST=smtp-relay.brevo.com SMTP_PORT=587 SMTP_SECURE=false SMTP_USER=<login Brevo> SMTP_PASSWORD=<master password> MAIL_FROM="ZEborne <noreply@aimobee.com>"pm2 restart zebdevEmailLog)
Snapshot temps réel du VPS de prod (auto-refresh 10 sec quand l'onglet est ouvert). GET /api/admin/server/health agrège os, df, /proc/meminfo et pm2 jlist. Permission requise : settings (admin).
Chaque fichier xlsx ou XML importé via les modules Reporting est archivé sur le serveur. Vous pouvez ici télécharger l'original, restaurer (re-parser) un import perdu, ou supprimer ceux qui ne servent plus. Si la liste reste vide alors que des imports ont été faits, cliquez sur 🧪 Test archivage pour identifier où la chaîne casse (auth, tenant, permission, route, disque).
Affiche un bandeau sticky en haut de page chez les utilisateurs ciblés (réutilise le pattern du bandeau Pipedrive token). 3 niveaux : info, warning, critical (non dismissable). Ciblage : tous / par rôle (permission) / par utilisateur. Fenêtre temporelle optionnelle.
Centralise tous les jobs schedules (anciennement epars : crontab Linux pour backup-db.sh, sync manuelles Pipedrive/Aircall, etc.). Les 5 jobs par defaut sont crees au boot du serveur — DESACTIVES par defaut. Active-les un par un apres avoir verifie la config (Cles API). GET /api/admin/jobs — permission requise : settings.
Base de données officielle des entreprises belges (publiée mensuellement par le SPF Économie). Utilisée pour valider les numéros BCE/TVA et enrichir les fiches clients depuis le module 🤝 Clients. Télécharger le ZIP « KboOpenData_xxxx_YYYY_MM_DD_Full.zip » puis le déposer ci-dessous.
Module 📦 Stock — P1 référentiel logistique. Déclarez vos dépôts physiques (BE-HQ, FR-LYON…),
les camionnettes (type van) qui seront associées aux techniciens via la modale Équipe,
ainsi que les emplacements temporaires (chantiers site) et virtuels (en transit, à vérifier).
| Code | Nom | Type | Adresse | Défaut | Actif | Actions |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
Référentiel des intervenants terrain. Distincts des membres équipe (qui ont accès web zebdev). Permet d'associer un van (workflow ticket missionnement), un ID D4 (auto-matching à la sync IEL), un compte web minimal (consultation planning), et de gérer les blocs (congés, formation, indisponibilité).
| Nom | ID D4 | Van | Statut | Téléphone | Blocs à venir | Actions | ||
|---|---|---|---|---|---|---|---|---|
| Chargement… | ||||||||
Devis dont l'orgId est null (devis non rattachés à une CrmOrganization). Vestige
historique post-P3 Drop Client (v1.66.72). Pour chaque devis : choisis un client cible dans le
sélecteur, clique 🔗 Lier pour rattacher. Préservation absolue : un devis déjà
lié ne sera jamais écrasé par cette interface (HTTP 409).
| Réf devis | Statut | Titre / Slug | Montant | Mis à jour | Lier à un client | Action |
|---|---|---|---|---|---|---|
| Chargement… | ||||||
Référentiel fournisseurs pour les demandes d'achat (PR) et bons de commande (PO).
Un fournisseur peut être lié à un tiers CrmOrganization (champ orgPdId) pour partager les coordonnées.
| Code | Nom | Téléphone | TVA | Paiement (j) | Actif | Actions | |
|---|---|---|---|---|---|---|---|
| Chargement… | |||||||