New: design and send email from the headless API.Explore the API
All posts
Guide

Automating Weekly Reports as Slides With Webhooks

Stop wasting hours on manual weekly report slides. Learn how to automate them with webhooks, step by step, from raw data to an on-brand deck you can share

TPThe Preso Team
12 minutes read

The Friday Afternoon Slide Factory

You know the drill. Every Thursday afternoon or Friday morning, someone on the team opens last week's report, clones it, and starts swapping numbers and charts. They pull data from dashboards, spreadsheets, and Slack channels, then wrestle with text boxes, alignment, and that one chart that will not resize without breaking the slide. Three hours later, a PDF lands in inboxes. The deck is on-brand enough, but it is never quite right, and the entire process is fragile. If the person who owns the report is out sick or slammed with something else, the slides ship late or not at all.

The fix is not a bigger template library or a more patient slide monkey. The fix is to stop building weekly report slides by hand and start generating them automatically. When you connect a data source to a presentation builder through a webhook, you replace an afternoon of manual clicking with a system that wakes up, pulls the numbers that matter, and assembles a polished deck while you do something more useful.

This guide walks through exactly how to set that up. You will go from a recurring trigger to a shareable deck, with concrete steps, tool suggestions, and real warnings about the gotchas that break automations.

Prerequisites

Before you hook anything into a slide engine, you need a few pieces in place.

  • A data source that can push, or be fetched from, on a schedule. That might be a BI dashboard, a database, a spreadsheet, a reporting API, or even a Slack channel summary.
  • A way to trigger webhooks when that data refreshes. Zapier or Make are common choices, but you can also use native platform automation like Power Automate's webhook-to-slides flow or a custom script.
  • A presentation tool that accepts webhook payloads and can build slides programmatically. You will use Preso's headless API and MCP here because it accepts structured data, applies your brand, and returns a complete deck without manual design work.
  • Your brand kit: logo, colors, fonts, and any recurring slide layouts you want in the automated deck. Preso will pull these from your workspace, so you only need to set them once.
  • An outline of the slides you want generated. Do not skip this. An automation without a defined slide structure is like a printer without paper, you will get noise, not a report.

Pro Tip: Start with one simple report before you try to automate the full board deck. A weekly pipeline update or a marketing KPI recap is a good first candidate. Nail the end-to-end flow, then expand to more complex decks.

Step 1: Choose Your Data Source and Webhook Trigger

The first decision is where the weekly report data comes from and when it becomes available. Common sources:

  • A BI tool like Mode, Looker, or Metabase that exports CSV or JSON summaries.
  • A spreadsheet (Google Sheets, Airtable) with weekly updates.
  • A project management tool (Jira, Asana, Linear) that holds progress data.
  • A CRM (HubSpot, Salesforce) that tracks pipeline stages and revenue.
  • A product analytics tool that surfaces user engagement and revenue.

You need a mechanism that fires every Thursday evening (or whenever your reporting week ends). Webhooks bridge that gap. Services like Zapier offer a straightforward "Schedule" trigger or can listen for row updates in a database. The Zapier guide on webhooks for automated reports shows several patterns, including using a form-to-webhook trigger that collects data from a team each week and then pushes it to the slide engine.

Pro Tip: If your data source supports native webhook outbound sending, use that instead of an intermediary. It reduces points of failure. Many CRMs, analytics tools, and even Notion databases now offer webhook integrations. For example, Notion's webhook integration docs walk through setting up a database-triggered webhook that can feed into a presentation service.

Step 2: Set Up the Webhook to Capture Weekly Data

Once the trigger is defined, you need to configure a webhook endpoint that accepts the payload and starts the deck generation. With Preso, you can create a webhook endpoint through the API that listens for your structured data and kicks off a deck build.

You will do this in the Preso dashboard under API settings, or by using the Preso API directly. You specify:

  • A webhook secret to verify incoming requests.
  • The expected payload shape: typically JSON key-value pairs that map to slide content fields.
  • The deck template or blueprint you want to use. Pick a pre-built deck template that matches your report style (monthly investor updates, QBR, weekly pipeline review). Each template is designed for a specific use case and already includes the slide structure and branding placeholder logic.

Example payload for a weekly sales summary:

{
  "report_name": "Weekly Pipeline Review",
  "week_ending": "2025-05-12",
  "total_pipeline": 245000,
  "closed_won": 32000,
  "deals_created": 7,
  "top_deal": "Acme Corp",
  "region_performance": {
    "west": 120000,
    "east": 95000,
    "central": 30000
  },
  "next_steps": "Follow up with Acme Corp legal, schedule demo for Beta Inc on Tuesday."
}

