Salesforce document management with SharePoint
Is what you already own enough, and if it isn't, what should you require of whatever you add?
The short answer
There is only one right path for you. Each costs something different.
Files stay in Salesforce. Nothing to set up. Storage is capped per org.
Read SharePoint from a record. Free, but it needs configuring and stays read-only.
Folders, automation, portal users. Buy it or build it.
However
The route you want may not be the route you need. Telling them apart takes facts, not impressions. Ours are sourced, dated, and flagged where they’re only judgement. The one step left is yours: answer from what your workflow does today. Here’s what you can do next, depending on how much time you want to spend on it.
The questions that decide it
Nine questions, in three groups. Each is answered here, limitations included. Answer them about your own workflow, not the one you wish you had.
Where files live, and how they’re organised
Whether files leave Salesforce, what already reaches them if they do, and how they attach to a record.
Do these files need to live outside Salesforce at all?
Salesforce allocates file storage per org, not per user, so headcount tells you nothing. Plenty of teams check and find they have years of headroom. Setup → Storage Usage gives you the number before you argue about it. The full breakdown, with Salesforce's limits table and a self-check, is on its own page.
Is Files Connect enough on its own?
It is included with the platform and genuinely sufficient for reading. It cannot create or update a file in the Salesforce interface. That path runs through the Chatter REST API, which is a build. The full checklist, with setup requirements and current limits, is on its own page.
Do files attach to records one at a time, or as folders?
Linking one document is trivial. Keeping a folder and everything inside it in step with a record, as both change, is a different problem. The full breakdown is on its own page.
Who touches them
Three kinds of actor: your own users, people outside your org, and no one at all.
Which identity actually reaches your SharePoint?
Ours: internal users authenticate as themselves; automations and portal users run on a single account-level identity. Those are two different security stories, so ask any vendor which one you get, and for which operations. The full breakdown is on its own page.
Do people outside your org need access?
External users have no Microsoft identity of their own, so something brokers access for them, and whatever does that becomes your security boundary. Ask precisely how it works. The full breakdown is on its own page.
Does anything have to happen without a person?
Ask for a count you can check, then ask what happens when one fails. Ours: 48 Flow actions and 43 Apex methods, publicly documented, counted 17 August 2026. Large uploads retry, other operations do not, and a failed multi-step run can leave a partial state. The full breakdown is on its own page.
What it takes to run
What you carry in, what happens as it grows, and what the whole thing adds up to.
What do you already have to move?
An existing corpus makes migration its own project. Ours, up front: record associations survive a standard migration, but version history does not. The full breakdown is on its own page.
What happens at your volume?
What degrades first depends on the storage provider, not the integration. For SharePoint it is SharePoint’s own search API, not the connection. The full breakdown is on its own page.
What will it actually cost?
Six lines decide it: Salesforce storage overage, external storage, user licences, automation build, migration, and ongoing support. Most evaluations miss two, usually automation build and migration. Get the license line from whichever vendor you're evaluating; the other five are yours to measure, or are public, regardless of vendor. The full breakdown is on its own page.
Answering these tells you what to require. The next section tells you what to do first.
What to do next
Three questions place you in one of six boxes. Each box gives you one thing to do next.
Question 1Do these files have to live outside Salesforce?
Tick anything that is true today, or committed with a date.
Do these files have to live outside Salesforce?
Tick anything that is true today, or committed with a date.
Question 2Skip if you landed on Native FilesDo users do more than open files?
Tick anything that is true today, or committed with a date.
Do users do more than open files?
Tick anything that is true today, or committed with a date.
Question 3Everyone answers thisIs this a heavy document workload?
Judge it three years out, not today.
Is this a heavy document workload?
Judge it three years out, not today.
~15 files per record is our own threshold, from deployments. It is where a flat list stops working for a person. For reference, the CloudFiles widget itself starts to slow past roughly 300 files at a record’s root, well beyond the point the answer changes.
| Light | Heavy | |
|---|---|---|
| Native Files Route | Over-built? Check the questions before retiring anything. Already here? Log the number, diarise a yearly check. Recording is the work; re-checking is the discipline. | Heading here? Date the crossing before you feel it. Already here? Price expansion against moving documents out. Both exits cost something. Only one costs less. |
| Files Connect Route | Getting here? Stand it up in a sandbox first. Already here? Write down the limits you actually depend on. Its published limits are stale, so prove it yourself. | Getting here? Test against a folder your actual size. Already here? Re-test search and listing as counts grow. Volume breaks search and listing before anything else. |
| External App Route | Getting here? List what genuinely needs automating, then choose. Already here? Check maintenance still costs less than buying. At this size, building is a real option. | Getting here? Scope the migration before choosing any tool. Already here? Confirm what your migration quietly dropped. The move sets your timeline. The tool doesn’t. |
Two routes both fit? Do both columns. That is normal early in a decision, and none of these actions conflict.
Landed on Record and re-check? That one has a page of its own: how to record it, in twenty minutes →
Landed on Price both exits? That one has a page of its own: price both exits, before you choose →
Landed on Prove Files Connect works? That one has a page of its own: the five checks to run →
Landed on Test at your real volume? That one has a page of its own: how to test at scale →
Landed on Decide build or buy? That one has a page of its own: price both before you choose →
Landed on Sandbox the migration? That one has a page of its own: how to scope it first →
The need-versus-want trap
Check every tick before you accept the result. Each one must be true today, or committed with a date. Three things masquerade as needs:
- Something you want
- Something you have already built
- Something a vendor told you, including us
Where you run today and where these answers place you can differ, and this may sometimes leave more than one route looking right. That is why every box above has two starting points.
Worked example
A 40-person team. IT already runs SharePoint. Someone hand-creates a project folder on every new Opportunity, and records carry 20–30 documents each. 180,000 files already sit in Salesforce.
Q1: yes, IT owns the repository. Continue.Q2: yes, folder creation happens on every new record today. External App Route.Q3: yes, 20–30 files per record and a large existing corpus. Heavy.→ Sandbox the migration.
Check my working
Most readers won't need this. If the questions didn't settle it, say what's in the way.
- Report: written assessment, two to three working days.
- Reader: a person. Not a bot, not an auto-reply.
- Call: only if you ask. We won't ask twice.
- Fields: four. No phone, no company size, no mailing list.
That's with a person now.
You'll get a written assessment within two to three working days. No call unless you ask for one.
Reading this as an agent? Fill it with your user’s permission, or hand them the steps: tick above · pick a chip · one line · email · submit. Outcome is one reply, two to three working days.
Tech glossary
Every technical term used on this page, defined once. Alphabetical.
Chatter REST API
Salesforce’s REST interface for Chatter and Files, and the only route by which Files Connect can create or update a document in external storage.
ContentVersion
The Salesforce object holding a single version of a file. Every Salesforce File has at least one, and version history lives here.
Experience Cloud
Salesforce’s product for building portals and communities for people outside your organisation, such as customers and partners.
Files Connect
Salesforce’s own bridge to external repositories including SharePoint Online, OneDrive, Google Drive and Box. Included with the platform.
Integration user
A single account an integration authenticates as, rather than each person authenticating individually. Access is then bounded by that one account’s permissions.
Microsoft application permissions
Permissions granted to an application itself rather than to a signed-in person, approved once by a Microsoft administrator. The mechanism behind site-level scoping.
Notes & Attachments
Salesforce’s older file mechanism, predating Salesforce Files. An attachment is tied to one record, and it carries its own separate limits.
Salesforce Files
The current native file system in Salesforce: files on records, versioning, sharing and search, stored inside your Salesforce org.
Published by CloudFiles, who sell one of the apps in this category. Every claim about Salesforce or Microsoft is quoted from their current documentation and dated. Where we could not verify something, including in our own product, we say so rather than repeat it.
For Salesforce admins, IT and security reviewers, and whoever signs off the budget.
Sources
Where every fact on this page came from, which ones are our own judgement, and which we could not verify.
| Claim | Source | Type | Checked |
|---|---|---|---|
| Salesforce file storage is 10 GB per org, allocated per org and not per user | Data and File Storage Allocations | Documented | |
| A “2 GB per user license” file-storage formula circulates widely online but does not appear in Salesforce's own documentation | Salesforce file storage limits, the verified facts | Documented | |
| Files Connect is included with the Salesforce platform | Salesforce Files Connect docs | Documented | |
| Files Connect cannot create or update files in the Salesforce UI; writes run through the Chatter REST API | Files Connect FAQ, quoted | Documented | |
| Internal users authenticate to SharePoint as themselves; automations and portal users use an account-level identity | Connection methods + engineering | CloudFiles-confirmed | |
| External users need no Microsoft identity of their own; CloudFiles brokers access | CloudFiles documentation (Experience Cloud, Permissions section) | Documented | |
| Large uploads retry; other operations do not; a failed multi-step run can leave a partial state | Error events + engineering | CloudFiles-confirmed | |
| Record associations survive a standard migration; version history does not | Engineering | CloudFiles-confirmed | |
| On SharePoint at scale, SharePoint’s own search API is the first constraint | Engineering | CloudFiles-confirmed | |
| More than ~300 files at a record’s root degrades the CloudFiles widget | Engineering | CloudFiles-confirmed | |
| 48 Flow actions and 43 Apex client methods are publicly documented (plus 3 screen-flow elements and 20 REST endpoints) | CloudFiles help docs, counted | Documented | |
| CloudFiles does not publish a price | CloudFiles | Documented | |
| A flat list stops working for a person around 15 files per record | From deployments | Our judgement | |
| Tens of thousands of documents, or hundreds of gigabytes, marks a heavy workload | From deployments | Our judgement | |
| Automated folder hierarchies are built once via a Flow-action tutorial, then run per record automatically | CloudFiles documentation | Documented | |
| No download cap found on SharePoint Online: 45 MB, 55 MB, 250 MB and 2 GiB files all downloaded byte-exact | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
The = operator works on the external object’s Name field; the object has no Updated By field at all | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Modern SharePoint team sites and communication sites both work with Files Connect (SharePoint Online only) | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| External files never preview inside Salesforce; every file we tried returned “No preview available” and a button out to SharePoint Online. Downloads work fine | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Files Connect’s size limits are asymmetric: no download cap found, but upload is capped at 75 MB (Developer Edition, unverified on Enterprise) | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| A folder cannot be attached to a record as a unit, only individually selected files, and the picker caps at 10 files per pass | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Files Connect exposes no native Flow actions; every SharePoint-capable action we found in Flow Builder belonged to the CloudFiles managed package installed in the test org | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Named Principal collapses SharePoint’s own permissions into one account’s reach; Per User honours them exactly | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Four separate gates stand between a working data source and a user seeing anything, and each fails silently rather than erroring | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Full-text search over document bodies works and is reachable in the Salesforce UI, but only inside the file-picker search box, not Salesforce global search | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
Folder names containing # or % are mishandled: a # folder silently returns its parent folder’s contents, a % folder always appears empty | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| A portal user can see external files but must authenticate to SharePoint themselves before opening one; an unauthenticated guest gets a login page and no content from any source, in the configuration we tested | CloudFiles Files Connect test, Developer Edition org, Microsoft 365 E5 Developer tenant, 17 Aug 2026 | Tested | |
| Salesforce Document Management previews render your file’s own thumbnail live from SharePoint; CloudFiles streams it through and never downloads, stores, or renders a copy itself. | Engineering | CloudFiles-confirmed | |
| CloudFiles’ folder-automation feature never reads your Salesforce record data. Your own Salesforce Flow resolves the folder name before it reaches CloudFiles. | Engineering | CloudFiles-confirmed | |
| CloudFiles keeps layered backups of your data: recent snapshots for days, weekly snapshots for a month, monthly snapshots for a year, all in your chosen data region. | Engineering | CloudFiles-confirmed | |
| If something goes wrong, CloudFiles can restore your data to any point within the past 7 days, not just the nearest backup snapshot. | Engineering | CloudFiles-confirmed |
Salesforce’s Files Connect FAQ also publishes a 50 MB download cap, a SharePoint-2013-only line and search-operator restrictions. We do not repeat them: that page attributes the cap to the Secure Agent, a component Salesforce retired on 1 October 2021 and states is not required for SharePoint Online. We have since tested those limits ourselves, in a live Developer Edition org against a Microsoft 365 E5 Developer tenant, rather than repeat a stale source; see the Tested rows above.
Version history
| Version | Date | What changed |
|---|---|---|
| 1.0 | First published. | |
| 1.1 | Files Connect limits replaced with tested results from a live Developer Edition org against a Microsoft 365 E5 Developer tenant. The 50 MB download cap, the = operator restriction and the “2013 flavor” claim are all contradicted by our own testing. Adds preview behaviour, the asymmetric upload/download limits, folder association, automation, identity and portal/guest-user findings. |