SnapPDF + Dropbox
Auto-compress submissions over a size threshold; bulk-process folder drops.
The Dropbox integration ships as a Dropbox Extension (shows up in the right-click menu) plus file-request automation. Classic use case: a customer submits files via a Dropbox File Request; if any PDF is over 25MB, SnapPDF auto-compresses it before the ingest pipeline picks it up. Also supports folder-watched batch processing and the same right-click op experience as Drive.
What you can build
- Right-click Dropbox Extension for all 15 ops.
- File Request auto-compress: any PDF over threshold is shrunk on arrival.
- Dropbox Paper integration: attach a PDF to a Paper doc → action SnapPDF in the side panel.
- Folder-watched triggers, same model as Drive.
- Business + Enterprise Dropbox: run ops under a team admin account.
Setup
- 01Install the Dropbox ExtensionDropbox App Center → search "SnapPDF" → Install. Personal and Business workspaces both supported.
- 02Authorize and linkOAuth flow grants SnapPDF `sharing.read` and `files.content.write` on the folders you pick. No global Dropbox access.
- 03Set up a file-request ruleSnapPDF dashboard → Integrations → Dropbox → File Request Rules. Point at a File Request link, set op (compress), set threshold (e.g. 25MB).
- 04Try a right-click opRight-click any PDF in Dropbox → Open with... → SnapPDF. Pick op, hit Run. Output appears alongside the original.
- 05Configure folder watch (optional)Same dashboard, File Watches section. Picks up new files every 60s.
Code example
Dropbox webhook → SnapPDF compress if > 25MB. Illustrates the underlying flow the integration wraps.
// Dropbox webhook fires on file change
app.post('/dropbox-webhook', async (req, res) => {
res.status(200).end(); // ack immediately
const changes = await dropbox.filesListFolderContinue({ cursor: req.body.cursor });
for (const entry of changes.result.entries) {
if (!entry.name.endsWith('.pdf')) continue;
if (entry.size < 25 * 1024 * 1024) continue;
const { result } = await dropbox.filesDownload({ path: entry.path_lower });
const compressed = await snap.pdf.compress({
file: result.fileBinary,
level: 'high',
stripMetadata: true,
});
await dropbox.filesUpload({
path: entry.path_lower,
contents: compressed.pdf,
mode: { '.tag': 'overwrite' },
});
}
});Known limits
- · Dropbox caps API payloads at 150MB; above that we route through async.
- · Webhooks can lag up to 3 minutes for some account tiers.
Pricing notes
Dropbox integration free on every plan. Ops count against your plan quota.
Available from the Free plan.
FAQ
Will this overwrite the customer's original file?
By default the rule appends a suffix. There's a "replace original" toggle — use it only when you're sure lossy compression is fine.
Does the integration work with Dropbox Team folders?
Yes, as long as the installing user has edit rights on the folder. Team admin can install org-wide.
What about Dropbox Sign documents?
Dropbox Sign (formerly HelloSign) stores signed PDFs in a special folder. The integration treats them like any PDF — but note that processing a signed PDF with a non-appearance op will invalidate the visible signature. Stick to compress/metadata/extract.
Rate limits?
Dropbox API is tight on deep traversal calls. File-request and folder-watch are fine; ad-hoc right-click ops have no trouble.
How does this interact with Smart Sync?
Online-only files are fetched on demand. Expect an extra 1-2s for the first op on a deeply-offloaded file.