Your automation (Zapier, custom script, Power Automate) will construct this payload each week from the data source and POST it to your Preso webhook URL. The response you get back is a deck ID; you can then poll or use callbacks to know when the deck is ready.

Warning: Always validate incoming data. If a number is missing or a date is malformed, your automation will produce slides with blank placeholders or error text. In Zapier, add a Filter step to ensure key fields are non-empty. In a custom script, do strict JSON schema validation. Small guardrails prevent the 2 a.m. "deck is broken" panic.

Step 3: Map Data to Slide Structure

Having data is not the same as having a meaningful slide deck. You need to decide which data points go on which slides, and in what format.

Use a consistent slide outline each week. A typical weekly report deck might look like:

  • Slide 1: Title slide (Report name, date, team)
  • Slide 2: Executive summary (key numbers and a paragraph of commentary)
  • Slide 3: Pipeline overview (visual chart, total, change)
  • Slide 4: Deals won this week (table with details)
  • Slide 5: Deals created this week
  • Slide 6: Regional breakdown (chart or map)
  • Slide 7: Risks and blockers
  • Slide 8: Next week priorities

In Preso, you map fields from your JSON payload to the content placeholders in a chosen template. For instance, the "Monthly investor updates and board decks" template (available for the editor and for full automation) already has sections for KPIs, charts, narrative, and next steps. You could adapt it for a weekly cadence by pointing your webhook data to those slots.

The mapping happens in the Preso API request or directly in the webhook configuration if you use a preset integration. The key is to keep the mapping consistent week over week so that the generated deck always places the right data in the right spot.

Pro Tip: Use conditional logic if certain data might be missing some weeks. For example, if no deals closed this week, you can send a "closed_won": 0 and the template can show "No deals closed" instead of an empty slide. Preso's API supports conditional narrative blocks, letting you define fallback text.

Step 4: Configure Slide Generation in Preso

Now the heavy lifting moves to the presentation builder. With the webhook payload defined, you set up Preso to receive the request and automatically generate your deck.

  1. Log into Preso and go to the API section. Create a new webhook endpoint.
  2. Select the blueprint you want. For weekly reports, start with the Sales & Revenue decks collection or the SaaS & Startups decks collection depending on your industry. Each has report-style templates ready for automation.
  3. Set the design presets: brand kit, color palette, font pairings, and the visual density you prefer. This ensures no slide looks like a generic template. If you ever want to see multiple design approaches, you can use the Many designs for one deck feature to generate alternative layouts and pick the strongest combination for your recurring report.
  4. Configure the webhook secret and note the full URL. Test with a sample payload from the dashboard to confirm that the deck renders correctly.

Now when a weekly POST hits that endpoint, Preso will:

  • Validate the request signature.
  • Retrieve your brand settings.
  • Populate the chosen template with your data.
  • Generate a full presentation, ready for review.

Warning: The first time you test, the generated deck might not look exactly as you imagined. That is expected. Adjust your template slide titles, chart types, or layout presets in the editor until the output matches the report you would have built manually. This tuning is a one-time investment.

Step 5: Design and Brand Your Automated Deck

An automated deck still needs to look like a human designer touched it. Preso handles that by applying your brand consistently, but you should still take time to set up your brand kit properly.

Upload your logo, set primary and secondary colors, define font styles, and establish a few layout rules. In the Preso editor, open any generated deck and use the style panel to tweak spacing, chart colors, and image treatments. When you save those changes, every future webhook-generated deck will inherit them because they are tied to your workspace and the chosen blueprint.

Pro Tip: Do not overdesign. The goal is clarity, not visual exhaustion. Pick one strong chart per slide and a consistent text hierarchy. That makes reports scannable in under 30 seconds. If you need inspiration, look at the pre-built templates in the Deck templates library. They are designed for readability.

Step 6: Schedule the Automation

You want the webhook to fire automatically, not manually. Use your selected trigger service (Zapier, Make, or a cron job) to set a recurring schedule. Common configurations:

  • Time-based trigger: Every Thursday at 8:00 PM UTC, run the workflow that collects data and posts to the webhook.
  • Event-based trigger: When a row in a "Weekly Report" Notion database is updated, fire the webhook. (See the Notion webhook guide for steps.)
  • API-based trigger: A script that queries your database, check if today is Thursday, and if yes, send the POST.

After posting, the webhook returns a deck ID. You can then poll the Preso API to check generation status, or set Preso to call a callback webhook when the deck is ready. In the callback, you can chain further actions: share the deck link in Slack, email it to stakeholders, or dump a PDF into a shared drive.

