Ce qu'il vous faut
- Un compte Make.com avec des connexions Google Sheets et Gmail
- Une feuille Google avec une ligne d'en-têtes, par exemple : Client, Item, Amount, Due date, Status
- Une colonne d'aide dans la feuille, expliquée à l'étape 1
- L'adresse e-mail qui doit recevoir le récapitulatif
Construction pas à pas
1. Ajoutez une colonne d'aide dans la feuille
Comparer des dates dans Make est possible mais fastidieux, car les dates venant de Sheets peuvent arriver sous forme de texte au format de votre région. Il est plus simple de laisser la feuille décider. Ajoutez une colonne « Due today » avec une formule comme celle-ci :
=IF(AND(D2<=TODAY(), E2<>"Paid"), "yes", "")
Recopiez-la vers le bas, ou utilisez une formule matricielle pour que les nouvelles lignes la reçoivent automatiquement. Adaptez les lettres de colonnes à votre mise en page.
2. Créez le scénario et ajoutez Google Sheets – Search Rows
Sélectionnez le classeur et l'onglet, avec « Table contains headers » sur oui. Ajoutez un filtre, dans le module s'il est disponible, ou sur le lien qui suit : Due today égal à yes. Triez par Due date croissante si le module propose un tri. Vérifiez le champ Limit, car il peut être réglé bas par défaut et tronquer discrètement votre récapitulatif. Mettez-le au-dessus du nombre de lignes attendu.
3. Ajoutez Tools – Text aggregator
L'endroit où les agrégateurs sont listés peut varier selon la version de l'interface ; vérifiez l'interface actuelle de Make. Indiquez Search Rows comme module source. Dans le champ Text, écrivez une ligne de tableau en mappant des champs de la recherche :
<tr><td>{{escapeHTML(2.Client)}}</td><td>{{escapeHTML(2.Item)}}</td><td>{{formatNumber(2.Amount; 2; "."; ",")}}</td><td>{{2.`Due date`}}</td></tr>
Les noms de champs comportant un espace se placent entre accents graves, comme dans la dernière cellule. Laissez le séparateur de lignes vide ou mettez un retour à la ligne. La sortie de l'agrégateur est un unique champ de texte réunissant toutes les lignes. La fonction escapeHTML empêche des caractères comme & ou < présents dans vos données de casser le tableau. Utilisez le format de nombres et de dates de votre feuille, car les arguments de formatNumber dépendent de votre région.
4. Ajoutez Gmail – Send an email
Mettez votre adresse dans To. Pour l'objet, utilisez quelque chose avec la date, comme Daily summary {{formatDate(now; "YYYY-MM-DD")}}. Réglez Body type sur Raw HTML et écrivez dans Body contents le tableau autour du texte agrégé :
<p>Items due today or overdue:</p>
<table border="1" cellpadding="6" cellspacing="0">
<tr><th>Client</th><th>Item</th><th>Amount</th><th>Due date</th></tr>
{{3.text}}
</table>
Le nombre dans 3.text est le numéro de module de l'agrégateur dans votre scénario ; choisissez-le dans le panneau de mapping. Les attributs en ligne comme border et cellpadding sont voulus : les clients de messagerie ignorent la plupart des styles externes.
5. Décidez de ce qui se passe les jours vides
Quand la recherche ne trouve rien, l'agrégateur produit quand même un bundle, mais le texte est vide. Vous avez deux options. Pour ignorer les jours vides, ajoutez un filtre entre l'agrégateur et Gmail : le texte agrégé, exists (ou does not equal empty, selon ce que propose le filtre). Pour envoyer plutôt un message « rien à signaler », entourez le tableau de ifempty() :
{{ifempty(3.text; "<tr><td colspan=4>Nothing due today.</td></tr>")}}
6. Fixez une heure
Cliquez sur l'icône d'horloge du premier module. Réglez le scénario pour qu'il s'exécute chaque jour à une heure fixe, par exemple 07:30, plutôt qu'à intervalles. L'heure suit le réglage de fuseau horaire de votre compte ou de votre organisation Make ; vérifiez l'interface actuelle de Make et confirmez le fuseau, surtout si votre équipe est répartie sur plusieurs régions. Un récapitulatif qui arrive à 06:30 au lieu de 07:30 signale généralement un décalage de fuseau horaire ou d'heure d'été.
7. Testez et activez
Cliquez sur Run once, vérifiez l'e-mail dans votre boîte de réception sur ordinateur et sur téléphone, et comparez les lignes avec la feuille. Activez ensuite le scénario. Regardez l'onglet History le lendemain matin pour la première vraie exécution.
8. Facultatif : ajoutez un total
Placez une formule SUM dans une cellule d'un onglet « Summary » distinct, filtrée sur Due today, et lisez-la avec Google Sheets – Get a Cell avant le module Gmail. C'est plus simple qu'un second agrégateur, et le nombre est aussi visible dans la feuille.
Erreurs courantes et solutions
L'e-mail affiche des balises HTML brutes. Vérifiez le Body type du module Gmail. Ce montage nécessite Raw HTML.
Seules certaines lignes figurent dans l'e-mail. Le Limit de Search Rows est trop bas, ou le filtre est trop strict. Relevez la limite, puis comparez le nombre de bundles dans Run once avec les lignes de la feuille. Une formule « Due today » qui ne couvre qu'une partie de la colonne provoque le même symptôme.
Le tableau se casse, se décale ou perd une ligne. Une valeur contient une esperluette, un signe inférieur ou un retour à la ligne. Entourer les champs texte de escapeHTML() règle l'essentiel. Pour les retours à la ligne dans les cellules, remplacez-les par une espace avant de les placer dans le tableau.
L'e-mail arrive à la mauvaise heure. Le planning du scénario s'exécute dans le fuseau horaire de vos paramètres Make, pas forcément celui de votre ordinateur. Vérifiez le fuseau, et revérifiez après un changement d'heure. Gmail ne retarde pas les messages ; c'est donc le planning qu'il faut examiner.
Les très gros récapitulatifs sont coupés. Gmail tronque les longs messages, et un tableau de centaines de lignes est de toute façon difficile à exploiter dans un e-mail. Limitez le récapitulatif aux lignes les plus urgentes, ou envoyez un lien vers la feuille et seulement les dix premières lignes.
Rien n'est envoyé les jours sans lignes. C'est ainsi que le scénario est construit si vous avez ajouté le filtre de l'étape 5. Si vous attendiez un e-mail « rien à signaler », utilisez plutôt l'option ifempty().