SheetRender Blog

Automated PDF Reports: One per Client or Location

By Josh ·

Every Monday you open the same sheet, filter to one client, export a PDF, rename the file, attach it, and start over on the next row. Automated PDF reports are what that's supposed to become, and two different files hide under the same search.

How do I automate monthly PDF reports from a spreadsheet? If the report is a live dashboard and you want that view emailed as a PDF, use Looker Studio's scheduled delivery. If you need one branded document per row of a sheet, use a merge tool on a time trigger.

Automated PDF reports come in two shapes

The searches sound interchangeable. They describe two jobs.

A dashboard-shaped report is charts over live data. The reader changes a date range and leaves the tab open. Looker Studio is built for that. You can still get a PDF out of it: Google will email a printout of the current view on a schedule. The file that arrives is a snapshot of a dashboard.

A document-shaped report is a branded PDF that gets sent and filed. Last month's letterhead, or the one-pager a store manager drops in a folder named for the location. Nobody explores it. They read the number they came for and they keep the file. One report per client, every Monday, from the same sheet.

The export menu can't do the document job on its own. File > Download will export a filtered view, but nothing renames the file after the client in column B or refilters for the next row. Doing that twelve times is the Monday ritual.

If you wanted the dashboard, the next section is yours. If you wanted the letter, jump past Looker Studio to the Docs template.

If you're comparing hosted tools on price, that comparison is its own post. If what you hold is a downloaded file, use the CSV to PDF guide. This page stays on the recurring per-entity report: same shape every week or every month, one file per row.

Generate reports from Google Sheets with Looker Studio

If the file you want is a dashboard sitting on a Google Sheet, stop shopping. Looker Studio already reads that sheet as a data source. You build the charts once. Then you ask Google to email the view.

The click path is short:

  1. Open the report.
  2. Share > Schedule delivery.
  3. Add the recipients.
  4. Set the attachment to PDF and pick which pages go out.
  5. Choose how often it sends, then save.

Google emails the report as a PDF attachment. The message includes a preview of the first page and a link back to the live report. On the standard tier, when I last checked Google's schedule-delivery page (opens in a new tab), a report holds one schedule and it fires once a day at most. The Repeat options still cover a weekly Monday send, and Custom handles shapes like every other Friday. On either tier, a schedule holds up to 50 recipient addresses.

Looker Studio Pro raises the schedule ceilings: up to 200 schedules on one report, delivered as often as hourly. Pro also has per-recipient filtering keyed on an email field in the data source, which is the feature that matters for this post, along with custom subjects, send-now, and delivery to Chat or Slack.

Use this when everyone on the list should get the same dashboard view, or when Pro's per-recipient filter is enough to hide other people's rows. A regional manager who wants the live charts will be happier in Looker Studio than with a static letter.

Where it breaks:

  • Per-client versions on the standard tier mean one Looker Studio report per client, each with its own single schedule. Twelve clients is twelve reports to keep in sync when the chart layout changes.
  • Pro's per-recipient filtering solves the "only their rows" problem for email. It still sends a dashboard PDF. A pack that looks like the one you filed last month is a different file.
  • The one-schedule ceiling bites harder than the frequency cap. Weekly on a Monday is a Repeat option, but a standard-tier report can't run a Monday client send and a daily internal send at the same time.
  • You maintain the dashboard, and the dashboard is what gets mailed. Looker Studio has no path to a Docs or Slides letter.

I'd use Looker Studio for any team that already lives in the dashboard and just wants the PDF in their inbox so they remember to look. Anyone who asks for it to look like the PDF they signed off last quarter is asking for a different product.

A Docs template on a time trigger

The homemade version is an Apps Script time trigger over a Google Docs template. Each row gets a copy of the Doc, the <<tags>> get swapped for cell values, and the copy lands in Drive as a PDF. The spreadsheet-to-PDF post has the working loop, twenty lines including the Monday 08:00 trigger, so I'm not repeating it here. Swap its certificate template for your report Doc.

