Generate grouped PDF reports from Google Sheets (1 PDF per Therapist+Date) with a table of rows in Make

:bullseye: What is your goal?

I have a Google Sheet where each row = one appointment/service entry (time, customer, service, location, price, payment type, optional sales).
I want Make to generate one PDF per group/dailyreport (per Therapist + Date), where the PDF contains a table listing all rows in that group, then upload it to Dropbox.

Example output:

Adid_Dailyreport_2025-12-11.pdf containing 6 rows

Maret_Dailyreport_2025-12-11.pdf containing 2 rows

Long story short: I want to create a daily report for each group (therapist name + date) based on the Google Sheets entries. Each row should contain one appointment in tabular form.

:thinking: What is the problem & what have you tried?

I’m not sure what the best practice is in Make to:

  1. group rows by Therapist+Date

  2. render them into one PDF with a table (loop/repeating rows)

I tried:

Google Sheets “Search rows” + filters

Array aggregator “Group by” Therapist+Date

But I’m confused about the correct way to pass grouped rows into a document template (Google Docs / Word Templates / HTML → PDF) so the table repeats for each row.

:clipboard: Error messages or input/output bundles

None yet

:camera_with_flash: Screenshots (scenario flow, module settings, errors)

1 Like

Appreciate any help! Thanks

1 Like

Hey there,

most likely you need to replace the Array Aggregator with a Text Aggregator, this will give you the text block for each grouping and then you can feed those directly to your Google Doc template.

Or build the HTML block inside the text aggregator and use that if this is the tool you chose.

1 Like

Okay, but how do I solve this loop thing then? Or do you mean that I should aggregate a group in ONE big text and then put it into the google docs? How do I insert it was a spreadsheet then? Thank you

1 Like

What are you trying to insert it in at the moment?

You can have one text aggregator set to group them by whatever to build the individual blocks and then a second aggregator to build one big block. Or you can use join().

1 Like

Hey,

since I’m not that type of a dev it’s hard to explain. Our client want a daily report once a week (for every weekday) for every employee and day. So let’s say “Marcus” had 10 meetings on monday. In the spreadsheet, there should be inserted ten meetings with the details. I attached a screenshot of the "first idea” spreadsheet.

1 Like

Uf well if you want to build it as a table its a bit more complex. You still use the text aggregator but you need the correct format. Then you don’t insert it in these tags, but replace the table it self with the newly built one. Or use this:

to add a row to the table.

You can read more on tables here:

1 Like