Comment j'ai automatisé mon reporting mensuel avec Apps Script et Gemini ?
Le problème : 3 heures de copier-coller chaque mois
Chaque fin de mois, le même rituel : extraire des données de plusieurs Google Sheets, les consolider dans un tableau de synthèse, générer quelques graphiques, rédiger un commentaire pour chaque indicateur, et assembler le tout dans un Slides pour la direction.
Processus manuel, chronophage, et sujet aux erreurs. Parfait candidat pour l'automatisation.
L'architecture de la solution
- Google Sheets comme source de données (tableaux de bord opérationnels)
- Apps Script pour consolider et transformer les données automatiquement
- API Gemini pour générer les commentaires analytiques de chaque indicateur
Étape 1 : Consolider les données avec Apps Script
Le script lit les plages clés dans chaque feuille source et les assemble dans un onglet "Synthèse".
function consolidateData() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const synthese = ss.getSheetByName('Synthèse');
const sources = ['Ventes', 'Marketing', 'Support'];
synthese.clearContents();
sources.forEach(nomFeuille => {
const feuille = ss.getSheetByName(nomFeuille);
const donnees = feuille.getRange('A2:E50').getValues()
.filter(row => row[0] !== '');
synthese.getRange(synthese.getLastRow() + 1, 1, donnees.length, donnees[0].length)
.setValues(donnees);
});
}
Étape 2 : Appeler l'API Gemini pour les commentaires
function genererCommentaire(kpi, valeur, objectif, tendance) {
const prompt = `Tu es analyste business. Rédige un commentaire concis (2-3 phrases)
pour ce KPI : ${kpi} — Valeur : ${valeur} — Objectif : ${objectif} — Tendance : ${tendance}.
Ton professionnel et factuel. Inclure une recommandation actionnable.`;
const apiKey = PropertiesService.getScriptProperties().getProperty('GEMINI_API_KEY');
const url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=' + apiKey;
const res = UrlFetchApp.fetch(url, {
method: 'post', contentType: 'application/json',
payload: JSON.stringify({ contents: [{ parts: [{ text: prompt }] }] })
});
return JSON.parse(res.getContentText()).candidates[0].content.parts[0].text;
}
Étape 3 : Assembler le rapport Slides automatiquement
Le script duplique un template Slides, remplace les placeholders {{KPI1}}, {{COMMENTAIRE1}} par les vraies valeurs, et envoie le lien par email. Le lundi matin à 8h, le rapport est prêt — généré automatiquement la nuit précédente.
Le résultat : de 3h à 20 minutes
Les 20 minutes restantes servent à relire les commentaires Gemini, ajuster 2-3 éléments visuels, et valider avant envoi. L'essentiel du travail est fait.
Scripts prêts à l'emploi dans ma Bibliothèque Apps Script. Pour structurer tes prompts Gemini, utilise PromptLogic.
Et toi, quel process pourrais-tu automatiser ?
Si une tâche est répétitive, basée sur des données Google et que tu la fais chaque semaine ou chaque mois — elle est probablement automatisable avec Apps Script.
Découvrez mes outils d'IA
Explorez la Gémothèque, générez des prompts optimisés pour ChatGPT et Midjourney, ou testez mes assistants IA dédiés.