Dates critiques des baux : suivez les échéances d'avis de renouvellement et de résiliation avec Power Automate (partie 2)
Dans la partie 1, nous avons créé un flux qui vous avertit lorsqu'un bail arrive à 3, 6, 9, 12 ou 18 mois de son échéance. C'est utile, mais la date d'échéance est rarement celle qui coûte de l'argent à un client. Les dates dangereuses, ce sont les délais d'avis cachés dans le bail.
Un locataire qui détient une option de renouvellement doit habituellement l'exercer par écrit 6, 9 ou 12 mois avant l'échéance. Ratez cette fenêtre d'une seule journée et l'option disparaît : le propriétaire peut relouer le local ou fixer un nouveau loyer. Il en va de même pour les droits de résiliation anticipée, les options d'agrandissement et les révisions de loyer. Chaque courtier connaît l'histoire d'un client qui l'a appris trop tard.
Dans ce guide, nous allons créer un flux Power Automate simple, sans IA, qui lit un tableau des dates critiques dans Excel, calcule le nombre de jours restants avant chaque délai d'avis et vous envoie chaque matin par courriel un sommaire avec code de couleurs de tout ce qui arrive à échéance dans les 90 prochains jours, en commençant par les éléments en retard.

Ce qu'il vous faut
Microsoft 365 avec Excel dans OneDrive Entreprise (ou SharePoint) et Outlook.
Power Automate. Tout ce qui suit utilise des connecteurs standard; aucune licence premium n'est donc nécessaire.
Vos résumés de baux, ou au moins les clauses de dates critiques de chaque bail.
Étape 1 : Créer le tableau des dates critiques dans Excel
Créez un classeur nommé Lease-Critical-Dates.xlsx (ou ajoutez une feuille à votre outil de suivi de la partie 1) avec un tableau nommé CriticalDates et les colonnes suivantes :
Lease ID et Tenant : pour rattacher chaque droit à votre outil de suivi des baux (numéro de bail et locataire).
Property : l'adresse et le local.
Right : le droit visé : option de renouvellement, résiliation anticipée, option d'agrandissement ou révision du loyer.
Event Date : la date à laquelle le droit prend effet, par exemple la date d'échéance du bail pour une option de renouvellement.
Notice (Months) : le nombre de mois avant la date de l'événement où l'avis doit être remis, tel qu'indiqué dans le bail.
Notice Deadline : une formule, pour ne jamais calculer le délai d'avis à la main.
Days Left : une formule qui affiche les jours restants pour quiconque consulte la feuille.
Notice Sent : Yes ou No. Indiquez Yes une fois l'avis remis.
Notes : la clause en langage simple, par exemple « Une option de 5 ans à 95 % du loyer du marché ».
Les deux colonnes de formules sont :
Notice Deadline: =EDATE([@[Event Date]], -[@[Notice (Months)]])
Days Left: =[@[Notice Deadline]] - TODAY()EDATE compte en mois civils et gère correctement les fins de mois : une échéance au 30 juin avec un préavis de 6 mois donne le 30 décembre, et non le 31 décembre. Ajoutez une mise en forme conditionnelle au tableau (rouge pour 7 jours ou moins, orange pour 30, jaune pour 90, en ignorant les lignes où Notice Sent vaut Yes) et la feuille devient à elle seule un tableau de bord.

Un même bail peut compter plusieurs lignes. Dans notre exemple, Northwind Logistics détient à la fois une option de renouvellement et une option d'agrandissement, chacune avec son propre délai d'avis.
Étape 2 : Créer le flux planifié
Dans Power Automate, choisissez Create > Scheduled cloud flow, nommez-le Lease Critical Dates Digest et réglez-le pour qu'il s'exécute tous les jours à 7 h. Ouvrez le déclencheur Recurrence et réglez le fuseau horaire (Time zone) sur le vôtre (nous utilisons l'heure de l'Est), pour que « aujourd'hui » corresponde bien à aujourd'hui là où vous travaillez.
Ajoutez une action Compose nommée Today avec l'expression suivante :
formatDateTime(convertFromUtc(utcNow(),'Eastern Standard Time'),'yyyy-MM-dd')Voici le flux complet :

Étape 3 : Lire le tableau
Ajoutez Excel Online (Business) > List rows present in a table et pointez-le vers votre classeur et le tableau CriticalDates. Sous Advanced parameters, réglez DateTime Format sur ISO 8601. Sinon, les dates Excel sont renvoyées sous forme de numéros de série comme 46291 au lieu de 2026-09-26.

Étape 4 : Calculer les jours restants
Ne vous fiez pas à la colonne Days Left d'Excel. TODAY() ne se recalcule que lorsque quelqu'un ouvre le classeur; le flux fait donc son propre calcul. Ajoutez une action Data Operation > Select nommée Add days left. Associez les colonnes voulues dans le courriel et ajoutez une clé supplémentaire, DaysLeft :
div(sub(ticks(item()?['Notice Deadline']), ticks(outputs('Today'))), 864000000000)ticks() renvoie le nombre d'intervalles de 100 nanosecondes écoulés depuis l'an 1, et une journée en compte 864 000 000 000; le résultat est donc un nombre entier de jours. Il est négatif lorsque le délai est déjà passé.

