π Salesforce to S3 file migration & cleanup
β‘ 150 views Β· π File Management
Description
Salesforce to S3 File Migration & Cleanup
Automate archiving old Salesforce files to Amazon S3, log them back in Salesforce, and free up org storage β all from a scheduled n8n workflow.
π§ How It Works (High-Level)
- Schedule Trigger kicks off (e.g., daily).
- Query Salesforce for
ContentDocumentrecords older than 365 days. - Loop Each File β download binary via REST.
- Upload to S3 with the original filename.
- Lookup Links (
ContentDocumentLink) to keep the parent record reference. - Filter Out Users (ignore
LinkedEntityIdstarting with005). - Create
S3_File__crecord in Salesforce for traceability. - Delete Original File from Salesforce to reclaim storage.
- Notify via Slack when the batch is done.
Screenshot 20250723 135316.png
π Set Up Steps (Time: ~45β90 mins)
- Import n8n Workflow JSON and wire up credentials (Salesforce OAuth2, AWS S3, Slack).
- Install Salesforce Unmanaged Package (Custom Object
S3_File__c, Apex controller, LWC, settings). - Fill
S3Settings__c(bucket, region, keys, expiry) or swap to Named Credentials. - Test with a Sandbox Batch (e.g., small date range) and verify upload/delete.
- Schedule & Monitor (tweak interval, Slack channel).
π Why youβll love it
- πΈ Slash storage costs β offload gigabytes to S3
- π Full traceability β every file still tracked in Salesforce
- π§° Plug & play β import JSON, install package, plug in creds
- π§± Modular & extensible β swap S3, add approvals, build an uploader UI
- β± Set it & forget it β scheduled automation + Slack alerts
π¦ Whatβs Included
- n8n JSON Flow β ready to import.
- Salesforce Unmanaged Package β Apex (
S3FilesController.cls), LWC (s3FilesViewer),S3_File__c,S3Settings__c. - S3 + Salesforce Setup Guide β quick reference for configuring keys, permissions, and the LWC.
All components are editable β extend, replace, or integrate with your own processes.
π§± Requirements
- n8n instance (self-hosted or Cloud) with HTTP Request, AWS S3, Slack, and Salesforce nodes.
- Salesforce org with API access & permission to install unmanaged packages.
- You have to have Query All Files permission. Setup-> Permission Sets / Profile -> App Permission -> Content -> Query All Files. Allows View All Data users to SOQL query all files in the org.
- AWS S3 bucket + IAM user/role with
GetObject/PutObject(and optionalListBucket).
π Nodes Used
HTTP Request, Slack, AWS S3, Salesforce, Schedule Trigger
π₯ Import
Download workflow.json and import into n8n:
Workflow menu β Import from File