Fixing “0 Records” in a Salesforce Data Cloud UDLO (with SharePoint): A Step by Step Guide to resolving Salesforce Data Cloud retrieving ‘0’ records from a Sharepoint Connection
If you’ve wired up a Microsoft SharePoint connection for Unstructured Data in Salesforce Data Cloud, mapped your fields, and still see 0 records after a refresh, this guide walks you through the exact checks and fixes—plus a quick way to prove your folder really has eligible files using Microsoft Graph.
The moving parts (quick mental model)
- UDLO (Unstructured Data Lake Object): a reference to files in an external store (e.g., SharePoint). It doesn’t “hold” files; it points to them. Salesforce
- Data Stream: created automatically when you set up the UDLO. It’s what actually “pulls” metadata on a schedule; you can also run it on demand. Salesforce
- SharePoint site + library (“drive”) + folders/files: Graph exposes these via
/sites/{site-id}/drives/{drive-id}/.... You can validate paths and file presence with a few GETs. Microsoft Learn+1
The symptom
UDLO shows 0 records even though you expect PDFs (or other supported types) in the SharePoint location.
Why this usually happens
- You’re pointing at the wrong place in SharePoint (root is empty, different library, or the ID is a drive instead of a folder item). Use Graph to confirm. Microsoft Learn+1
- The UDLO’s Site ID doesn’t match the site where your files actually live. (Example: the file is in the tenant root site but the UDLO is set to a team site.) Salesforce Developers
- Data stream never ran or ran into issues. You must run Refresh Now and check Refresh History for counts and errors. Salesforce+1
Prove the file exists (and where it lives) with Microsoft Graph
Given a SharePoint URL (like the one you shared), convert it to Graph calls:
- Get the site ID (for the host’s root site or the explicit site path if you’re on a subsite).
- List drives (document libraries) on that site to find the correct library name and
drive-id:GET /v1.0/sites/{site-id}/drives?$select=id,name,driveType,webUrlLibraries are exposed as drives. Pick the one that actually contains your content (often “Documents” or “Shared Documents”). Microsoft Learn - Fetch your file by path off the library root (percent-encode spaces):
GET /v1.0/drives/{drive-id}/root:/TCHC%20Cougar%20Mountain%20Lot%201%20Flyer.pdf GET /v1.0/drives/{drive-id}/root:/TCHC%20Cougar%20Mountain%20Lot%201%20Flyer.pdf:/contentPath addressing + encoding rules are covered in the Microsoft docs. If this works, you’ve verified the exact drive and path UDLO must see. Microsoft Learn - Or enumerate a folder if you have a folder item ID:
GET /v1.0/drives/{drive-id}/items/{item-id}/childrenThis returns the folder’s children;value: []means “no items at that location.” Microsoft Learn
Line it up in Data Cloud
- Use the same Site ID you validated with Graph when creating the Microsoft SharePoint (Unstructured) connection & UDLO. That keeps Data Cloud looking at the exact site that holds your files. Salesforce Developers
- Run the data stream manually
- Data Cloud → Data Streams → your SharePoint (Unstructured) stream → Refresh Now.
- Open Refresh History to see Processed/Added and any errors. This is the authoritative place to confirm whether records were picked up. Salesforce+1
- Verify the UDLO
- Data Explorer → your UDLO → confirm the Total Records is > 0 after the refresh. (You should see a row for the flyer PDF if it’s in scope.)
Tip: If you moved the target folder or changed the stream’s scope, a one-time “refresh all” style operation is sometimes needed for file-based connectors; check your connector’s refresh options. (Example guidance is documented for S3—principle is similar.) Salesforce Developers
A minimal troubleshooting checklist
- Graph proves it: You can GET the file by path or see it in a folder’s
/children. If not, fix the SharePoint path/library targeting first. Microsoft Learn+1 - Correct site in UDLO: The UDLO’s Site ID equals the site that contains the file. Salesforce Developers
- Run & read the stream: Use Refresh Now and inspect Refresh History; a “Success (0 processed)” generally means the connector didn’t find any eligible files in scope. Salesforce+1
FAQ
Q: Why did .../root/children return value: []?
A: You likely hit the drive root (which can be empty) instead of the folder that actually holds files, or you used a drive ID when you meant a folder item ID. Use path addressing or items/{item-id}/children at the correct level. Microsoft Learn+1
Q: How do I “force” the UDLO to update?
A: The UDLO itself is just a reference; manually refresh the data stream and check Refresh History to confirm counts. Salesforce
Q: Where do I start if I’m unsure which library I’m pointing at?
A: Always list libraries first: GET /sites/{site-id}/drives → then drill into the chosen drive-id with /root/children or path addressing. Microsoft Learn
Key references
- Microsoft Graph: Address items by ID or path (encoding rules and examples). Microsoft Learn
- Microsoft Graph: List folder children (
/drives/{drive-id}/items/{item-id}/children). Microsoft Learn - Salesforce: Unstructured Data Lake Objects overview (what UDLOs are). Salesforce
- Salesforce: SharePoint connector for unstructured data (setup flow). Salesforce Developers+1
- Salesforce: Data streams—manual refresh & history (Refresh Now, counts). Salesforce+1
Bottom line
If Graph can see the file by the same site and library your UDLO targets, a manual stream refresh plus a quick look at Refresh History is all it should take to flip a UDLO from 0 records to a healthy count. If it still reads zero after these steps, the issue is almost always path/library targeting or connection scope—and the Graph calls above will tell you exactly which.
Schedule your Agentforce Discovery Session Today
1-on-1 Sessions with Agentforce Experts: Elevate your Salesforce CRM Agentforce Experience with Cypress Learning Solutions, Agentforce Innovators