Google kills any one execution at six minutes, and triggered runs share a daily pot: 90 minutes on a consumer account, 6 hours on Workspace (Google's quota table (opens in a new tab)). The trigger is four lines; making the rerun safe is the actual project, and that post carries the caveats. When a run dies with Service invoked too many times, the fix list is in that post.

Autocrat on a weekly clock

If the report has to look like a document and you don't want to own a script, Autocrat (opens in a new tab) is the free answer. The certificate guide walks the tagging click by click; the short version is a Google Docs or Slides template with <<Client>> placeholders wired to your columns, one file per row, PDF out.

What matters for a recurring report is the trigger. Weekly is the setting for this job. Monday morning, Autocrat walks the rows and writes a file per row into Drive, emailing each one to the address in its row if you ask. It also writes a status and a file link back into the sheet, which is the part I miss on every other route when a run dies halfway down the franchise list.

The rows have to live in a Google Sheet tab; it won't read an .xlsx sitting in Drive. Autocrat's own page (opens in a new tab) lists time and form triggers, and this job wants the clock.

It runs entirely inside your Google account, so Google's ceilings are the price. Every row spends the quota twice, once copying the template and once exporting the PDF, and a single execution gets six minutes. A weekly run that outgrows that budget stops partway. The merge log names Service invoked too many times, or the run just stops with no explanation. Time one Monday before you trust the whole list to it.

What comes out looks like the Docs or Slides file you tagged. For a modest weekly pack that can look like Docs, this is where I'd stop. If what you're sending is only email, with no PDF to file, the Google Sheets mail merge guide is the better page.

SheetRender, for a report you already send

SheetRender is our product, so read this section knowing that.

Upload last month's report. We rebuild it as a template and map the fields to your columns. Connect the Google Sheet, or upload an .xlsx or .csv. Each row comes back as its own branded PDF. A schedule picks how often the job fires and can run only the rows added since last time. Delivery can email each row its own report, or drop the whole batch in Drive. The reports page has the longer walkthrough of automated report generation.

A chart in the example becomes a static image region. There is no live chart in the finished PDF; if the reader needs to change a date and watch the bars move, send them to Looker Studio. A report page dense with tables is where the rebuilt template needs a check before you trust the batch. And nothing gets written back into your source sheet the way Autocrat writes a status column; delivery history lives in the app.

Free is 50 documents a month, 2 active templates, 50 emails a month, and 0 schedules, and generated documents are kept for 30 days. The watermark sits in the footer from document one. Free proves the template, and forty clients fit under the monthly cap. Monday is a schedule, though, and Free has none.

Starter is $19 a month for 1,500 documents and one active schedule. Pause that schedule and the slot frees. Pro is $49 a month for 10,000 documents and no schedule cap. The 15-minute option is on that tier.

The sheet or workbook you upload can stay with the project until you delete the project or the account, and building the template sends the column names plus a small sample of rows to Anthropic. Those samples aren't used to train models. If the data can't leave Google at all, Autocrat runs inside your Google account and the merge stays in Drive.

How the routes compare

RouteReport shapeOne per client?Schedule limitsCost
Manual export ritualWhatever you printYes, you filter by handNone. You are the clock.Free
Looker StudioDashboardSame view to everyone, unless you clone the report or use Pro's per-recipient filterStandard: 1 schedule per report, at most daily, weekly and monthly Repeat options included. Pro: up to 200 schedules, hourly. 50 recipients per schedule on bothFree on the standard tier. Pro is a paid upgrade; price on Google's pages (opens in a new tab)
Apps Script + Docs templateDocumentYes, one file per rowA time trigger you write. 6 min per execution; triggered scripts 90 min/day on a consumer account, 6 hr/day on WorkspaceFree
AutocratDocumentYes, one file per rowTime and form triggers. 6 min per execution; the same 90 min/day and 6 hr/day potsFree
SheetRenderDocumentYes, one PDF per row0 on Free. 1 active schedule on Starter (pausing frees the slot). No cap on Pro, with a 15-minute optionFree: 50 docs/month with a footer watermark. $19/month for 1,500. $49/month for 10,000

Those numbers are what the linked pages showed in mid-August 2026.

Quick answers

Is there a monthly report template that fills itself in? A template fixes the look. The Monday labor is filling it once per client and sending each file. The routes above automate that labor. A pretty blank in Docs still needs a merge or a script behind it.

Can Google Sheets email a report automatically? Sheets itself won't. For a dashboard, Looker Studio's scheduled delivery emails the PDF. For a document-shaped file, Autocrat or an Apps Script you write can send each row its own PDF. When the free routes run out, a paid merge tool on a clock does the same job, ours included.

How do I generate a separate report for each client from one spreadsheet? Give each client one row for the period you're reporting. Then use a tool that treats a row as a document. Autocrat and a Docs-template script both do one report per client that way. Looker Studio does it by cloning the report or, on Pro, by filtering each recipient to their email.

Can Looker Studio send each client a different PDF from one report? On the standard tier, no. One schedule sends the same view to everyone on the list. Looker Studio Pro can filter each recipient against an email field in the data source, so they only see their rows. The file is still a dashboard printout.

Which should you pick?

  • Same live dashboard, emailed as a PDF to a list: Looker Studio. Standard tier if one schedule per report is enough. Pro when one report needs several schedules, hourly delivery, or per-recipient row filters.
  • Document-shaped, rows already in Google Sheets, a weekly batch that fits Apps Script: Autocrat.
  • You want to own the loop and you will maintain it: an Apps Script time trigger over a Docs template.
  • Last month's branded PDF is the example, and the run has to fire with nobody at the keyboard: SheetRender, on a paid tier.

The two files at the top of this page never converge. A dashboard is something people go and look at, and Looker Studio will mail them a reminder of it. A client report is something someone files, and nobody files a screenshot of a dashboard. Pick by which one your reader keeps.

Ready to turn every row into its own polished PDF?

Free plan · No credit card required