How It Works
Back to App
The short version Your browser downloads each file directly from Salesforce and uploads it directly to Google Drive. Our server is only ever involved in the two login handshakes - it never sees your files, and never stores your access tokens.

Before you start (one-time, per Salesforce org)

An admin needs to add MigrateStream's origin to the org's CORS allowlist, and install the Connected App - both one-time, org-wide steps. See Set Up MigrateStream for the exact click paths and what the errors look like if either is skipped.

The migration flow

  1. Enter your license key

    A signed key your Satrang Technologies contact provides, verified entirely inside your own browser - it is never sent anywhere to be checked. Nothing else is usable until this passes.

  2. Connect Salesforce

    A standard OAuth login redirect to Salesforce's own login page. We never see your password.

  3. Connect Google Drive

    A popup opens Google's own consent screen, requesting only the drive.file scope - access to files this app creates or that you pick, nothing else in your Drive.

  4. Choose which files, and where they go

    Pick a scope (all files, or by object, with live counts), optionally narrow it with your own SOQL filter, and refine the exact file list if needed. Choose a destination folder via Google's own folder picker.

  5. Optionally, map files into subfolders automatically

    Instead of one flat destination folder, MigrateStream can create one subfolder per linked record - for example, one subfolder per Account, named by whichever field you choose. Files with no matching parent record land in a shared "Unfiled" subfolder instead of being skipped.

  6. Your browser does the moving

    For each file: your browser downloads the file bytes directly from Salesforce, then uploads those same bytes directly to Google Drive. The bytes pass through your browser's memory only - never through any Satrang server.

  7. Skip already-migrated files automatically

    Every uploaded file is tagged in Google Drive itself (not on any server we run), so re-running a migration - to pick up new files, or resume after stopping partway - automatically skips files already migrated there, matched by the file's own identity rather than its name.

  8. Download your report

    A CSV report of everything migrated, skipped, or failed, built entirely from what your browser observed during the run - nothing is reconstructed from server-side logs, because there are none.

Why this matters

Because file content never passes through a server we control, there is nothing on our side to secure, retain, or accidentally leak - your files simply never arrive here. The same is true of your Salesforce and Google access tokens: they exist only in your browser tab's memory for the duration of your session, and disappear the moment you close it.

Your license key follows the same principle: it is a cryptographically signed piece of text, not a login and not a record on any Satrang system - your browser checks it itself, against a public key, the moment you paste it in. It can be scoped to your specific Salesforce org(s) and Google account(s), and its data-cap usage is measured from the migration records already sitting in your own Drive and your own browser. Licences issued from August 2026 onward count only the files migrated under that licence; older ones count everything ever migrated into the destination Google account. Either way, there is no account of yours living on our servers to check it against, and no ledger of yours here either.

Want the full technical detail, including exactly what the two OAuth handshakes do and why? See the Architecture Deep Dive.