Workspace
- type (8 types d’espace)
- members{uid: role}
- subscription
- onboarding
- 1—n Property
- 1—n Tenant
- 1—n ActionCard
Gestion locative assistée par IA pour propriétaires belges : baux, quittances, interventions, prestataires et calculateurs de rentabilité.
Un bailleur belge reçoit son travail de partout : e-mails de locataires, messages WhatsApp, mouvements bancaires, échéances de bail, indexations et obligations légales qui changent selon la région. C’est à lui d’aller chercher ce qu’il doit faire. Proporio part du principe inverse : le bailleur ne devrait jamais avoir à chercher le travail.
Donner aux propriétaires un cockpit unique là où cohabitaient tableurs, e-mails et courriers.
Chaque entrée — un e-mail, un message, un paiement, une échéance — devient une carte d’action dans un fil unique, le Cockpit. Un modèle de langage classe le message, retrouve le bien et le bail concernés et rédige l’action ; le bailleur relit, corrige si besoin et valide. Le produit est multi-espaces : bailleur, locataire, prestataire, syndic et agence ont chacun le leur, et les données passent d’un espace à l’autre par projection, jamais par des droits croisés.
En production depuis juin 2026, en quatre langues, avec 96 scénarios de cartes, 17 exécuteurs d’effets, un rapprochement bancaire en open banking et un assistant qui dispose de 63 outils. Le droit belge est modélisé : 14 types de bail, règles par région, indexation sur l’indice santé.
CTO
Utilisateurs
Application
Services externes
Un e-mail arrive sur l’adresse de l’espace. SendGrid Inbound Parse le transmet à une fonction HTTP protégée par un secret de chemin et une liste d’adresses autorisées.
Le message est enregistré ; un trigger Firestore lance la classification en deux niveaux — domaine, puis sous-type — via la passerelle OpenRouter.
L’expéditeur est identifié, le bien et le bail sont retrouvés, et le registre de scénarios choisit le traitement le plus adapté.
Le résumé est traduit en quatre langues, une réponse est rédigée, et la carte rejoint le Cockpit, en attente ou planifiée.
Le bailleur édite et valide. Le registre d’exécuteurs applique chaque effet : réponse, intervention, rappel de paiement…
Toutes les cinq minutes, les brouillons planifiés partent par SendGrid ; chaque action laisse une trace d’audit.
Les entités principales, leurs champs clés et leurs relations.
96 scénarios et 17 exécuteurs d’effets ; un balayage quotidien fait remonter les échéances.
Création guidée ou import par IA, indexation sur l’indice santé, état des lieux, résiliation.
Correspondance automatique au-delà d’une confiance de 0,9 ; en dessous, une carte de revue.
Réparations, entretiens, devis et prestataires.
Locataire (PWA), prestataire, syndic avec assemblées générales, agence avec CRM et mandats.
63 outils ; ceux qui modifient des données demandent une confirmation explicite.
ProblèmeChaque fonction chargeait tout le bundle, environ 243 Mio en mémoire : plus de 500 requêtes ont été coupées par la limite de 256 Mio.
SolutionPlancher mémoire global à 512 Mio, documenté à l’endroit où les fonctions sont exportées.
ProblèmeLes triggers Gen2 sont livrés « au moins une fois » : une demande de réparation créait parfois deux interventions.
SolutionIdentifiant de carte dérivé de l’identifiant d’événement, et create() au lieu de set() : le second passage échoue proprement.
ProblèmeLes clés d’idempotence étaient calculées en jour UTC alors que les crons tournent à l’heure de Bruxelles.
SolutionCalcul de la date en Europe/Brussels avec Intl.DateTimeFormat, tests sur les changements d’heure.
ProblèmeLe rechargement d’une liste écrasait une modification locale pas encore confirmée par Firestore.
SolutionSuivi des écritures en attente avec une durée de vie de 30 secondes.
ProblèmeLa liste d’adresses autorisées de SendGrid ne faisait que journaliser les appels inconnus.
SolutionAprès six mois de journaux sans faux positif, les appels inconnus sont rejetés (403).
Relevé dans le code source et l’historique Git du projet le 8 octobre 2026. Aucun chiffre d’usage ou de revenu n’est publié.
Disponible pour missions PHP / Laravel / WordPress / Silverstripe en Belgique et remote EU.