Salesforce is a cloud-based powerful CRM that enables companies to optimise entire business processes like Sales, Service, Marketing and more. Salesforce has a lot of advanced and robust features, but it does have certain limitations in its non-core functionalities. As a solution provider, we always aim to optimise processes and costs without compromising the platform and solutions we developed around it. One of these supporting functionalities is managing documents and that brings us to the main reason for integrating Salesforce and SharePoint.
In this blog, we will explore the benefits of integrating Salesforce and SharePoint and a step-by-step guide to carrying this out.
What are the limitations of managing documents within Salesforce?
Salesforce provides a set of standard functionalities (Attachments, Files, CRM contents etc) to upload and maintain documents. As Salesforce is not a document management software, it comes with certain limitations.
File Size: Salesforce offers two options for uploading documents – “Attachments” that allows us to upload of documents up to 25 MB size, and “File” that allows us to upload of documents up to 2 GB size. Document management on a large scale will increase storage costs and may impact the performance of the system over a period of time due to the multitenant architecture of the platform.
Document accessibility and data privacy: Sharing documents from Salesforce with non-Salesforce users is possible only via a public URL. This is not the best option, especially if we are sharing sensitive documents which might also create issues with GDPR compliance. So if we want to enable quick and efficient collaboration whilst protecting our information, we’d have to acquire additional licenses for the non-Salesforce users.
Real-time syncing: Changes in a file made within the user’s local drive will not be automatically synced with the same file in Salesforce and vice versa. The user will have to upload/download and replace the existing file with the new version.
What are the advantages of integrating Salesforce and SharePoint?
SharePoint is a web-based collaborative tool, best known for its document management and storage capabilities.
Integrating Salesforce with SharePoint will increase your storage capacity, enabling us to overcome Salesforce’s limitations. Some of the most important advantages are:
- Reduced operating costs
- Enhanced user experience and increased efficiency by using one drive and SharePoint features
- Improved data protection and GDPR compliance
- Elimination of versioning issues
- Better collaboration
High level approach to integrating Salesforce and SharePoint
SharePoint and Salesforce integration can be done via inbuilt tools available in the market, or a custom solution built. Here, we are going to discuss the latter, custom built option as it will help us build a solution to address problems and issues specific to our business.
Few important features of the customised solution:
- There is no major change in the current view. Users have almost similar view of the files as shown below:
- Enhanced user experience and increased efficiency by using one drive and SharePoint features.
- Migrate all the existing documents from Salesforce to SharePoint.
- The developed component will be reusable by SF admin.
Below is the high-level design approach for the integration:
Implementation at SharePoint Online:
- Create a document library on SharePoint online site.
- Authenticate via oAuth.
- Document will be uploaded on to location / folder via the provided document URL. The folder can also be created during the upload of the file, if the folder doesn’t exist.
- It will return the SharePoint URL for the uploaded document.
- Processing will be done via client-side code.
- Folder structure (sample) as shown below:
- The base folder will be created by the SharePoint admin and the sub folders can either also be created by the SharePoint admin, or before uploading the document from Salesforce to SharePoint.
Implementation in Salesforce:
- Create a Lightning component named UploadFileOnSharePoint which will accept the Parent Object Name and Parent Record Id.
- The Lightning component will update the document URL (SharePoint) in a custom object in Salesforce.
- This component will send a request to SharePoint online.
- SharePoint will authenticate the request via oAuth 2.0 and process the request.
- On successful processing the URL of the uploaded document will be returned to Salesforce.
- The details will be updated into the custom object.
- This component can be added on Lightning pages, lightning record pages, standard page layouts, Visualforce pages etc.
Since this component is using OAuth 2.0 authentication to connect with SharePoint online, access within Salesforce will be maintained via roles, profiles, permission sets etc.
Other useful links: