Javascript required
Skip to content Skip to sidebar Skip to footer

Where Do I Control Contentversion Permissions in Salesfroce

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.

No alt text provided for this image

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.

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.

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

No alt text provided for this image

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.

No alt text provided for this image

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.

No alt text provided for this image

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.

No alt text provided for this image

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

No alt text provided for this image

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!

Where Do I Control Contentversion Permissions in Salesfroce

Source: https://www.linkedin.com/pulse/how-upload-document-salesforce-files-using-rest-api-subhajit-goswami