An end-to-end automated reporting system that extracts backend data, processes key metrics, generates branded monthly performance decks, and delivers them to multiple partners through automated email workflows.
// Iterates through all presentations and refreshes embedded charts
function refreshChartsInAllPresentations() {
SLIDE_URLS.forEach(url => {
const presentation = SlidesApp.openById(extractId(url));
presentation.getSlides().forEach(slide => {
slide.getSheetsCharts().forEach(chart => chart.refresh());
});
});
}
// Exports each slide as a high-resolution PNG
slides.forEach((slide, index) => {
const thumbnail = slide.getThumbnail({
contentUrl: 'PRESENTATION_ID',
mimeType: 'image/png'
});
folder.createFile(thumbBlob)
.setName(`slide_${index + 1}.png`);
});
// Copy template, replace placeholders, insert charts & logos
partners.forEach(partner => {
const deck = template.makeCopy(partner.name);
deck.replaceAllText('{{PARTNER_NAME}}', partner.name);
deck.replaceAllText('{{MONTH}}', currentMonth);
insertLogo(deck, partner.logoUrl);
insertChartImages(deck, partner.chartFolder);
deck.saveAndClose();
});
Let’s create an automation that saves you time and keeps your data secure.
Let's build something →