Hysen Labs
Framework
b-vamsipunnam/salesforce-files-downloader-tool avatar
b-vamsipunnam

salesforce-files-downloader-tool

Bulk Salesforce Files downloader built with Robot Framework and Python. Supports parallel batches, validated downloads, CI, and Data Loader-ready migration workbooks.

24 stars14 forksRobotFrameworkMIT
DEEP OPEN-SOURCE ANALYSIS

Salesforce files bulk downloader built on Robot Framework

This tool downloads Salesforce files named by ContentDocumentId lists using Robot Framework and Python, with validated output and migration workbooks.

What the downloader does

The Salesforce Files Bulk Downloader is a tool that fetches the files named by Salesforce ContentDocumentId lists. A Salesforce File has one logical ContentDocument record, identified by a ContentDocumentId, plus version and record link data. The tool downloads the current file content to local storage. It does not discover file IDs, and it does not upload files to another org. The stated purpose is to help developers or migration teams review, archive, or prepare those files for a separate Salesforce migration. The README is explicit about that boundary, which keeps the scope narrow and auditable. The implementation sits on Robot Framework, the task runner behind the robot command, together with browser and Excel libraries used by the downloader. The README badges show Robot Framework 7.4.2, Python 3.10 or later, the Salesforce CLI, and a CI workflow. Because the work is driven by Robot Framework test suites, the same run that downloads files also produces logs and reports in the standard Robot Framework format, which makes the process repeatable and inspectable. For a migration team, that repeatability matters as much as the download itself, since the output can be re-run and compared. The tool is not a general Salesforce backup solution; it answers the specific question of getting a known set of file IDs onto local disk with validation, leaving discovery and re-upload to other steps in the migration plan.

Setup and authentication

Getting started requires Git, Python 3.10 or later, Google Chrome, the Salesforce CLI (sf), a spreadsheet editor that saves xlsx files, a Salesforce user who can use the API and read the requested file records, and enough local disk space for downloads and reports. After cloning the repository, the user creates a virtual environment, activates it, and installs the requirements file, which brings in Robot Framework and the browser and Excel libraries. Authentication uses the Salesforce CLI. The user picks a short local name, an org alias, and runs sf org login web with that alias, then sf org display to confirm a status of 0. A Robot Framework orchestrator then creates a session file, org_info.json, in the repository root. That file contains an access token and is ignored by Git, and the README warns not to commit, print, or share it. Separate documents cover installation per platform, authentication details such as sandbox login and session expiry, and the permissions the Salesforce user needs. The design keeps credentials out of the spreadsheet input and out of version control. A Windows user may need to call sf.cmd instead of sf when PowerShell blocks the ps1 entry point. The separation of authentication into its own robot suite means the download step can assume a valid session file exists, which simplifies the main workflow and keeps token handling in one reviewed place.

Input and validation

The input is an Excel workbook, input/Inputfile_1.xlsx, and the relevant worksheet is named Input. The first cell, A1, holds the ContentDocumentID header, and header matching is case insensitive. Starting at A2, the user pastes one Salesforce file ID per row. The downloader reads that list and fetches each file's current content to local storage. The README notes that the tool also produces Data Loader ready migration workbooks, so the downloaded set can feed a later migration step without manual reformatting. Validation is part of the design: the robot run checks downloads and produces reports, and the CI workflow runs the suites so the behaviour is exercised automatically. Because the tool only acts on IDs the user supplies, there is no risk of it pulling the entire org's files by accident; the blast radius is exactly the rows in the Input sheet. The Excel library dependency is what lets the tool both read the input workbook and write the output workbooks. For a migration team, the combination of a typed ID list, validated downloads, and a Data Loader shaped output reduces the hand editing that usually surrounds a file migration. The README frames the whole thing as review, archive, or prepare rather than as a sync or backup, which matches the single direction, download only, implementation.

Editorial conclusion

The project is published under the MIT license and uses Robot Framework with Python, with its source at the b-vamsipunnam salesforce files downloader repository.

DEEP OPEN-SOURCE ANALYSIS

Official sources

Community notes

Community notes