SnapPDF + Google Drive
Right-click any PDF in Drive → SnapPDF → pick an op. Output saves to the same folder.
The SnapPDF Drive add-on integrates directly with Drive's right-click context menu. Right-click any PDF and pick an op; SnapPDF runs it and saves the result back to the same folder with a suffix (e.g. `-compressed`). Perfect for ops teams that live in Drive and don't want to leave the file manager. Also exposes a Drive trigger for automation scenarios (new file in folder X → auto-OCR).
What you can build
- Right-click actions on .pdf files: 15 ops, each configurable via a sidebar panel.
- Folder-watch trigger: run an op automatically when a new PDF lands in a designated folder.
- Output lands in the same folder by default; optional custom output folder per trigger.
- Batch select multiple PDFs → merge in one action.
- Delegate to service account for team-wide automated processing.
Setup
- 01Install from the Google Workspace MarketplaceSearch "SnapPDF" or visit workspace.google.com/marketplace. Install for yourself or for your whole workspace (admin).
- 02Authorize Drive scopesThe add-on requests `drive.file` (per-file access, the minimum) plus `drive.readonly` if you enable folder watches. Review the scopes carefully.
- 03Link your SnapPDF accountFirst use triggers an OAuth link flow to your SnapPDF dashboard. Select which key/org to bind.
- 04Try a right-click actionIn Drive, right-click any PDF → SnapPDF → Compress. The sidebar opens with options (level: low/medium/high, strip metadata, etc.). Hit Run.
- 05Set up a folder watch (optional)SnapPDF dashboard → Integrations → Google Drive → Folder Watches → New. Pick a folder, pick an operation + options. Every new PDF gets processed automatically.
- 06Enable service-account mode (team)For workspace-wide automation, delegate a GCP service account from SnapPDF dashboard. Ops run under the service account — useful when individual users shouldn't see the files.
Code example
Apps Script snippet illustrating the underlying API the Drive add-on uses.
function compressOnUpload(e) {
const file = DriveApp.getFileById(e.fileId);
const blob = file.getBlob();
const response = UrlFetchApp.fetch('https://api.snappdf.dev/api/v1/compress', {
method: 'POST',
headers: { Authorization: 'Bearer ' + SNAPPDF_KEY },
payload: {
file: blob,
level: 'high',
stripMetadata: true,
},
});
const compressed = response.getBlob().setName(
file.getName().replace('.pdf', '-compressed.pdf')
);
file.getParents().next().createFile(compressed);
}Known limits
- · Folder watches poll every 60s — near-real-time, not instant.
- · Google imposes a daily quota on the add-on's Drive API calls; rarely hit in practice, but sharp in very high-volume shops.
Pricing notes
Drive integration is free. All processed PDFs count against your SnapPDF plan quota normally.
Available from the Free plan.
FAQ
What permissions does the add-on need?
The minimum viable is `drive.file` (per-file access granted when you click). Folder watches require `drive.readonly` on that folder. No workspace-wide `drive` scope is requested.
Does Google see the PDF content?
Drive stores your PDFs; that's by definition. SnapPDF fetches a copy, processes it, returns the output, and discards its working copy. Nothing is stored at SnapPDF beyond the request lifetime.
Can I run ops in the Shared Drive of another organization?
Yes, provided you have edit access to the file. Shared Drives use the same `drive.file` scope.
What happens if the output would overwrite an existing file?
By default, SnapPDF appends a suffix and a timestamp. Configure "overwrite" behavior per-trigger if you prefer to replace files in place.
Is there a file-size limit?
Drive caps uploads at 5TB; SnapPDF syncs max 100MB sync / 2GB async. Above 100MB we route through async automatically.