SnapPDFSnapPDF
integration · storage · live

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

  1. 01
    Install the Dropbox Extension
    Dropbox App Center → search "SnapPDF" → Install. Personal and Business workspaces both supported.
  2. 02
    Authorize and link
    OAuth flow grants SnapPDF `sharing.read` and `files.content.write` on the folders you pick. No global Dropbox access.
  3. 03
    Set up a file-request rule
    SnapPDF dashboard → Integrations → Dropbox → File Request Rules. Point at a File Request link, set op (compress), set threshold (e.g. 25MB).
  4. 04
    Try a right-click op
    Right-click any PDF in Dropbox → Open with... → SnapPDF. Pick op, hit Run. Output appears alongside the original.
  5. 05
    Configure 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.

Start freeRead the quickstart

Related integrations