How to Upload a Document in Salesforce Files Using Rest API

How to Upload a Document in Salesforce Files Using Rest API

Salesforce files

Files are one of the most powerful ways to manage the content documents in Salesforce. It also refers to a content management system. We have many options such as attachments, documents, Salesforce CRM content to upload a file in Salesforce classic but they are not fully supported or at all in Lightning experience. So it is recommended to forget about the familiar Notes and attachments related list and continue with the files related list in the future. In this article, we are going to explain about differences between files and attachments, file sharing settings, and how to upload a document in files using REST API and an example.

Comparing Files and Attachments in Salesforce:

The following are the differences between Files and attachments in Salesforce.

Files

Attachments

Files need to upload, store, find, follow, share, and collaborate on Salesforce files in the cloud. Attach files to records from the Attachments related list on selected detail pages.
We can upload a file and store it privately until you’re ready to share it. We can share the files with groups, users, etc. We can add a file to a specific record such as opportunity, event by attaching it on the Attachments related list.
It supports all file types. It supports all file types.
The maximum file size can be uploaded is 2 GB. The maximum file size uploaded for file attachments is 25 MB and feed attachments Are 2 GB.

File Sharing Settings:

Files can be managed in Salesforce based on the following file sharing settings.

  • Private: The file hasn’t been shared with anyone else besides the owner.
  • Privately Shared: The file has been shared only with specific people, groups, or via link. It’s not available to all users in your company.
  • Your company: All users in your company can find and view this file.

Integrate-Business-Apps-through-APPSeCONNECT

Uploading a document in Salesforce files using REST API

Sometimes there is a requirement to upload a document using REST API. So, the following are the three objects which are used to upload a document in Salesforce files and link it to multiple records.

  • Content Version
  • Content Document
  • Content Document Link

Let’s have an in detailed knowledge of all the above objects.

Content Version:

This object stores the document information similar like Attachments. It contains the information such as content location, path on client, version data, and title.

  • Content Location: It represent the origin of the document and the valid values are:
    • “S”: S-Document is located within the Salesforce.
    • “E”: E-Document is located outside the Salesforce.
    • “L”: L-Document is located on a social network and accessed via Social Customer Service.
  • Path on client: It represents the complete path of the document. In order for the document to be visible in the Preview tab, specify the complete path including the path extension.
  • Version Data: It contains the file content.
  • Title: It represents the name of the file.

Content Document:

It represents a document that has been uploaded to a library in Salesforce Files. There is no need to create this object and it automatically gets created when the content version is created.

Integrate-Business-Apps-through-APPSeCONNECT

Content Document Link:

This object will be used to share the files with users, records, groups etc. The same file can be linked to multiple records by using Content Document Link. It can also provide the facility to assign the users to access the file with certain permissions. It contains the information such as content document, linked entity, sharing type, visibility level.

  • Content Document: It contains the content document id which will be getting when the content version is created.
  • Link Entity: It contains the record id to which the document has to be linked.
  • Visibility: It specifies whether this file is available to all users, internal users, or shared users. Visibility can have the following values.
    • AllUsers: The file is available to all users who have permission to see the file.
    • InternalUsers: The file is available only to internal users who have permission to see the file.
    • SharedUsers: The file is available to all users who can see the feed to which the file is posted.

Note: AllUsers & InternalUsers values apply to files posted on standard and custom object records, but not to users, groups, or content libraries.

  • Sharing Type: It specifies the permission granted to the user of the shared file.
    • “V” (Viewer permission): The user can view, download and share the file.
    • “C” (Collaborator permission): The user can view, download, share the file, edit the details, upload new version and change sharing settings.
    • “I” (Inferred permission): The user’s permission is determined by the related record.

Example:

Let’s see an example to create a document in the files section using postman.

Step 1: Create a Content Version

salesforce-content-version

Integrate-Business-Apps-through-APPSeCONNECT

Step 2: Fetch the Content Document Id from Content Version.

By using the SOQL query, get the content document id from the content version by passing the content version id.

content-document

Step 3: Search with the content document id in Salesforce to display the created file.

From the below screenshot, we can see that the file has been created and by default it is shared with the created user.

salesforce-content-document

Step 4: Assign the file to a record by using the content document link.

Here, we are linking the above-created file to an opportunity.

content-document-link

Integrate-Business-Apps-through-APPSeCONNECT

From the below screenshot, the file has been linked to an opportunity in Salesforce.

salesforce-opportunities

Conclusion:

In this way, we can create a document in Salesforce by using REST API. We sincerely hope that this was useful and any comment or feedback will be very helpful.

Below is the entire video of the process!


Integrate-Business-Apps-through-APPSeCONNECT

APPSeCONNECT is a smart and robust business application integration platform that seamlessly connects Salesforce with all your business applications to streamline operations and facilitate the free-flow of data across the platforms. By moving into the region of iPaaS, APPSeCONNECT proves to be a best-in-the-class platform that easily connects systems and automates the business process.

Now, you can easily connect all your business applications under one single platform to automate the business process!

You may also like:
8 Tips to Use Microsoft Teams Like a Pro in your Organisation
Payment Synchronization between SAP Business One and Salesforce
Global Variables in Salesforce – All You Need To Know

Team Veon