ContentDocument
Represents a document that was uploaded to a library in Salesforce Files or Salesforce CRM content. This object is available in versions 17.0 and later for Salesforce CRM.
The maximum number of documents that can be published is 30,000,000. Archived files count toward this limit and toward storage usage limits.
- Contact Manager, Group, Professional, Enterprise, Unlimited, and Performance Edition customers can publish a maximum of 200,000 new versions per 24-hour period.
- Developer Edition and trial users can publish a maximum of 2,500 new versions per 24-hour period.
Introduced in API version 17.0.
This object is available in API version 21.0 and later for Salesforce Files.
delete(), describeLayout(), describeSObjects(), query(), retrieve(), search(), undelete(), update()
-
- By default, users (including users with the View All Data permission) can only query files they have access to, including:
- Salesforce files in their personal library and in libraries they’re a member of, regardless of library permissions (API version 17.0 and later).
- Salesforce files they own, shared directly with them, posted on their profile, or posted on groups they can see (API version 21.0 and later).
- Query All Files returns all files, including files in non-member libraries and files in unlisted groups.
- Users can’t edit, upload new versions, or delete files they don’t have access to.
- View All Data permission is required to enable Query All Files.
- For API version 62.0 and later, enable the Query Non Vetoed Files permission in Data Cloud orgs to let your integration or API users view and SOQL query only public and non-vetoed files in the org.
- Customer and partner portal users must have the View Content in Portal permission to query content in libraries where they have access.
- A Salesforce CRM content document can be deleted if any of these statements is true.
- The document is published into a personal library or is in the user’s upload queue.
- The document is published into a public library, the user trying to delete the document is the file owner, and is a member of that library.
- The document is published into a public library and the user trying to delete the document isn’t the owner but has the Manage Library or Delete Content library permission enabled.
- By default, users (including users with the View All Data permission) can only query files they have access to, including:
-
For API version 25.0 and later, you can change ownership of Salesforce Files and Salesforce CRM content documents.
- A user can change ownership of a Salesforce CRM content document or Salesforce file if any of these statements is true.
- The user is the current owner.
- The user has the Modify All Data permission enabled.
- For a file in a Content Library, the user either has the Manage Salesforce CRM content permission enabled, or has the Manage Library permission enabled for the library containing the document.
When the owner of a ContentDocument is changed, ContentDocumentLink may be triggered. This action deletes the ContentDocumentLink to the old owner and inserts one to the new owner. When you change document ownership, keep these considerations in mind.
- A user can change ownership of a Salesforce CRM content document or Salesforce file if any of these statements is true.
-
The user who’s becoming the document owner must be a visible, active user. The original owner can be inactive.
-
If the new document owner doesn’t have access to the library that contains the document, library administrators must give the new owner membership to the library. :::
- Type: reference
- Properties: Filter, Group, Nillable, Sort
- Introduced: API version 24.0
- Description: The ID of the user who archived the document.
- Relationship name: ArchivedBy
- Relationship type: relationship
- Refers to: User
- Type: date
- Properties: Filter, Group, Nillable, Sort
- Introduced: API version 24.0
- Description: The date when the document was archived.
-
Type: reference
-
Properties: Filter, Group, Nillable, Sort, Update
-
Introduced: API version 38.0
-
Description:
If the ContentDocument is an asset file, this field points to the asset. For most entities, the value of this field is
null.This is a relationship field.
-
Relationship name: ContentAsset
-
Relationship type: relationship
-
Refers to: ContentAsset
-
Type: datetime
-
Properties: Filter, Nillable, Sort
-
Introduced: API version 32.0
-
Description:
The date the document was modified.
ContentModifiedDateupdates when, for example, the document is renamed or a new document version is uploaded. When you’re uploading the first version of a document,ContentModifiedDatecan be set to the current time or anytime in the past.
- Type: int
- Properties: Filter, Group, Nillable, Sort
- Introduced: API version 31.0
- Description: The size of the document in bytes for documents smaller than 2 GB. In API version 65.0 and later, we recommend that you use the
ContentSizeLongfield even for files smaller than 2 GB.
- Type: long
- Properties: Filter, Group, Nillable, Sort
- Introduced: API version 65.0
- Description: The size of the document in bytes up to 10 GB.
- Type: textarea
- Properties: Filter, Nillable, Sort, Update
- Introduced: API version 31.0
- Description: A description of the document.
- Type: string
- Properties: Filter, Group, Nillable, Sort
- Introduced: API version 31.0
- Description: File extension of the document.
- Type: string
- Properties: Filter, Group, Nillable, Sort
- Introduced: API version 31.0
- Description: Type of document, determined by the file extension.
- Type: boolean
- Properties: Defaulted on create, Filter, Group, Sort, Update
- Introduced: API version 24.0
- Description: Indicates whether the document was archived (
true) or not (false). - Default value: false
- Type: boolean
- Properties: Defaulted on create, Filter, Group, Sort, Update
- Introduced: API version 62.0
- Description: Indicates that a file is for internal use only. When
true, prevents users with the Query Non Vetoed Files permission from viewing and performing SOQL query on public and non vetoed files in a Data Cloud org. Default value isfalse. - Default value: false
-
Type: reference
-
Properties: Filter, Group, Nillable, Sort
-
Description:
ID of the latest document version (ContentVersion).
This is a relationship field.
-
Relationship name: LatestPublishedVersion
-
Relationship type: relationship
-
Refers to: ContentVersion
- Type: datetime
- Properties: Filter, Nillable, Sort
- Introduced: API version 66.0
- Description: The date the document was scanned for malware.
- Type: picklist
- Properties: Filter, Group, Nillable, Restricted picklist, Sort
- Introduced: API version 66.0
- Description: Indicates whether the document was scanned for malware and whether it’s safe or malicious.
- Possible values:
- NotScanned — NotScanned — The file hasn’t yet been scanned for malware. This is the default value.
- Scheduled — Scheduled — The file scan is in progress.
- Clean — Clean — The file was scanned and doesn’t contain malware.
- Malicious — Malicious — The file was scanned and contains malware.
- Skipped — Skipped — The file can’t be scanned because it’s either larger than 100 MB or it’s a Salesforce-generated file, such as a Content Note.
- Failed — Failed — The file wasn’t scanned because of an error.
- Type: reference
- Properties: Filter, Group, Nillable, Sort, Update
- Introduced: API version 24.0
- Description: ID of the library that owns the document. Created automatically when inserting a ContentVersion via the API for the first time. when Salesforce CRM content is enabled.
- Relationship name: Parent
- Relationship type: relationship
- Refers to: ContentWorkspace
- Type: picklist
- Properties: Defaulted on create, Filter, Group, Restricted picklist, Sort
- Description: Indicates if and how the document is published.
- Possible values:
- P — P — The document is published to a public library and is visible to other users. Label is Public.
- R — R — The document is published to a personal library and is not visible to other users. Label is Personal Library.
- U — U — The document is not published because publishing was interrupted. Label is Upload Interrupted.
- Type: picklist
- Properties: Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
- Introduced: API version 35.0
- Description: Controls whether sharing is frozen for a file. Only administrators and file owners with Collaborator access to the file can modify this field. Default is
Allowed, which means that new shares are allowed. When set toRestricted, new shares are prevented without affecting existing shares.
- Type: picklist
- Properties: Defaulted on create, Filter, Group, Nillable, Restricted picklist, Sort, Update
- Introduced: API version 41.0
- Description: Controls sharing privacy for a file. Only administrators and file owners with Collaborator access to the file can modify this field.
- Possible values:
- N — N — Default. Label is Visible to Anyone With Record Access
- P — P — The file is private on records but can be shared selectively with others. Label is Private on Records.
- Type: string
- Properties: Filter, Group, idLookup, Sort, Update
- Description: The title of a document.
-
Use this object to retrieve, query, update, and delete the latest version of a document in a library or a Salesforce file. Use the ContentVersion object to create, query, retrieve, search, edit, and update a specific version of a Salesforce CRM content document or Salesforce file.
-
A document record is a container for multiple version records. You create a version to add a document to the system. The new version contains the actual file data which allows the document to have multiple versions. The version stores the body of the uploaded document.
-
To create a document, create version via the ContentVersion object without setting the
ContentDocumentId. This process automatically creates a parent document record. When adding a new version of the document, you must specify an existingContentDocumentIdwhich initiates the revision process for the document. When the latest version is published, the title, owner, and publish status fields are updated in the document. -
You can’t add new versions of archived documents.
-
When you delete a document, all versions of that document are deleted, including ratings, comments, and tags.
-
A ContentDocument insert trigger executes when a file (ContentDocument) is added to the file library.
-
A ContentDocument delete trigger executes when a file is deleted, but the cascaded ContentDocumentLink delete does not trigger ContentDocumentLink triggers.
-
The
query()call doesn’t return archived documents. ThequeryAll()call returns archived documents. -
To query a file that is accessible only through a record share, you must specify the content ID of the file. When SOQL querying the ContentDocument object, the
ContentDocumentIdmust be compounded by an AND operator. For example, -
If you query versions in the API, versions with a
PublishStatusofUpload Interruptedare not returned. -
Assign topics to ContentDocument using
TopicAssignmentin API version 37.0 or later.
This object has the following associated objects. If the API version isn’t specified, they’re available in the same API versions as this object. Otherwise, they’re available in the specified API version.
-
ContentDocumentChangeEvent: Introduced in API version 55.0.
-
ContentDocumentFeed: Introduced in API version 20.0.