An open API service indexing awesome lists of open source software.

https://github.com/iam-royanirban/salesforce-files-system

Master the Salesforce File System ๐Ÿ“‚ | Learn, automate, and enhance your Salesforce file management with practical examples and tools. Access triggers, flows, and real-world use cases for managing files, sharing links, and more.
https://github.com/iam-royanirban/salesforce-files-system

file-search file-share file-sharing file-system salesforce salesforce-apex salesforce-files salesforce-lightning salesforce-metadata soql-query

Last synced: 3 months ago
JSON representation

Master the Salesforce File System ๐Ÿ“‚ | Learn, automate, and enhance your Salesforce file management with practical examples and tools. Access triggers, flows, and real-world use cases for managing files, sharing links, and more.

Awesome Lists containing this project

README

        

# Understanding the Salesforce File System ๐Ÿ“‚

Salesforce File System Object Relationships Diagram

---

Explore how Salesforce manages files using the **ContentDocument**, **ContentVersion**, and **ContentDocumentLink** objects. This repository includes detailed resources and examples from my YouTube demonstration.

### ๐ŸŽฅ Watch the Video Tutorial to learn more:
YouTube: [Master Salesforce File Management System with Apex Triggers, SOQL & Flows (With Practical Use Cases & Examples)]([https:www.google.com](https://youtu.be/qIR5XIAvJvc))

---

## Overview

This repository is designed for developers and Salesforce admins who want to:

- **Understand relationships** between the `ContentDocument`, `ContentVersion`, and `ContentDocumentLink` objects: their fields, usage, and purpose.
- Learn **Apex trigger-based scenarios** for handling file uploads, updates, deletions, and record associations.
- Explore **real-world use cases**, including:
- SOQL queries for retrieving records across various scenarios.
- Querying all related files and their versions for any record using Flows.
- Previewing files and their versions in a data table.
- Generating **secure, shareable links** with optional expiration dates and passwords for external access.

---

## Key Points to Note โš ๏ธ

1. **On File Upload/Insert**:
- All three objectsโ€”`ContentDocument`, `ContentVersion`, and `ContentDocumentLink`โ€”triggers are fired.

2. **On Uploading a New Version of a File**:
- Only the `ContentVersion` trigger is fired.

3. **On Removing a File from a Record**:
- The `ContentDocumentLink` trigger is fired on deletion, identifying the related record using the `LinkedEntityId`.

4. **On Deleting a File from Salesforce**:
- Only the `ContentDocument` trigger is fired.

---

## Salesforce Documentation References
- [ContentDocument, ContentVersion, and ContentDocumentLink Terminologies](https://help.salesforce.com/s/articleView?id=000393095&type=1)
- [Trigger Behavior in Classic and Lightning Experience](https://help.salesforce.com/s/articleView?id=000381623&type=1)

---

## ๐Ÿ“š Installation & Setup

1. Clone the repository:
```bash
git clone https://github.com/IAm-RoyAnirban/Salesforce-Files-System.git

---

### Contributions
Feel free to fork this repository and contribute by submitting issues or pull requests. If you encounter any issues or need additional features, please raise a GitHub issue.

---

### License
This project is licensed under the MIT License - see the [LICENSE file](https://github.com/IAm-RoyAnirban/Salesforce-Files-System/blob/main_branch/LICENSE) for more details.