How to create a merge setup for automated PDF generator (Baserow and Google Slides)
We’re working with: Baserow for structured data, Google Slides for templates, Google Drive for storage, Outlook/Gmail for delivery, and Zapier for automation.
This isn't just about generating PDFs; it's about reclaiming your time, preventing typos, and delivering records consistently and automatically.
This guide assumes you have accounts for all the mentioned services (Baserow, Google, Zapier, Outlook/Gmail) and basic familiarity with navigating them.
What we’ll build
A new name appears on your "Graduates" list (in Baserow), and a personalized PDF certificate lands in their inbox.
While the concepts are straightforward, configuring Zapier, creating templates, and testing takes focus. Plan for 1-3 hours, depending on your familiarity with these tools and the complexity of your certificate design.
1: Planning & prep work
Every great build starts with a clear plan. Before we touch Zapier, let's get our ducks in a row.
-
Identify your data: What exactly needs to go on that certificate and in that email?
- Recipient name
- Recipient email (Where it's going)
- Certificate type (e.g., "Completion," "Attendance," "Membership") - Useful if you have different templates or email texts.
- Course/Webinar/Membership name (What did they complete/attend/join?)
- Completion/Attendance date
- A unique identifier (Maybe a student ID or internal code)
- Baserow as the source: For this tutorial, we'll treat Baserow as the trigger source. When a new row appears in a specific Baserow table/view, that's our signal to Zapier.
-
Design your template (Google Slides):
- Create a new Google Slides presentation.
- Design your certificate layout. Make it look professional and celebratory.
- Add placeholders: Where you want dynamic data to appear, insert text boxes and type the placeholder names wrapped in double curly braces, like this: {{Recipient Name}}, {{Course Name}}, {{Completion Date}}. Use clear, descriptive names that you can easily match to your Baserow fields.
- Add your static logo if you're using one.
- Save the presentation with a clear name, e.g., Certificate Template - Master.
-
Organize your output folder (Google Drive):
- In your Google Drive, create a specific folder where the generated PDF certificates will be saved. Give it a logical name like Generated Certificates or [Course Name] Graduates.
-
Draft your email (Outlook/Gmail):
- What will the email say? Keep it warm and congratulatory.
- Include dynamic elements using your potential Baserow field names in placeholder style for planning (e.g., Hi {{Recipient Name}}, Congrats on completing {{Course Name}}!).
- Decide on the subject line (e.g., "Your Certificate of Completion for {{Course Name}}").
- Mentally (or in a draft email) map which pieces of data from Baserow need to go where in the email.
-
Account check: Ensure you can log into Baserow, Google (Slides, Drive), Zapier, and your email account (Outlook or Gmail) and that these services are connected or can be connected within Zapier.
Okay, let's start building.
2: Set up Baserow
This is where the magic starts. Your Baserow table is the signal tower that tells Zapier it's time to work.
-
Create your table: If you don't already have one, create a Baserow database and a table specifically for the records that should trigger certificate generation (e.g., Graduates to Certify).
-
Add necessary fields: Based on your Step 1 plan, add the columns (fields) needed:
- Name (Text field)
- Email (Email field type)
- Certificate type (Single Select field with options like "Completion", "Attendance")
- Course name (Text field)
- Completion date (Date field)
- Status (Single Select field with options like "Pending", "Certifying", "Sent", "Error" - for tracking)
-
Populate with test data: Add one or two rows of fake data to this table. Use a real email address you can access for testing. Make sure all the fields you plan to use in the certificate and email are filled in for your test row(s).
-
Identify your Trigger View/Table: Note the exact name of the table (or a specific View within that table, if you're using filters there) that Zapier will watch for new rows. Using a View that filters for Status is 'Pending' is a common and powerful pattern.
3: Set up Google Slides
-
Open your template: Go back to the Google Slides presentation you created in Step 1 (Certificate Template - Master).
-
Verify placeholders: Double-check that every piece of text you want to be dynamic is enclosed in double curly braces {{like this}}.
- Example: Instead of just "John Doe", you have {{Recipient Name}}. Instead of "July 26, 2023", you have {{Completion Date}}.
-
Grant access: Ensure your Google account (the one Zapier will use) has access to this template file. Sharing it explicitly with your main Google account is safest.
4: Set up Google Drive
A quick, but important, step for the organization.
- Create folder: If you didn't in Step 1, create a dedicated folder in your Google Drive (e.g., Generated Certificates).
- Note the location: Know where this folder is. You'll need to select it in Zapier.
- Grant access: Again, ensure the Google account Zapier uses has full access to this folder.
5: Set up Zapier
This is where we connect everything with a multi-step Zap.
-
Create a new Zap: Log into your Zapier account and click "+ Create Zap."
-
Step 1: Trigger (Baserow - New Row)
- App & Event: Search for Baserow and select it. For the Trigger Event, choose New Row.
- Account: Connect your Baserow account if you haven't already. You'll need your API token (found in Baserow settings under API tokens). Give the token a name like "Zapier Access" and grant it access to the database where your Graduates to Certify table lives.
- Set up Trigger: Select the Database and the specific Table (or View) from your Baserow account that you want to watch for new rows (e.g., the Graduates to Certify table or a View filtered for Status is 'Pending').
- Test Trigger: Click "Test trigger." Zapier will look for a recent row in that table/view. It should find the test row(s) you added in Phase 1. Select one of the test rows – this data is what Zapier will use as sample data for the next steps. If it doesn't find a row, add one in Baserow and try testing again. Zapier sees your data.
-
Step 2: Action (Google Slides - Copy Presentation)
-
Why copy? We don't want to write over our master template. We copy the template, fill in the copy, and save the copy as a PDF.
-
App & Event: Search for Google Slides and select it. For the Action Event, choose Copy Presentation.
-
Account: Connect your Google account.
-
Set up Action:
- Presentation to copy: Find and select your master certificate template file (e.g., Certificate Template - Master) from your Google Drive. Zapier will help you browse or search.
- New presentation name: Give the copy a temporary but identifiable name. You can use Baserow data here. Something like Working Copy - {{1__Name}} where {{1__Name}} is the Name field from your Baserow trigger step (Step 1). This helps distinguish working copies.
- Parent folder: Choose the folder where this working copy will be temporarily saved. You could put it in the same Generated Certificates folder or a separate Working Files folder.
-
Test action: Click "Test & continue." Zapier will make a copy of your template based on the sample data from Step 1. Go to your Google Drive and check that the copy appeared with the dynamic name.
-
-
Step 3: Action (Google Slides - Fill a Presentation)
-
Now we populate the copied template with the recipient's details.
-
App & Event: Search for Google Slides again. For the Action Event, choose Fill a Presentation.
-
Account: Select the same Google account.
-
Set up Action:
-
Presentation to fill: Select the output from the previous step (Step 2: Copy Presentation). Zapier will show "2. Copy Presentation". Click in the field and select the ID or name of the presentation created in Step 2. This tells Zapier "Use the copy I just made".
-
Find & replace: This is where you map your Baserow fields to your Slides placeholders. Zapier will show you input fields corresponding to the placeholders found in your template. For each placeholder:
- Next to {{Recipient Name}}, click the '+' icon and select the Name field from your Baserow trigger (Step 1).
- Next to {{Course Name}}, select the Course Name field from Step 1.
- Next to {{Completion Date}}, select the Completion Date field from Step 1.
- ...and so on for all your text placeholders.
-
-
Test Action: Click "Test & continue." Zapier will open the working copy of the presentation created in Step 2 and replace all the {{placeholders}} with the actual data from your test Baserow row. Open that working copy in Google Slides and admire your dynamically populated certificate draft.
-
-
Step 4: Action (Google Drive - Upload File and Convert to PDF)
-
Okay, the populated Slide is ready. Now, save it as a PDF in your dedicated certificates folder.
-
App & Event: Search for Google Drive and select it. For the Action Event, choose Upload File.
-
Account: Select the same Google account.
-
Set up Action:
- File: Select the output from the previous step (Step 3: Fill a Presentation). Click in the field and find the file output from Step 3.
- Folder: Select the dedicated Google Drive folder you created in 3 (Generated Certificates).
- Convert To: Select PDF Document. This tells Google Drive to convert the Slides file into a PDF during the upload/save process.
- File Name: Give the final PDF file a clean, descriptive name using Baserow data. Something like {{1__Name}} - {{1__Course Name}} Certificate.pdf.
- File Extension: Leave this blank or use .pdf.
-
Test Action: Click "Test & continue." Zapier will trigger Google Drive to take the populated Slides file, convert it to a PDF, and save it with the specified name in your Generated Certificates folder. Go check that folder. You should see a personalized PDF.
-
-
Step 5: Action (Outlook/Gmail - Send Email)
The PDF is generated and saved. Now, let's send it.
-
App & Event (Outlook): Search for Outlook and select it. For the Action Event, choose Send Email.
-
App & Event (Gmail): Search for Gmail and select it. For the Action Event, choose Send Email.
-
Account: Connect your Outlook or Gmail account.
-
Set up Action:
- To: Click the '+' and select the Email field from your Baserow trigger (Step 1: {{1__Email}}).
- Subject: Write your subject line, again using Baserow data for personalization (e.g., Your Certificate for {{1__Course Name}} or Congratulations, {{1__Name}}!).
- Body: Write the email body. Use Baserow data for personalization (Hi {{1__Name}},, Congrats on completing {{1__Course Name}}! etc.). You can choose HTML or Plain Text. HTML allows for better formatting.
- Attachment: Click the '+' and select the file output from the previous step (Step 4: Upload File in Google Drive). Zapier will provide the PDF file from that step as an option.
- (Optional for Logo Link in Email) If you decided to put the logo link in the email body, you could add it here using the {{1__Course Logo URL}} field from Baserow.
-
Test Action: Click "Test & continue." Zapier will send the email with the personalized body and subject, attaching the PDF certificate generated in Step 4. Go check the inbox you used for your test data. Did it arrive? Is the PDF attached? Is it the right one?
-
-
Step 6 (Optional): Action (Baserow - Update Row)
-
Remember that Status field we added in Baserow? Let's use it to mark this row as "Sent" or "Certified." This prevents accidental re-sending and gives you a clear audit trail.
-
App & Event: Search for Baserow and select it. For the Action Event, choose Update Row.
-
Account: Select your Baserow account.
-
Set up Action:
- Database: Select the same database as Step 1.
- Table: Select the same table as Step 1.
- Row ID: This is how Zapier knows which row to update. Click the '+' and select the ID field from your Baserow trigger (Step 1: {{1__ID}}). This ensures you're updating the exact row that triggered the Zap.
- Fields: Now, you can update specific fields. Find your Status field. Click the '+' and select a static value like "Sent" or "Certified". You could also potentially store the link to the generated PDF here if you wanted.
-
Test Action: Click "Test & continue." Zapier will update the status field of your test row in Baserow. Go check your Baserow table – the status should have changed.
-
-
Name your Zap: Give your Zap a clear name, like "Baserow -> Certificate PDF -> Email."
-
Turn on your Zap: Click the toggle to turn your Zap ON.
5: Testing & Refinement
You've tested each step, but now let's test the whole flow from start to finish with fresh data.
-
Add new test data: Go to your Baserow table (Graduates to Certify) and add a brand new row with test data (again, using a real email you can check). Make sure the Status field is set to whatever triggers your Zap (e.g., "Pending").
-
Wait or trigger manually: Zapier checks for new data on a schedule (depending on your plan, could be every 15 mins, 5 mins, or 1 min). You can wait, or go to your Zap's page in Zapier and click the "Run" button (usually looks like a play icon) to force it to check immediately.
-
Monitor the Zap history: After triggering, go to your Zap's history in Zapier. Watch the steps execute. Did they all succeed? If a step fails, click on it to see the error message. This is your debug central.
-
Check the output:
- Check your Google Drive folder for the new PDF. Is the filename correct? Open it – is the data filled in correctly? Is the formatting okay?
- Check the recipient's email inbox. Did the email arrive? Is the subject correct? Is the body personalized? Is the PDF attached and downloadable?
- Check your Baserow table. Did the Status field update for the row you just added?
-
Troubleshooting tips:
- Zap failed at fill step: Double-check your placeholder names in the Google Slides template. Are they exactly {{like this}}? No extra spaces? Do the names in Slides exactly match what you mapped in Zapier Step 3?
- Zap failed at upload/convert step: Ensure Step 4 is correctly pointing to the output of Step 3 (the filled presentation). Check you selected "PDF Document" for the conversion.
- Email sent but no attachment: Ensure Step 5 is correctly pointing to the output of Step 4 (the PDF file itself).
- Data is wrong: Go back to Zapier Step 3 (Fill) and Step 5 (Email) and carefully re-map the Baserow fields ({{1__FieldName}}) to the correct input boxes.
- Zap not triggering: Ensure the Zap is ON. Ensure you're adding data to the exact Baserow table/view that the Zap is watching. Check your Zapier plan's trigger frequency.
6: Scaling & maintenance
Now, a few thoughts on keeping it running smoothly.
- Monitor: Regularly check your Zap history, especially when you first deploy it for a large batch. Zapier will notify you of errors, but a quick check helps catch issues early.
- Error handling: What happens if an email bounces? Or if a row is added with missing data (like no email address)? Your Zap will likely fail. You could build in more advanced steps (using Zapier Filters, Paths, or error handling actions) to catch these scenarios, maybe sending you an email notification or updating the Baserow status to "Error - Missing Email."
- Batch processing: If you're certifying many people at once, adding rows in batches to Baserow is exactly how this system works. Just dump the data in, and watch the Zap run. Your Baserow Status field is key here – you can filter your Baserow table to only show "Pending" rows or review "Sen” ones.
- Baserow data source: Ensure that the upstream process reliably gets the necessary data into your Baserow Graduates to Certify table with the correct field names.
Conclusion
You did it! You've built a powerful, automated workflow that takes data from Baserow, crafts a personalized certificate using Google Slides, saves it in Google Drive, and emails it out via Outlook or Gmail, all orchestrated by Zapier.
Think of the hours you've saved. Think of the consistent, error-free delivery. This is the kind of automation that truly empowers you to focus on the bigger, more human aspects of your work, rather than repetitive tasks.
This framework is adaptable too. You can tweak the Google Slides template for different certificate types, modify the email text, or even add more steps (like sending an internal notification in Slack when a certificate is sent).
So, next time a new graduate row pops up, lean back and let automation do the busy work.
Congratulations on building your certificate factory!
ABOUT ME
I'm Juliet Edjere, a no-code professional focused on automation, product development, and building scalable solutions with no coding knowledge.
I document all things MVP validation and how designs, data, and market trends connect.
Click. Build. Launch.
Visit my website → built with Carrd and designed in Figma