How to Fill and Email a PDF Attachment from Google Sheets Using PDF.co and Zapier
Adding PDF attachments to multiple emails consumes a lot of time. This tutorial shows how to create a personalized PDF from information added to Google Sheets and send the completed document as an email attachment. PDF.co fills a PDF form with the spreadsheet data, while Zapier manages the automated workflow.
What You’ll Need
Before starting, prepare:
- A Zapier account
- A PDF.co account
- A Google Sheets spreadsheet
- A fillable PDF template available through a direct URL
- A Gmail account or another email application supported by Zapier
Workflow Overview
The completed Zap will:
- Detect a new row in Google Sheets.
- Map the row values to fields in a fillable PDF.
- Generate the completed PDF with PDF.co.
- Send the PDF as an email attachment.
Step 1: Prepare the Google Sheet
Create a spreadsheet containing the information required for the PDF and email.
For example, your worksheet could contain these columns:
- Recipient Email: customer@example.com
- First Name: John
- Last Name: Smith
- Address: 123 Main Street
- Email Subject: Your completed form
- Email Message: Please find your completed form attached.
The column names should clearly identify the values that will be mapped into the PDF and email.
Add at least one complete sample row before configuring the Zap. Zapier will use this row when testing the workflow.
Avoid inserting blank rows within the active data range or changing the column headers after configuring the Zap.
Step 2: Create the Zap
Sign in to Zapier and create a new Zap.
Give the Zap a descriptive name, such as:
Fill and Email PDF Forms from Google Sheets
Step 3: Configure the Google Sheets Trigger
Select Google Sheets as the trigger application.
Choose New Spreadsheet Row as the trigger event. This starts the workflow whenever a new row is added to the bottom of the selected worksheet.
Connect your Google account and configure the trigger:
- Spreadsheet: Select the spreadsheet containing your recipient and form data.
- Worksheet: Select the worksheet Zapier should monitor.
Zapier also provides New or Updated Spreadsheet Row for workflows that should run when a row is added or changed. If you select that event, configure a trigger column so the Zap runs only when the appropriate value is added or updated.
The available Google Sheets triggers are listed in the Google Sheets integration directory.
Step 4: Test the Trigger
Test the Google Sheets trigger.
Zapier should retrieve the sample row and display each column as a separate output field. Confirm that the recipient’s email address, form values, subject, and message are present.
If a column is missing:
- Confirm that the column has a header.
- Add a value to the sample row.
- Refresh the fields in Zapier.
- Test the trigger again.
Step 5: Add the PDF.co Action
Add an action and select PDF.co.
Choose PDF Filler as the action event. This action can fill existing PDF form fields and return a URL for the generated PDF.
Connect your PDF.co account using OAuth:
- Select Connect a new account.
- Sign in to PDF.co.
- Review and authorize the requested access.
- Return to Zapier and select the connected account.
Step 6: Configure PDF Filler
Configure the PDF.co action with the following settings.
Source File URL
Enter the direct URL of the fillable PDF template.
The URL must be accessible to PDF.co and point to the actual PDF file. A link that opens only a browser preview or requires an interactive sign-in may not work.
Fillable Form Fields
Add an entry for every PDF field you want to populate. For each entry, specify the PDF field name and map its value from the Google Sheets trigger.
The PDF field names must match the internal field names defined in the fillable PDF. They may differ from the labels displayed visually on the document.
If the action asks for a page number, use the page containing the corresponding field. PDF.co page indexes generally begin with 0, so the first page is page 0.
File Name
Enter a meaningful output filename. Spreadsheet values can be included to make each document unique.
For example:
Completed_Form_John_Smith.pdfYou can construct this value by combining static text with the First Name and Last Name fields from Google Sheets.
Optional Settings
Configure options such as automatic trimming or custom profiles only when required by the document.
The current PDF.co action fields are listed under PDF Filler in the PDF.co Zapier integration directory.
Step 7: Test the PDF.co Action
Test the PDF.co action.
A successful test should return a URL for the completed PDF. Open the URL and verify that:
- Each value appears in the correct form field.
- No required fields are empty.
- Text is displayed correctly.
- The output filename is appropriate.
- The document opens without errors.
PDF.co output links are temporary, so the generated file should be used or copied to permanent storage while the link remains active.
Step 8: Add the Email Action
Add another action and select Gmail or your preferred email application.
For Gmail, choose Send Email as the action event and connect the account that will send the messages.
Configure the email:
- To: Map the Recipient Email value from Google Sheets.
- From Name: Enter the sender’s name or organization.
- Subject: Map the Email Subject value or enter a standard subject.
- Body: Map the Email Message value or compose a standard message.
- Attachments: Map the PDF URL returned by the PDF.co action.
Make sure the Attachments field receives the PDF.co result URL, not the source template URL.
You can combine spreadsheet values with static text. For example:
Hello John,
Please find your completed PDF form attached.
Best regards,
Customer SupportIn this example, John can be mapped dynamically from the First Name column.
Step 9: Test the Email
Test the email action and check the recipient’s inbox.
Verify that:
- The message was delivered to the correct address.
- The subject and body contain the expected information.
- The completed PDF appears as an attachment.
- The attachment opens successfully.
- The PDF contains data from the correct spreadsheet row.
Step 10: Publish the Zap
Review each step and publish the Zap.
The workflow will now run whenever a new row is added to the selected Google Sheets worksheet.
For the most reliable results, add the complete row at once. Zapier may trigger before all information is available if values are entered gradually across several columns.
Optional: Track Processing Status
You can add a Status column to the spreadsheet and include an Update Spreadsheet Row action after the email step.
For example, update the row with:
SentYou can also store:
- The PDF.co result URL
- The date the email was sent
- The recipient address
- An internal document identifier
If the workflow uses New or Updated Spreadsheet Row, configure its trigger column carefully so updating the status does not start the Zap again.
Troubleshooting
The Zap does not detect the spreadsheet row
Confirm that the row was added below the existing data and that the selected spreadsheet and worksheet are correct. Retest the trigger using a complete sample row.
PDF.co cannot access the template
Use a direct, publicly accessible file URL or a supported storage link that allows PDF.co to download the file.
A PDF field remains empty
Confirm that the internal field name is correct and that the corresponding spreadsheet column contains a value.
The email contains the unfilled template
Map the PDF.co output URL into the email’s Attachments field. Do not map the source PDF URL.
The workflow runs before the row is complete
Use New or Updated Spreadsheet Row with a dedicated trigger column such as Ready to Send. Enter Yes in that column only after the other values have been completed.
Conclusion
You have created a Zap that monitors Google Sheets, fills a PDF form with the new row’s data, and emails the completed PDF as an attachment. This workflow is useful for automatically delivering applications, agreements, certificates, onboarding documents, customer forms, and other personalized PDFs.
Related Tutorials

