Skip to content

Two-way sync

Everything else moves files one way: Salesforce writes, SharePoint stores. Two-way sync closes the loop. When someone drags a file into a SharePoint library, renames it, moves it, or deletes it, that change appears on the Salesforce record without anyone re-uploading anything.

The direction is SharePoint to Salesforce. Sliick already puts files into SharePoint, and sync is about picking up the changes your users make on the SharePoint side. Pushing Salesforce metadata back out to SharePoint is not part of it.

  • A file added in SharePoint appears on the matching record.
  • A file edited updates in place. No new Sliick version row is created: SharePoint keeps its own version history, and duplicating it would just be noise.
  • A rename or a move between record folders updates the name, or repoints the file to the new record.
  • A delete removes the file from the record and parks it in the admin Deleted Files tab, restorable from SharePoint’s own site recycle bin. See Deleted files and restore.
  • A move out of the folders Sliick manages is treated as a delete. The link goes away, the SharePoint file itself is untouched, and moving it back re-syncs it.

Sliick does not poll on a timer. Microsoft Graph notifies Sliick when something changes in the library, and Sliick then asks Graph for the exact list of what changed since last time. There is also a Refresh button on the file list that pulls immediately: in live testing, a file dropped into SharePoint showed on the record about two seconds after pressing it.

Two-way sync requires Sliick Files 3.7 or later, and is switched on per org by Sliick. Contact Sliick and ask for two-way sync to be enabled for your org. Until it is, the Sync tab is visible but its controls stay disabled, with a notice saying so.

Once it is on:

  1. Open the Sliick Files Storage Setup app and click Sync in the left rail.
  2. Turn on Enable two-way sync.
  3. Click Save Sync Settings.

That is the entire setup. Saving registers the connection to Graph for you, runs a one-time scan of the managed folder to pick up files that are already there, and starts tracking changes from that point on.

Turning two-way sync off again removes the Graph connection.

There is genuinely nothing else to configure, which is worth stating plainly because it is the opposite of what the rest of SharePoint setup has trained you to expect:

  • No new Graph permissions. The Sites.Selected grant already covers it.
  • No new Named Credential, External Credential, or Auth Provider. Sync runs over the connection you already configured.
  • No new Remote Site Settings.
  • No permission set changes. Sliick Files Admin and Sliick Files User already cover it.
  • No scheduled job to activate. See below.

Two-way sync needs Service Principal mode. In per-user (Delegated) mode the toggle is disabled, because org-wide sync needs one fully privileged identity and per-user sign-ins cannot provide one. Viewing a record still keeps its file list current under the viewing user’s own SharePoint access. See Set up Delegated mode.

Sliick maps a SharePoint file back to a Salesforce record by its folder. The folders Sliick creates are named {Record Name} - {recordId}, and that record ID is what the match is made on.

A file dropped somewhere else in the library, at the root or in a folder someone made by hand, has nothing to match against, so sync skips it. It writes one line to the Storage Log with status Skipped and moves on. Nothing breaks and nothing queues up for you to sort out later.

The fix is the obvious one: move the file into the right record folder in SharePoint. Sync sees the move and picks it up as a normal add. If you are rolling sync out to a team, this is the one thing worth telling them up front, because a file that “didn’t sync” is nearly always a file that is not in a record folder.

The connection Graph uses to notify Sliick expires, so something has to renew it. Most integrations solve this with a scheduled job. Sliick does not need one, on purpose.

Sliick tracks where it got to in the library, and that makes a lapsed connection lossless: even if notifications stop arriving for a while, the next pull still enumerates everything that happened in the gap. So renewal rides on attention instead of a clock. Opening a file list, loading the gallery, or any call that lists files renews the connection if it is within a week of expiring. Connections last 28 days.

The one consequence to understand: in an org where SharePoint changes but nobody opens a record for weeks, the Salesforce side sits stale until someone looks. Nothing is lost, it is just delayed to the moment it starts mattering. The Storage Diagnostics page shows a warning if a subscription has lapsed.

One more caveat: Graph batches up its notifications, so a change made in SharePoint can take a few minutes to appear on its own. Press Refresh if you want it now.