SharePoint (Microsoft Graph) to Salesforce Data Cloud UDLO: 0-Record Ingestion Fix

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

  1. 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
  2. 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
  3. 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:

  1. Get the site ID (for the host’s root site or the explicit site path if you’re on a subsite).
    • Root site pattern: GET /v1.0/sites/{hostname}
    • Path-based (only if there’s a real /sites/{name} path): GET /v1.0/sites/{hostname}:/sites/{site-path} Microsoft Learn
  2. 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,webUrl Libraries are exposed as drives. Pick the one that actually contains your content (often “Documents” or “Shared Documents”). Microsoft Learn
  3. 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:/content Path 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
  4. Or enumerate a folder if you have a folder item ID: GET /v1.0/drives/{drive-id}/items/{item-id}/children This returns the folder’s children; value: [] means “no items at that location.” Microsoft Learn

Line it up in Data Cloud

  1. 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
  2. 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
  3. 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