Étape 5 : Ne garder que les délais importants
Ajoutez une action Filter array nommée Open deadlines sur la sortie de Select, passez en mode avancé et utilisez :
@and(not(equals(item()?['Notice Sent'],'Yes')), lessOrEquals(item()?['DaysLeft'],90))Vous conservez ainsi tout ce qui arrive dans les 90 prochains jours et tout ce qui est en retard sans avoir été traité. Un délai dépassé reste dans le sommaire chaque jour jusqu'à ce que quelqu'un confirme l'envoi de l'avis, ce qui est exactement le rappel insistant que vous voulez.
Ajoutez une deuxième action Filter array nommée Overdue sur la sortie de Open deadlines :
@less(item()?['DaysLeft'],0)Ajoutez ensuite une condition, Anything to report, qui vérifie que length(body('Open_deadlines')) est supérieur à 0. Les jours tranquilles, personne ne reçoit de courriel vide.
Étape 6 : Créer un tableau avec code de couleurs
L'action Create HTML table ne peut pas colorer des lignes individuelles; nous construisons donc les lignes nous-mêmes. Dans la branche True, ajoutez une action Select nommée Digest rows. Réglez From sur les délais ouverts, triés pour afficher les plus urgents en premier :
sort(body('Open_deadlines'),'DaysLeft')Passez le champ Map en mode texte et construisez une ligne HTML par délai. La couleur de la ligne dépend de DaysLeft :
if(less(item()?['DaysLeft'],0),'#f8d7da',if(lessOrEquals(item()?['DaysLeft'],7),'#fbe3e4',if(lessOrEquals(item()?['DaysLeft'],30),'#ffe2b3','#fff4c2')))La première cellule affiche OVERDUE, TODAY ou le nombre de jours restants :
if(less(item()?['DaysLeft'],0),concat('OVERDUE ',string(mul(item()?['DaysLeft'],-1)),'d'),if(equals(item()?['DaysLeft'],0),'TODAY',concat(string(item()?['DaysLeft']),' days')))L'expression Map complète est un concat() d'une balise tr avec cette couleur de fond, puis d'une balise td par colonne : jours restants, délai d'avis, locataire et immeuble, droit, date d'entrée en vigueur et notes. Utilisez formatDateTime(item()?['Notice Deadline'],'MMM d, yyyy') pour les dates, afin qu'elles s'affichent comme « Oct 5, 2026 ».
Étape 7 : Envoyer le sommaire
Ajoutez Office 365 Outlook > Send an email (V2). Dans la vue code du corps (</>), ajoutez une courte introduction, une légende des couleurs, une ligne d'en-tête de tableau, puis toutes les lignes jointes ensemble :
@{join(body('Digest_rows'),'')}Un objet qui indique au courtier l'essentiel sans même ouvrir le courriel :
@{length(body('Open_deadlines'))} lease notice deadlines in the next 90 days@{if(greater(length(body('Overdue')),0),concat(' (',length(body('Overdue')),' overdue)'),'')}Réglez Importance sur High seulement lorsqu'un élément est en retard :
if(greater(length(body('Overdue')),0),'High','Normal')Étape 8 : Tester le flux
Enregistrez le flux et choisissez Test > Manually. Avec nos données d'exemple au 30 septembre, le sommaire listait six délais. L'option de renouvellement de Northwind Logistics était échue depuis 4 jours; elle figurait donc en tête, en rouge. Le droit de résiliation de Brightpath Tutoring arrivait dans 5 jours. Le renouvellement de Lakeshore Fitness n'y figurait pas, car son avis avait déjà été envoyé, et les délais à plus de 90 jours restaient exclus jusqu'à leur tour.
Indiquez Yes dans la colonne Notice Sent d'une ligne, relancez le flux, et cette ligne disparaît.
Des idées pour aller plus loin
Envoyez chaque délai au courtier responsable : ajoutez une colonne Broker Email, puis regroupez les lignes par courtier et envoyez un sommaire à chacun.
Ajoutez un lien vers un « projet d'avis » : conservez dans SharePoint un modèle Word par type de droit et liez-le dans le courriel, pour que la lettre d'avis soit à un clic.
Copies hebdomadaires aux clients : filtrez par locataire et envoyez à chaque client une courte liste de ses propres droits à venir, une façon simple de démontrer votre valeur entre deux transactions.
Jours fériés et jours ouvrables : si un bail exige un avis calculé en jours ouvrables, soustrayez les fins de semaine et les jours fériés à l'aide d'un tableau Holidays.
Ajoutez Teams : publiez les éléments en retard dans le canal de l'équipe de transaction, en plus du courriel.
Pourquoi c'est important
Une option de renouvellement ratée peut faire payer à un client des milliers de dollars de plus en loyer chaque mois, ou lui faire perdre un emplacement autour duquel il a bâti son entreprise. Un flux de 10 minutes et un tableau bien tenu sont une assurance peu coûteuse, et ils font de vous le courtier qui ne laisse jamais passer un délai.
Au-delà du tableur
Ce flux couvre les dates. Si vous voulez une vue d'ensemble, Frontage est notre CRM de location commerciale pour les courtiers canadiens. Il importe la liste de baux que vous tenez déjà, fait ressortir les baux aux jalons que vous choisissez et transforme chacun en dossier de transaction, avec les visites, les offres et les lettres d'intention regroupées. Le forfait Starter est gratuit, sans carte de crédit.
Besoin d'aide pour automatiser les processus de votre propre courtage? Smart Solutions conçoit des solutions Power Automate et Power Apps pour les équipes immobilières canadiennes. Communiquez avec nous pour discuter de ce que vous aimeriez automatiser.




Commentaires