Example flow using Zapier:

  1. Schedule Zap runs every Thursday at 9 PM.
  2. Use the Google Sheets action to grab last week's data.
  3. Format the JSON payload.
  4. POST to Preso webhook endpoint.
  5. Webhook returns deck ID.
  6. Preso finishes generation and pings a Zapier Catch Hook.
  7. Zapier then sends an email with the share link and exports a PDF to Google Drive.

The Microsoft Power Automate webhooks-to-slides guide shows a similar pattern using Office 365 tools. You can adapt it to post to Preso's webhook instead of directly into PowerPoint.

Warning: Beware of time zones. If your reporting week ends Friday at 5 PM Eastern, set the trigger for after that (e.g., Friday 10 PM UTC). Also, handle holidays by adding a condition to skip or delay the generation so you do not send an empty report on a week with no data.

Step 7: Add Voice-Over and Narrative

A weekly report deck can be more than slides. In fast-moving teams, the deck often gets forwarded without context, and the same questions come up. Adding a short voice-over or narrative script to the deck provides the necessary explanation and saves back-and-forth.

Preso lets you attach notebookLM-style narrative in multiple languages to any slide. After the webhook generates the deck, you can:

  • Use the Preso editor to record a quick voice-over for the executive summary slide, covering the key story behind the numbers. The voice-over stays with the slide when you share the link.
  • Add a text narrative block to each slide with talking points, automatically generated from the data if you include a narrative field in your webhook payload. That way, the deck can be presented live or sent as a narrated walkthrough.

For repeating reports, you can even pre-record a templated voice-over intro slide that welcomes the team and frames the week. When you export to PowerPoint or Google Slides, the audio stays embedded if you use Preso's live presentation feature or export a video.

This step turns a dry data dump into a usable, shareable artifact. It also future-proofs the report: when someone new joins, they can listen to the narrative and understand the context without digging through raw data.

Step 8: Share and Export Securely

With the deck ready, you need to get it where it needs to go. Preso offers flexible distribution without giving up control.

  • Live link sharing: Generate a secure link with access controls: set passwords, allow-lists, expiry dates, and disable downloads. That ensures confidential weekly numbers do not leak beyond the team.
  • Export to PowerPoint, Google Slides, or PDF: Some stakeholders want a static version. Use the export feature to download a clean PPTX or PDF. The formatting will remain faithful because Preso uses native slide building, not raster screenshots.
  • API-driven distribution: Use the Preso API to attach the generated PPTX to an email or upload it to a shared drive automatically, triggered by the webhook callback.

If you are presenting the weekly report in a live meeting, you can present directly from Preso's hosted link or open the exported PPTX in PowerPoint or Keynote. The deck will be fully editable, so if you need last-minute tweaks, you can still make them without breaking the automation.

Pro Tip: Keep a "golden version" printout of an ideal weekly report deck as a PDF. When you iterate on the automation, compare the new generated output against that gold standard to catch regressions in layout or content.

Common Pitfalls and How to Avoid Them

Automating weekly reports is not a set-and-forget operation initially. Here are the gotchas that trip up most people and how to handle them.

  • Data Format Changes: A column rename in your spreadsheet breaks the mapping. Build a data validation step that checks the existence of expected fields. If a field is missing, the automation should alert you instead of generating a broken deck.
  • Brand Drift: Small tweaks in your brand colors or logo over time will not automatically propagate. Schedule a quarterly check to confirm your brand kit and preset designs still match your current style guide.
  • Chart Misrepresentation: If you automate charts, verify that the data range is correct each week. An off-by-one row error can show a dramatic drop that does not exist. Include a simple numerical sanity check: if total pipeline changes more than 50% week-over-week, flag the report for review.
  • Webhook Security: Always use HTTPS and a secret. Do not expose your webhook URL publicly without authentication.
  • Over-Automation: Resist the urge to automate every possible slide variant. Pick a single, high-value weekly report and perfect the automation before building others. Complexity multiplies maintenance load.

Conclusion

Weekly reports do not have to be a time sink. By connecting your data source to a presentation builder through webhooks, you remove manual slide assembly, enforce consistent branding, and free up hours of editorial work every week. The steps are concrete: choose a trigger, map your data, configure the webhook, design the deck, schedule the delivery, and add a voice-over if you want to tell a richer story.

The tools exist. Preso gives you the API and the templates to generate on-brand slides from a webhook payload without writing slide-level code. Services like Zapier, Power Automate, and native platform integrations bridge the data gap. The rest is your own content and the discipline to lock in a consistent report structure.

Start with one report. Send the first auto-generated deck to your team next week. Once you see that link arrive without a human touching the deck, you will wonder why you ever did it the old way.

Stop building weekly report slides by hand. Book a demo with Preso and see what an automated, fully branded weekly deck looks like. Or sign up and build your first automated report with the Preso API.